798 "(1 :: int) = 1" |
798 "(1 :: int) = 1" |
799 "(op + :: int \<Rightarrow> int \<Rightarrow> int) = op +" |
799 "(op + :: int \<Rightarrow> int \<Rightarrow> int) = op +" |
800 "(uminus :: int \<Rightarrow> int) = uminus" |
800 "(uminus :: int \<Rightarrow> int) = uminus" |
801 "(op - :: int \<Rightarrow> int \<Rightarrow> int) = op -" |
801 "(op - :: int \<Rightarrow> int \<Rightarrow> int) = op -" |
802 "(op * :: int \<Rightarrow> int \<Rightarrow> int) = op *" |
802 "(op * :: int \<Rightarrow> int \<Rightarrow> int) = op *" |
803 "(op = :: int \<Rightarrow> int \<Rightarrow> bool) = op =" |
803 "(eq_class.eq :: int \<Rightarrow> int \<Rightarrow> bool) = eq_class.eq" |
804 "(op \<le> :: int \<Rightarrow> int \<Rightarrow> bool) = op \<le>" |
804 "(op \<le> :: int \<Rightarrow> int \<Rightarrow> bool) = op \<le>" |
805 "(op < :: int \<Rightarrow> int \<Rightarrow> bool) = op <" |
805 "(op < :: int \<Rightarrow> int \<Rightarrow> bool) = op <" |
806 by rule+ |
806 by rule+ |
807 |
807 |
808 lemma one_int_code [code]: |
808 lemma one_int_code [code]: |
841 "Mns m * Pls n = Mns (m * n)" |
841 "Mns m * Pls n = Mns (m * n)" |
842 "Mns m * Mns n = Pls (m * n)" |
842 "Mns m * Mns n = Pls (m * n)" |
843 by (simp_all add: of_num_times [symmetric]) |
843 by (simp_all add: of_num_times [symmetric]) |
844 |
844 |
845 lemma eq_int_code [code]: |
845 lemma eq_int_code [code]: |
846 "0 = (0::int) \<longleftrightarrow> True" |
846 "eq_class.eq 0 (0::int) \<longleftrightarrow> True" |
847 "0 = Pls l \<longleftrightarrow> False" |
847 "eq_class.eq 0 (Pls l) \<longleftrightarrow> False" |
848 "0 = Mns l \<longleftrightarrow> False" |
848 "eq_class.eq 0 (Mns l) \<longleftrightarrow> False" |
849 "Pls k = 0 \<longleftrightarrow> False" |
849 "eq_class.eq (Pls k) 0 \<longleftrightarrow> False" |
850 "Pls k = Pls l \<longleftrightarrow> k = l" |
850 "eq_class.eq (Pls k) (Pls l) \<longleftrightarrow> eq_class.eq k l" |
851 "Pls k = Mns l \<longleftrightarrow> False" |
851 "eq_class.eq (Pls k) (Mns l) \<longleftrightarrow> False" |
852 "Mns k = 0 \<longleftrightarrow> False" |
852 "eq_class.eq (Mns k) 0 \<longleftrightarrow> False" |
853 "Mns k = Pls l \<longleftrightarrow> False" |
853 "eq_class.eq (Mns k) (Pls l) \<longleftrightarrow> False" |
854 "Mns k = Mns l \<longleftrightarrow> k = l" |
854 "eq_class.eq (Mns k) (Mns l) \<longleftrightarrow> eq_class.eq k l" |
855 using of_num_pos [of l, where ?'a = int] of_num_pos [of k, where ?'a = int] |
855 using of_num_pos [of l, where ?'a = int] of_num_pos [of k, where ?'a = int] |
856 by (simp_all add: of_num_eq_iff) |
856 by (simp_all add: of_num_eq_iff eq) |
857 |
857 |
858 lemma less_eq_int_code [code]: |
858 lemma less_eq_int_code [code]: |
859 "0 \<le> (0::int) \<longleftrightarrow> True" |
859 "0 \<le> (0::int) \<longleftrightarrow> True" |
860 "0 \<le> Pls l \<longleftrightarrow> True" |
860 "0 \<le> Pls l \<longleftrightarrow> True" |
861 "0 \<le> Mns l \<longleftrightarrow> False" |
861 "0 \<le> Mns l \<longleftrightarrow> False" |