src/HOL/HOL.thy
changeset 16999 307b2ec590ff
parent 16775 c1b87ef4a1c3
child 17197 917c6e7ca28d
equal deleted inserted replaced
16998:e0050191e2d1 16999:307b2ec590ff
  1122 
  1122 
  1123 lemma Let_unfold: "f x \<equiv> g \<Longrightarrow>  Let x f \<equiv> g"
  1123 lemma Let_unfold: "f x \<equiv> g \<Longrightarrow>  Let x f \<equiv> g"
  1124   by (unfold Let_def)
  1124   by (unfold Let_def)
  1125 
  1125 
  1126 text {*
  1126 text {*
  1127 The following copy of the implication operator is useful for
  1127   The following copy of the implication operator is useful for
  1128 fine-tuning congruence rules.
  1128   fine-tuning congruence rules.  It instructs the simplifier to simplify
       
  1129   its premise.
  1129 *}
  1130 *}
  1130 
  1131 
  1131 consts
  1132 consts
  1132   simp_implies :: "[prop, prop] => prop"  ("(_/ =simp=> _)" [2, 1] 1)
  1133   "=simp=>" :: "[prop, prop] => prop"  (infixr 1)
  1133 defs simp_implies_def: "simp_implies \<equiv> op ==>"
  1134 (*
       
  1135   "op =simp=>" :: "[prop, prop] => prop"  ("(_/ =simp=> _)" [2, 1] 1)
       
  1136 syntax
       
  1137   "op =simp=>" :: "[prop, prop] => prop"  ("op =simp=>")
       
  1138 *)
       
  1139 defs simp_implies_def: "op =simp=> \<equiv> op ==>"
  1134 
  1140 
  1135 lemma simp_impliesI: 
  1141 lemma simp_impliesI: 
  1136   assumes PQ: "(PROP P \<Longrightarrow> PROP Q)"
  1142   assumes PQ: "(PROP P \<Longrightarrow> PROP Q)"
  1137   shows "PROP P =simp=> PROP Q"
  1143   shows "PROP P =simp=> PROP Q"
  1138   apply (unfold simp_implies_def)
  1144   apply (unfold simp_implies_def)