src/Tools/IsaPlanner/isand.ML
changeset 59621 291934bac95e
parent 59582 0fbed69ff081
child 59641 a2d056424d3c
equal deleted inserted replaced
59620:92d7d8e4f1bf 59621:291934bac95e
    89     val fvs = map Free (xs ~~ map snd alls);
    89     val fvs = map Free (xs ~~ map snd alls);
    90   in ((subst_bounds (fvs,body)), fvs) end;
    90   in ((subst_bounds (fvs,body)), fvs) end;
    91 
    91 
    92 fun fix_alls_cterm ctxt i th =
    92 fun fix_alls_cterm ctxt i th =
    93   let
    93   let
    94     val cert = Thm.cterm_of (Thm.theory_of_thm th);
    94     val cert = Thm.global_cterm_of (Thm.theory_of_thm th);
    95     val (fixedbody, fvs) = fix_alls_term ctxt i (Thm.prop_of th);
    95     val (fixedbody, fvs) = fix_alls_term ctxt i (Thm.prop_of th);
    96     val cfvs = rev (map cert fvs);
    96     val cfvs = rev (map cert fvs);
    97     val ct_body = cert fixedbody;
    97     val ct_body = cert fixedbody;
    98   in (ct_body, cfvs) end;
    98   in (ct_body, cfvs) end;
    99 
    99 
   138  ["SG0", ..., "SGm"] : thm list ->   -- export function
   138  ["SG0", ..., "SGm"] : thm list ->   -- export function
   139    "G" : thm)
   139    "G" : thm)
   140 *)
   140 *)
   141 fun subgoal_thms th =
   141 fun subgoal_thms th =
   142   let
   142   let
   143     val cert = Thm.cterm_of (Thm.theory_of_thm th);
   143     val cert = Thm.global_cterm_of (Thm.theory_of_thm th);
   144 
   144 
   145     val t = Thm.prop_of th;
   145     val t = Thm.prop_of th;
   146 
   146 
   147     val prems = Logic.strip_imp_prems t;
   147     val prems = Logic.strip_imp_prems t;
   148     val aprems = map (Thm.trivial o cert) prems;
   148     val aprems = map (Thm.trivial o cert) prems;