equal
deleted
inserted
replaced
74 fun eliminate fix_ctxt rule xs As thm = |
74 fun eliminate fix_ctxt rule xs As thm = |
75 let |
75 let |
76 val thy = ProofContext.theory_of fix_ctxt; |
76 val thy = ProofContext.theory_of fix_ctxt; |
77 |
77 |
78 val _ = eliminate_term fix_ctxt xs (Thm.full_prop_of thm); |
78 val _ = eliminate_term fix_ctxt xs (Thm.full_prop_of thm); |
79 val _ = ObjectLogic.is_judgment thy (Thm.concl_of thm) orelse |
79 val _ = Object_Logic.is_judgment thy (Thm.concl_of thm) orelse |
80 error "Conclusion in obtained context must be object-logic judgment"; |
80 error "Conclusion in obtained context must be object-logic judgment"; |
81 |
81 |
82 val ((_, [thm']), ctxt') = Variable.import true [thm] fix_ctxt; |
82 val ((_, [thm']), ctxt') = Variable.import true [thm] fix_ctxt; |
83 val prems = Drule.strip_imp_prems (#prop (Thm.crep_thm thm')); |
83 val prems = Drule.strip_imp_prems (#prop (Thm.crep_thm thm')); |
84 in |
84 in |
98 (** obtain **) |
98 (** obtain **) |
99 |
99 |
100 fun bind_judgment ctxt name = |
100 fun bind_judgment ctxt name = |
101 let |
101 let |
102 val (bind, ctxt') = ProofContext.bind_fixes [name] ctxt; |
102 val (bind, ctxt') = ProofContext.bind_fixes [name] ctxt; |
103 val (t as _ $ Free v) = bind (ObjectLogic.fixed_judgment (ProofContext.theory_of ctxt) name); |
103 val (t as _ $ Free v) = bind (Object_Logic.fixed_judgment (ProofContext.theory_of ctxt) name); |
104 in ((v, t), ctxt') end; |
104 in ((v, t), ctxt') end; |
105 |
105 |
106 val thatN = "that"; |
106 val thatN = "that"; |
107 |
107 |
108 local |
108 local |