src/Pure/Thy/export_theory.ML
changeset 70541 f3fbc7f3559d
parent 70540 04ef5ee3dd4d
child 70579 5a8e3e4b3760
equal deleted inserted replaced
70540:04ef5ee3dd4d 70541:f3fbc7f3559d
   220 
   220 
   221     (* axioms and facts *)
   221     (* axioms and facts *)
   222 
   222 
   223     fun standard_prop used extra_shyps raw_prop raw_proof =
   223     fun standard_prop used extra_shyps raw_prop raw_proof =
   224       let
   224       let
   225         val raw_proofs = the_list raw_proof;
   225         val (prop, proof) = Proofterm.standard_vars used (raw_prop, raw_proof);
   226         val ([prop], proofs) = Proofterm.standard_vars used ([raw_prop], raw_proofs);
       
   227 
       
   228         val args = rev (add_frees used prop []);
   226         val args = rev (add_frees used prop []);
   229         val typargs = rev (add_tfrees used prop []);
   227         val typargs = rev (add_tfrees used prop []);
   230         val used_typargs = fold (Name.declare o #1) typargs used;
   228         val used_typargs = fold (Name.declare o #1) typargs used;
   231         val sorts = Name.invent used_typargs Name.aT (length extra_shyps) ~~ extra_shyps;
   229         val sorts = Name.invent used_typargs Name.aT (length extra_shyps) ~~ extra_shyps;
   232       in ((sorts @ typargs, args, prop), try hd proofs) end;
   230       in ((sorts @ typargs, args, prop), proof) end;
   233 
   231 
   234     val encode_prop =
   232     val encode_prop =
   235       let open XML.Encode Term_XML.Encode
   233       let open XML.Encode Term_XML.Encode
   236       in triple (list (pair string sort)) (list (pair string typ)) term end;
   234       in triple (list (pair string sort)) (list (pair string typ)) term end;
   237 
   235