1297 add_bin_simps minus_bin_simps mult_bin_simps |
1297 add_bin_simps minus_bin_simps mult_bin_simps |
1298 abs_zero abs_one arith_extra_simps |
1298 abs_zero abs_one arith_extra_simps |
1299 |
1299 |
1300 text {* Simplification of relational operations *} |
1300 text {* Simplification of relational operations *} |
1301 |
1301 |
|
1302 lemma less_number_of [simp]: |
|
1303 "(number_of x::'a::{ordered_idom,number_ring}) < number_of y \<longleftrightarrow> x < y" |
|
1304 unfolding number_of_eq by (rule of_int_less_iff) |
|
1305 |
|
1306 lemma le_number_of [simp]: |
|
1307 "(number_of x::'a::{ordered_idom,number_ring}) \<le> number_of y \<longleftrightarrow> x \<le> y" |
|
1308 unfolding number_of_eq by (rule of_int_le_iff) |
|
1309 |
1302 lemmas rel_simps [simp] = |
1310 lemmas rel_simps [simp] = |
|
1311 less_number_of less_bin_simps |
|
1312 le_number_of le_bin_simps |
1303 eq_number_of_eq iszero_0 nonzero_number_of_Min |
1313 eq_number_of_eq iszero_0 nonzero_number_of_Min |
1304 iszero_number_of_Bit0 iszero_number_of_Bit1 |
1314 iszero_number_of_Bit0 iszero_number_of_Bit1 |
1305 less_number_of_eq_neg |
|
1306 not_neg_number_of_Pls not_neg_0 not_neg_1 not_iszero_1 |
1315 not_neg_number_of_Pls not_neg_0 not_neg_1 not_iszero_1 |
1307 neg_number_of_Min neg_number_of_Bit0 neg_number_of_Bit1 |
1316 neg_number_of_Min neg_number_of_Bit0 neg_number_of_Bit1 |
1308 le_number_of_eq |
|
1309 (* iszero_number_of_Pls would never be used |
1317 (* iszero_number_of_Pls would never be used |
1310 because its lhs simplifies to "iszero 0" *) |
1318 because its lhs simplifies to "iszero 0" *) |
1311 |
1319 |
1312 |
1320 |
1313 subsubsection {* Simplification of arithmetic when nested to the right. *} |
1321 subsubsection {* Simplification of arithmetic when nested to the right. *} |