src/HOL/ex/Refute_Examples.thy
changeset 62148 e410c6287103
parent 61933 cf58b5b794b2
child 63901 4ce989e962e0
equal deleted inserted replaced
62147:a1b666aaac1a 62148:e410c6287103
   892 
   892 
   893 text \<open>Overloading:\<close>
   893 text \<open>Overloading:\<close>
   894 
   894 
   895 consts inverse :: "'a \<Rightarrow> 'a"
   895 consts inverse :: "'a \<Rightarrow> 'a"
   896 
   896 
   897 defs (overloaded)
   897 overloading inverse_bool \<equiv> "inverse :: bool \<Rightarrow> bool"
   898   inverse_bool: "inverse (b::bool)   == ~ b"
   898 begin
   899   inverse_set : "inverse (S::'a set) == -S"
   899   definition "inverse (b::bool) \<equiv> \<not> b"
   900   inverse_pair: "inverse p           == (inverse (fst p), inverse (snd p))"
   900 end
       
   901 
       
   902 overloading inverse_set \<equiv> "inverse :: 'a set \<Rightarrow> 'a set"
       
   903 begin
       
   904   definition "inverse (S::'a set) \<equiv> -S"
       
   905 end
       
   906 
       
   907 overloading inverse_pair \<equiv> "inverse :: 'a \<times> 'b \<Rightarrow> 'a \<times> 'b"
       
   908 begin
       
   909   definition "inverse_pair p \<equiv> (inverse (fst p), inverse (snd p))"
       
   910 end
   901 
   911 
   902 lemma "inverse b"
   912 lemma "inverse b"
   903 refute [expect = genuine]
   913 refute [expect = genuine]
   904 oops
   914 oops
   905 
   915