equal
deleted
inserted
replaced
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 |