src/Provers/hypsubst.ML
changeset 35021 c839a4c670c6
parent 32957 675c0c7e6a37
child 35232 f588e1169c8b
equal deleted inserted replaced
35020:862a20ffa8e2 35021:c839a4c670c6
   163       end handle THM _ => no_tac | EQ_VAR => no_tac) i st
   163       end handle THM _ => no_tac | EQ_VAR => no_tac) i st
   164     in REPEAT_DETERM1 o tac end;
   164     in REPEAT_DETERM1 o tac end;
   165 
   165 
   166 end;
   166 end;
   167 
   167 
   168 val ssubst = Drule.standard (Data.sym RS Data.subst);
   168 val ssubst = Drule.export_without_context (Data.sym RS Data.subst);
   169 
   169 
   170 fun inst_subst_tac b rl = CSUBGOAL (fn (cBi, i) =>
   170 fun inst_subst_tac b rl = CSUBGOAL (fn (cBi, i) =>
   171   case try (Logic.strip_assums_hyp #> hd #>
   171   case try (Logic.strip_assums_hyp #> hd #>
   172       Data.dest_Trueprop #> Data.dest_eq #> pairself contract) (Thm.term_of cBi) of
   172       Data.dest_Trueprop #> Data.dest_eq #> pairself contract) (Thm.term_of cBi) of
   173     SOME (t, t') =>
   173     SOME (t, t') =>