src/Pure/Isar/obtain.ML
changeset 35625 9c818cab0dd0
parent 33957 e9afca2118d4
child 35845 e5980f0ad025
equal deleted inserted replaced
35624:c4e29a0bb8c1 35625:9c818cab0dd0
    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