src/HOL/HOL.thy
changeset 33369 470a7b233ee5
parent 33364 2bd12592c5e8
child 33523 96730ad673be
equal deleted inserted replaced
33368:b1cf34f1855c 33369:470a7b233ee5
   851   fun hyp_subst_tac' i thm = if i <= Thm.nprems_of thm andalso
   851   fun hyp_subst_tac' i thm = if i <= Thm.nprems_of thm andalso
   852     Term.exists_Const (fn ("op =", Type (_, [T, _])) => T <> Type ("bool", []) | _ => false)
   852     Term.exists_Const (fn ("op =", Type (_, [T, _])) => T <> Type ("bool", []) | _ => false)
   853       (nth (Thm.prems_of thm) (i - 1)) then Hypsubst.hyp_subst_tac i thm else no_tac thm;
   853       (nth (Thm.prems_of thm) (i - 1)) then Hypsubst.hyp_subst_tac i thm else no_tac thm;
   854 in
   854 in
   855   Hypsubst.hypsubst_setup
   855   Hypsubst.hypsubst_setup
   856   #> ContextRules.addSWrapper (fn tac => hyp_subst_tac' ORELSE' tac)
   856   #> Context_Rules.addSWrapper (fn tac => hyp_subst_tac' ORELSE' tac)
   857 end
   857 end
   858 *}
   858 *}
   859 
   859 
   860 declare iffI [intro!]
   860 declare iffI [intro!]
   861   and notI [intro!]
   861   and notI [intro!]