equal
deleted
inserted
replaced
632 fun trace_step ctxt proof_id rule proofs = with_full_tracing ctxt (fn ctxt' => |
632 fun trace_step ctxt proof_id rule proofs = with_full_tracing ctxt (fn ctxt' => |
633 let |
633 let |
634 val id = Argo_Proof.string_of_proof_id proof_id |
634 val id = Argo_Proof.string_of_proof_id proof_id |
635 val ids = map (Argo_Proof.string_of_proof_id o Argo_Proof.id_of) proofs |
635 val ids = map (Argo_Proof.string_of_proof_id o Argo_Proof.id_of) proofs |
636 val rule_string = Argo_Proof.string_of_rule rule |
636 val rule_string = Argo_Proof.string_of_rule rule |
637 in full_tracing ctxt' (" " ^ id ^ " <- " ^ space_implode " " ids ^ " . " ^ rule_string) end) |
637 in full_tracing ctxt' (" " ^ id ^ " <- " ^ implode_space ids ^ " . " ^ rule_string) end) |
638 |
638 |
639 fun replay_bottom_up (env as (ctxt, _, _)) proof thm_cache = |
639 fun replay_bottom_up (env as (ctxt, _, _)) proof thm_cache = |
640 let |
640 let |
641 val (proof_id, rule, proofs) = Argo_Proof.dest proof |
641 val (proof_id, rule, proofs) = Argo_Proof.dest proof |
642 val (prems, thm_cache) = fold_map (with_cache (replay_bottom_up env)) proofs thm_cache |
642 val (prems, thm_cache) = fold_map (with_cache (replay_bottom_up env)) proofs thm_cache |