src/Pure/proofterm.ML
changeset 80311 31df11a23d6e
parent 80299 a397fd0c451a
child 80560 960b866b1117
equal deleted inserted replaced
80310:6d091c0c252e 80311:31df11a23d6e
   393           (prop, (types, map_proof_of open_proof (Future.join body)))))]
   393           (prop, (types, map_proof_of open_proof (Future.join body)))))]
   394 and proof_body consts (PBody {oracles, thms, zboxes = _, zproof = _, proof = prf}) =
   394 and proof_body consts (PBody {oracles, thms, zboxes = _, zproof = _, proof = prf}) =
   395   triple (list (pair (pair string (properties o Position.properties_of))
   395   triple (list (pair (pair string (properties o Position.properties_of))
   396       (option (term consts)))) (list (thm consts)) (proof consts) (oracles, thms, prf)
   396       (option (term consts)))) (list (thm consts)) (proof consts) (oracles, thms, prf)
   397 and thm consts (a, thm_node) =
   397 and thm consts (a, thm_node) =
   398   pair int (pair string (pair (pair string int) (pair (term consts) (proof_body consts))))
   398   pair int (pair string (pair Thm_Name.encode (pair (term consts) (proof_body consts))))
   399     (a, (thm_node_theory_name thm_node, (thm_node_name thm_node, (thm_node_prop thm_node,
   399     (a, (thm_node_theory_name thm_node, (thm_node_name thm_node, (thm_node_prop thm_node,
   400       (Future.join (thm_node_body thm_node))))));
   400       (Future.join (thm_node_body thm_node))))));
   401 
   401 
   402 fun standard_term consts t = t |> variant
   402 fun standard_term consts t = t |> variant
   403  [fn Const (a, b) => ([a], list typ (Consts.typargs consts (a, b))),
   403  [fn Const (a, b) => ([a], list typ (Consts.typargs consts (a, b))),
   461         (option (term consts)))) (list (thm consts)) (proof consts) x;
   461         (option (term consts)))) (list (thm consts)) (proof consts) x;
   462   in PBody {oracles = a, thms = b, zboxes = [], zproof = ZDummy, proof = c} end
   462   in PBody {oracles = a, thms = b, zboxes = [], zproof = ZDummy, proof = c} end
   463 and thm consts x =
   463 and thm consts x =
   464   let
   464   let
   465     val (a, (b, (c, (d, e)))) =
   465     val (a, (b, (c, (d, e)))) =
   466       pair int (pair string (pair (pair string int) (pair (term consts) (proof_body consts)))) x
   466       pair int (pair string (pair Thm_Name.decode (pair (term consts) (proof_body consts)))) x
   467   in (a, make_thm_node b c d (Future.value e) no_export) end;
   467   in (a, make_thm_node b c d (Future.value e) no_export) end;
   468 
   468 
   469 in
   469 in
   470 
   470 
   471 val decode = proof;
   471 val decode = proof;