equal
deleted
inserted
replaced
102 simpset() addsimps [int_0_less_mult_iff, |
102 simpset() addsimps [int_0_less_mult_iff, |
103 linorder_not_less RS sym])); |
103 linorder_not_less RS sym])); |
104 qed "zmult_le_0_iff"; |
104 qed "zmult_le_0_iff"; |
105 |
105 |
106 |
106 |
|
107 Goal "abs (x * y) = abs x * abs (y::int)"; |
|
108 by (simp_tac (simpset () addsplits [zabs_split] addsimps [zmult_less_0_iff, zle_def]) 1); |
|
109 qed "abs_mult"; |
|
110 |
|
111 Goal "(abs x = 0) = (x = (0::int))"; |
|
112 by (simp_tac (simpset () addsplits [zabs_split]) 1); |
|
113 qed "abs_eq_0"; |
|
114 AddIffs [abs_eq_0]; |
|
115 |
|
116 Goal "#0 <= x * (x::int)"; |
|
117 by (subgoal_tac "(- x) * x <= #0" 1); |
|
118 by (Asm_full_simp_tac 1); |
|
119 by (simp_tac (HOL_basic_ss addsimps [zmult_le_0_iff]) 1); |
|
120 by Auto_tac; |
|
121 qed "square_nonzero"; |
|
122 Addsimps [square_nonzero]; |
|
123 AddIs [square_nonzero]; |
|
124 |
|
125 |
107 (*** Products and 1, by T. M. Rasmussen ***) |
126 (*** Products and 1, by T. M. Rasmussen ***) |
108 |
127 |
109 Goal "(m = m*(n::int)) = (n = #1 | m = #0)"; |
128 Goal "(m = m*(n::int)) = (n = #1 | m = #0)"; |
110 by Auto_tac; |
129 by Auto_tac; |
111 by (subgoal_tac "m*#1 = m*n" 1); |
130 by (subgoal_tac "m*#1 = m*n" 1); |