src/Pure/Proof/proof_syntax.ML
changeset 19391 4812d28c90a6
parent 19305 5c16895d548b
child 19473 d87a8838afa4
equal deleted inserted replaced
19390:6c7383f80ad1 19391:4812d28c90a6
   179 val Hypt = Const ("Hyp", propT --> proofT);
   179 val Hypt = Const ("Hyp", propT --> proofT);
   180 val Oraclet = Const ("Oracle", propT --> proofT);
   180 val Oraclet = Const ("Oracle", propT --> proofT);
   181 val MinProoft = Const ("MinProof", proofT);
   181 val MinProoft = Const ("MinProof", proofT);
   182 
   182 
   183 val mk_tyapp = Library.foldl (fn (prf, T) => Const ("Appt",
   183 val mk_tyapp = Library.foldl (fn (prf, T) => Const ("Appt",
   184   [proofT, itselfT T] ---> proofT) $ prf $ Logic.mk_type T);
   184   [proofT, Term.itselfT T] ---> proofT) $ prf $ Logic.mk_type T);
   185 
   185 
   186 fun term_of _ (PThm ((name, _), _, _, NONE)) =
   186 fun term_of _ (PThm ((name, _), _, _, NONE)) =
   187       Const (NameSpace.append "thm" name, proofT)
   187       Const (NameSpace.append "thm" name, proofT)
   188   | term_of _ (PThm ((name, _), _, _, SOME Ts)) =
   188   | term_of _ (PThm ((name, _), _, _, SOME Ts)) =
   189       mk_tyapp (Const (NameSpace.append "thm" name, proofT), Ts)
   189       mk_tyapp (Const (NameSpace.append "thm" name, proofT), Ts)