src/FOL/IFOL.thy
changeset 11848 6e3017adb8c0
parent 11771 b7b100a2de1d
child 11953 f98623fdf6ef
equal deleted inserted replaced
11847:82df5977101b 11848:6e3017adb8c0
   158   thus "x == y" by (rule eq_reflection)
   158   thus "x == y" by (rule eq_reflection)
   159 qed
   159 qed
   160 
   160 
   161 declare atomize_all [symmetric, rulify]  atomize_imp [symmetric, rulify]
   161 declare atomize_all [symmetric, rulify]  atomize_imp [symmetric, rulify]
   162 
   162 
       
   163 
       
   164 subsection {* Calculational rules *}
       
   165 
       
   166 lemma forw_subst: "a = b ==> P(b) ==> P(a)"
       
   167   by (rule ssubst)
       
   168 
       
   169 lemma back_subst: "P(a) ==> a = b ==> P(b)"
       
   170   by (rule subst)
       
   171 
       
   172 text {*
       
   173   Note that this list of rules is in reverse order of priorities.
       
   174 *}
       
   175 
       
   176 lemmas trans_rules [trans] =
       
   177   forw_subst
       
   178   back_subst
       
   179   rev_mp
       
   180   mp
       
   181   transitive
       
   182   trans
       
   183 
       
   184 lemmas [Pure.elim] = sym
       
   185 
   163 end
   186 end