src/HOL/HOL.thy
changeset 15354 9234f5765d9c
parent 15288 9d49290ed885
child 15360 300e09825d8b
equal deleted inserted replaced
15353:b53b89d3bf03 15354:9234f5765d9c
   341 
   341 
   342 lemma eta_contract_eq: "(%s. f s) = f" ..
   342 lemma eta_contract_eq: "(%s. f s) = f" ..
   343 
   343 
   344 lemma simp_thms:
   344 lemma simp_thms:
   345   shows not_not: "(~ ~ P) = P"
   345   shows not_not: "(~ ~ P) = P"
       
   346   and Not_eq_iff: "((~P) = (~Q)) = (P = Q)"
   346   and
   347   and
   347     "(P ~= Q) = (P = (~Q))"
   348     "(P ~= Q) = (P = (~Q))"
   348     "(P | ~P) = True"    "(~P | P) = True"
   349     "(P | ~P) = True"    "(~P | P) = True"
   349     "((~P) = (~Q)) = (P=Q)"
       
   350     "(x = x) = True"
   350     "(x = x) = True"
   351     "(~True) = False"  "(~False) = True"
   351     "(~True) = False"  "(~False) = True"
   352     "(~P) ~= P"  "P ~= (~P)"
   352     "(~P) ~= P"  "P ~= (~P)"
   353     "(True=P) = P"  "(P=True) = P"  "(False=P) = (~P)"  "(P=False) = (~P)"
   353     "(True=P) = P"  "(P=True) = P"  "(False=P) = (~P)"  "(P=False) = (~P)"
   354     "(True --> P) = P"  "(False --> P) = True"
   354     "(True --> P) = P"  "(False --> P) = True"
   658 
   658 
   659 syntax (HTML output)
   659 syntax (HTML output)
   660   "op <="       :: "['a::ord, 'a] => bool"             ("op \<le>")
   660   "op <="       :: "['a::ord, 'a] => bool"             ("op \<le>")
   661   "op <="       :: "['a::ord, 'a] => bool"             ("(_/ \<le> _)"  [50, 51] 50)
   661   "op <="       :: "['a::ord, 'a] => bool"             ("(_/ \<le> _)"  [50, 51] 50)
   662 
   662 
   663 
   663 text{* Syntactic sugar: *}
   664 lemma Not_eq_iff: "((~P) = (~Q)) = (P = Q)"
   664 
   665 by blast
   665 consts
       
   666   "_gt" :: "'a::ord => 'a => bool"             (infixl ">" 50)
       
   667   "_ge" :: "'a::ord => 'a => bool"             (infixl ">=" 50)
       
   668 translations
       
   669   "x > y"  => "y < x"
       
   670   "x >= y" => "y <= x"
       
   671 
       
   672 syntax (xsymbols)
       
   673   "_ge"       :: "'a::ord => 'a => bool"             (infixl "\<ge>" 50)
       
   674 
       
   675 syntax (HTML output)
       
   676   "_ge"       :: "['a::ord, 'a] => bool"             (infixl "\<ge>" 50)
       
   677 
   666 
   678 
   667 subsubsection {* Monotonicity *}
   679 subsubsection {* Monotonicity *}
   668 
   680 
   669 locale mono =
   681 locale mono =
   670   fixes f
   682   fixes f