added meta_conjunction_tr';
authorwenzelm
Sun, 11 Nov 2001 21:38:25 +0100
changeset 12150 f83dc4202b78
parent 12149 7cf8574102d5
child 12151 fb0fb0209c87
added meta_conjunction_tr';
src/Pure/Syntax/syn_trans.ML
--- a/src/Pure/Syntax/syn_trans.ML	Sun Nov 11 21:38:04 2001 +0100
+++ b/src/Pure/Syntax/syn_trans.ML	Sun Nov 11 21:38:25 2001 +0100
@@ -302,6 +302,17 @@
     | _ => raise Match);
 
 
+(* meta conjunction *)
+
+fun meta_conjunction_tr' (*"all"*)
+      [Abs (_, _, Const ("==>", _) $
+        (Const ("==>", _) $ A $ (Const ("==>", _) $ B $ (Const ("_aprop", _) $ Bound 0))) $
+        (Const ("_aprop", _) $ Bound 0))] =
+      if 0 mem_int Term.loose_bnos A orelse 0 mem_int Term.loose_bnos B then raise Match
+      else Lexicon.const "_meta_conjunction" $ A $ B
+  | meta_conjunction_tr' (*"all"*) ts = raise Match;
+
+
 (* type reflection *)
 
 fun type_tr' show_sorts (*"TYPE"*) (Type ("itself", [T])) ts =
@@ -354,7 +365,7 @@
    ("_indexvar", indexvar_ast_tr)],
   [("_abs", abs_tr), ("_aprop", aprop_tr), ("_ofclass", ofclass_tr),
    ("_TYPE", type_tr), ("_DDDOT", dddot_tr), ("_K", k_tr)],
-  []: (string * (term list -> term)) list,
+  [("all", meta_conjunction_tr')],
   [("_abs", abs_ast_tr'), ("_idts", idtyp_ast_tr' "_idts"),
    ("_pttrns", idtyp_ast_tr' "_pttrns"), ("==>", impl_ast_tr')]);