| 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;
 |