1826
|
1 |
local open Ast;
|
1857
|
2 |
fun Gbigimpl_ast_tr (*"Gbigimpl"*) [asms, concl] =
|
1826
|
3 |
fold_ast_p "êë" (unfold_ast "_asms" asms, concl)
|
1857
|
4 |
| Gbigimpl_ast_tr (*"Gbigimpl"*) asts = raise_ast "bigimpl_ast_tr" asts;
|
|
5 |
fun Glam_ast_tr (*"Glam"*) [idts, body] =
|
|
6 |
fold_ast_p "_abs" (unfold_ast "_idts" idts, body)
|
|
7 |
| Glam_ast_tr (*"Glam"*) asts = raise_ast "lambda_ast_tr" asts;
|
|
8 |
|
|
9 |
fun Gimpl_ast_tr' (*"Gbigimpl"*) asts =
|
1826
|
10 |
(case unfold_ast_p "êë" (Appl (Constant "êë" :: asts)) of
|
|
11 |
(asms as _ :: _ :: _, concl)
|
|
12 |
=> Appl [Constant "Gbigimpl", fold_ast "_asms" asms, concl]
|
|
13 |
| _ => raise Match);
|
|
14 |
in
|
1857
|
15 |
val parse_ast_translation = ("Gbigimpl", Gbigimpl_ast_tr)::
|
|
16 |
("Glam", Glam_ast_tr)::
|
1826
|
17 |
parse_ast_translation;
|
|
18 |
|
1857
|
19 |
val print_ast_translation = ("êë", Gimpl_ast_tr')::
|
|
20 |
("_lambda", fn asts =>
|
|
21 |
Appl (Constant "Glam" :: asts)) ::
|
1826
|
22 |
print_ast_translation;
|
|
23 |
|
|
24 |
end;
|
|
25 |
|
|
26 |
local open Syntax in
|
|
27 |
val thy = thy
|
|
28 |
|> add_trrules_i
|
|
29 |
[mk_appl (Constant "Ú" ) [Variable "P", Variable "Q"] <->
|
|
30 |
mk_appl (Constant "==") [Variable "P", Variable "Q"],
|
|
31 |
mk_appl (Constant "êë" ) [Variable "P", Variable "Q"] <->
|
|
32 |
mk_appl (Constant "==>") [Variable "P", Variable "Q"],
|
|
33 |
(Constant "Ä" ) <-> (Constant "!!")]
|
|
34 |
end;
|