52 val thm_ord: pthm * pthm -> order |
52 val thm_ord: pthm * pthm -> order |
53 val unions_oracles: oracle Ord_List.T list -> oracle Ord_List.T |
53 val unions_oracles: oracle Ord_List.T list -> oracle Ord_List.T |
54 val unions_thms: pthm Ord_List.T list -> pthm Ord_List.T |
54 val unions_thms: pthm Ord_List.T list -> pthm Ord_List.T |
55 val all_oracles_of: proof_body -> oracle Ord_List.T |
55 val all_oracles_of: proof_body -> oracle Ord_List.T |
56 val approximate_proof_body: proof -> proof_body |
56 val approximate_proof_body: proof -> proof_body |
57 val no_proof_body: proof_body |
57 val no_proof_body: proof -> proof_body |
58 val no_thm_proofs: proof -> proof |
58 val no_thm_proofs: proof -> proof |
|
59 val no_body_proofs: proof -> proof |
59 |
60 |
60 val encode: proof XML.Encode.T |
61 val encode: proof XML.Encode.T |
61 val encode_body: proof_body XML.Encode.T |
62 val encode_body: proof_body XML.Encode.T |
62 val decode: proof XML.Decode.T |
63 val decode: proof XML.Decode.T |
63 val decode_body: proof_body XML.Decode.T |
64 val decode_body: proof_body XML.Decode.T |
308 {oracles = Ord_List.make oracle_ord oracles, |
309 {oracles = Ord_List.make oracle_ord oracles, |
309 thms = Ord_List.make thm_ord thms, |
310 thms = Ord_List.make thm_ord thms, |
310 proof = prf} |
311 proof = prf} |
311 end; |
312 end; |
312 |
313 |
313 val no_proof_body = PBody {oracles = [], thms = [], proof = MinProof}; |
314 fun no_proof_body proof = PBody {oracles = [], thms = [], proof = proof}; |
314 val no_body = Future.value no_proof_body; |
315 val no_body = Future.value (no_proof_body MinProof); |
315 |
316 |
316 fun no_thm_proofs (PThm (i, (a, _))) = PThm (i, (a, no_body)) |
317 fun no_thm_proofs (PThm (i, (a, _))) = PThm (i, (a, no_body)) |
317 | no_thm_proofs (Abst (x, T, prf)) = Abst (x, T, no_thm_proofs prf) |
318 | no_thm_proofs (Abst (x, T, prf)) = Abst (x, T, no_thm_proofs prf) |
318 | no_thm_proofs (AbsP (x, t, prf)) = AbsP (x, t, no_thm_proofs prf) |
319 | no_thm_proofs (AbsP (x, t, prf)) = AbsP (x, t, no_thm_proofs prf) |
319 | no_thm_proofs (prf % t) = no_thm_proofs prf % t |
320 | no_thm_proofs (prf % t) = no_thm_proofs prf % t |
320 | no_thm_proofs (prf1 %% prf2) = no_thm_proofs prf1 %% no_thm_proofs prf2 |
321 | no_thm_proofs (prf1 %% prf2) = no_thm_proofs prf1 %% no_thm_proofs prf2 |
321 | no_thm_proofs a = a; |
322 | no_thm_proofs a = a; |
|
323 |
|
324 fun no_body_proofs (PThm (i, (a, body))) = |
|
325 PThm (i, (a, Future.value (no_proof_body (join_proof body)))) |
|
326 | no_body_proofs (Abst (x, T, prf)) = Abst (x, T, no_body_proofs prf) |
|
327 | no_body_proofs (AbsP (x, t, prf)) = AbsP (x, t, no_body_proofs prf) |
|
328 | no_body_proofs (prf % t) = no_body_proofs prf % t |
|
329 | no_body_proofs (prf1 %% prf2) = no_body_proofs prf1 %% no_body_proofs prf2 |
|
330 | no_body_proofs a = a; |
322 |
331 |
323 |
332 |
324 |
333 |
325 (** XML data representation **) |
334 (** XML data representation **) |
326 |
335 |