src/Pure/thm.ML
changeset 64574 1134e4d5e5b7
parent 64573 e6aee01da22d
child 64981 ea6199b23dfa
equal deleted inserted replaced
64573:e6aee01da22d 64574:1134e4d5e5b7
    84   val weaken_sorts: sort list -> cterm -> cterm
    84   val weaken_sorts: sort list -> cterm -> cterm
    85   val extra_shyps: thm -> sort list
    85   val extra_shyps: thm -> sort list
    86   val proof_bodies_of: thm list -> proof_body list
    86   val proof_bodies_of: thm list -> proof_body list
    87   val proof_body_of: thm -> proof_body
    87   val proof_body_of: thm -> proof_body
    88   val proof_of: thm -> proof
    88   val proof_of: thm -> proof
    89   val join_proofs: thm list -> unit
    89   val consolidate: thm -> unit
    90   val peek_status: thm -> {oracle: bool, unfinished: bool, failed: bool}
    90   val peek_status: thm -> {oracle: bool, unfinished: bool, failed: bool}
    91   val future: thm future -> cterm -> thm
    91   val future: thm future -> cterm -> thm
    92   val derivation_closed: thm -> bool
    92   val derivation_closed: thm -> bool
    93   val derivation_name: thm -> string
    93   val derivation_name: thm -> string
    94   val name_derivation: string -> thm -> thm
    94   val name_derivation: string -> thm -> thm
   586 
   586 
   587 fun fulfill_body (th as Thm (Deriv {promises, body}, _)) =
   587 fun fulfill_body (th as Thm (Deriv {promises, body}, _)) =
   588   let val fulfilled_promises = map #1 promises ~~ map fulfill_body (Future.joins (map #2 promises))
   588   let val fulfilled_promises = map #1 promises ~~ map fulfill_body (Future.joins (map #2 promises))
   589   in Proofterm.fulfill_norm_proof (theory_of_thm th) fulfilled_promises body end;
   589   in Proofterm.fulfill_norm_proof (theory_of_thm th) fulfilled_promises body end;
   590 
   590 
   591 fun proof_bodies_of thms =
   591 fun proof_bodies_of thms = (join_promises_of thms; map fulfill_body thms);
   592   let
       
   593     val _ = join_promises_of thms;
       
   594     val bodies = map fulfill_body thms;
       
   595     val _ = Proofterm.join_bodies bodies;
       
   596   in bodies end;
       
   597 
       
   598 val proof_body_of = singleton proof_bodies_of;
   592 val proof_body_of = singleton proof_bodies_of;
   599 val proof_of = Proofterm.proof_of o proof_body_of;
   593 val proof_of = Proofterm.proof_of o proof_body_of;
   600 
   594 
   601 val join_proofs = Proofterm.join_bodies o proof_bodies_of;
   595 val consolidate = ignore o proof_bodies_of o single;
   602 
   596 
   603 
   597 
   604 (* derivation status *)
   598 (* derivation status *)
   605 
   599 
   606 fun peek_status (Thm (Deriv {promises, body}, _)) =
   600 fun peek_status (Thm (Deriv {promises, body}, _)) =