-
Notifications
You must be signed in to change notification settings - Fork 84
/
ml_monad_translatorLib.sig
56 lines (46 loc) · 1.99 KB
/
ml_monad_translatorLib.sig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
(*
The signature of the monadic translator.
*)
signature ml_monad_translatorLib =
sig
include ml_monadStoreLib
(* Functions to initialize the translation *)
val start_static_init_fixed_store_translation :
(string * thm * thm * thm) list ->
(string * thm * thm * thm * thm * thm * thm * thm) list ->
(string * (int * thm) * thm * thm * thm * thm * thm) list ->
string -> hol_type -> thm -> (thm * thm) list -> string list ->
(thm * thm) option -> term option
->
monadic_translation_parameters *
store_translation_result * (thm * thm) list
val start_dynamic_init_fixed_store_translation :
(string * thm * thm) list ->
(string * thm * thm * thm * thm * thm * thm) list ->
(string * thm * thm * thm * thm * thm) list ->
string -> hol_type -> thm -> (thm * thm) list -> string list ->
thm option
->
monadic_translation_parameters * (thm * thm) list
(* Other functions to initialize the translation - the above ones should be preferred *)
val init_translation :
monadic_translation_parameters -> (thm * thm) list ->
(thm * thm * thm * thm * thm * thm) list ->
(thm * thm * thm * thm * thm) list ->
(thm * thm) list ->
thm option -> thm -> string list -> thm option
-> unit
val add_raise_handle_functions : (thm * thm) list -> thm -> (thm * thm) list
val add_access_pattern : thm -> thm
(* Translation functions *)
val m_translate : thm -> thm
val m_translate_run : thm -> thm
val m2deep : term -> thm
(* Update precondition for dynamic specifications *)
val update_local_precondition : thm -> thm
(* Resume prior monadic translation.
Loads the state specific to the monadic translation from the specified
theory, followed by a call to translation_extends from the 'standard'
translator (i.e. fetching the rest of the translator state). *)
val m_translation_extends : string -> unit
end