added singleton check_typ/term/prop;
authorwenzelm
Sat, 01 Sep 2007 15:47:05 +0200
changeset 24512 fc4959967b30
parent 24511 69d270cc7e4f
child 24513 f39e79334052
added singleton check_typ/term/prop;
src/Pure/Syntax/syntax.ML
--- a/src/Pure/Syntax/syntax.ML	Sat Sep 01 15:47:04 2007 +0200
+++ b/src/Pure/Syntax/syntax.ML	Sat Sep 01 15:47:05 2007 +0200
@@ -100,6 +100,9 @@
   val global_parse_term: theory -> string -> term
   val global_parse_prop: theory -> string -> term
   val check_sort: Proof.context -> sort -> sort
+  val check_typ: Proof.context -> typ -> typ
+  val check_term: Proof.context -> term -> term
+  val check_prop: Proof.context -> term -> term
   val check_typs: Proof.context -> typ list -> typ list
   val check_terms: Proof.context -> term list -> term list
   val check_props: Proof.context -> term list -> term list
@@ -671,8 +674,11 @@
 
 val check_typs = gen_check fst (op =);
 val check_terms = gen_check snd (op aconv);
+fun check_props ctxt = map (fn t => TypeInfer.constrain t propT) #> check_terms ctxt;
 
-fun check_props ctxt = map (fn t => TypeInfer.constrain t propT) #> check_terms ctxt;
+val check_typ = singleton o check_typs;
+val check_term = singleton o check_terms;
+val check_prop = singleton o check_props;
 
 fun check_sort ctxt S =
   (case singleton (check_typs ctxt) (TFree ("", S)) of   (* FIXME TypeInfer.invent_type (!?) *)