equal
deleted
inserted
replaced
585 |
585 |
586 (** facts **) |
586 (** facts **) |
587 |
587 |
588 (* chain *) |
588 (* chain *) |
589 |
589 |
|
590 fun clean_facts ctxt = |
|
591 put_facts (SOME (filter_out Drule.is_dummy_thm (the_facts ctxt))) ctxt; |
|
592 |
590 val chain = |
593 val chain = |
591 assert_forward |
594 assert_forward |
592 #> tap the_facts |
595 #> clean_facts |
593 #> enter_chain; |
596 #> enter_chain; |
594 |
597 |
595 fun chain_facts facts = |
598 fun chain_facts facts = |
596 put_facts (SOME facts) |
599 put_facts (SOME facts) |
597 #> chain; |
600 #> chain; |
646 let |
649 let |
647 val ctxt = context_of state'; |
650 val ctxt = context_of state'; |
648 val ths = maps snd named_facts; |
651 val ths = maps snd named_facts; |
649 in (statement, f ctxt ths using, g ctxt ths goal, before_qed, after_qed) end)); |
652 in (statement, f ctxt ths using, g ctxt ths goal, before_qed, after_qed) end)); |
650 |
653 |
651 fun append_using _ ths using = using @ ths; |
654 fun append_using _ ths using = using @ filter_out Drule.is_dummy_thm ths; |
652 fun unfold_using ctxt ths = map (LocalDefs.unfold ctxt ths); |
655 fun unfold_using ctxt ths = map (LocalDefs.unfold ctxt ths); |
653 val unfold_goals = LocalDefs.unfold_goals; |
656 val unfold_goals = LocalDefs.unfold_goals; |
654 |
657 |
655 in |
658 in |
656 |
659 |