equal
deleted
inserted
replaced
52 apply simp |
52 apply simp |
53 done |
53 done |
54 |
54 |
55 declare gcd.simps [simp del] |
55 declare gcd.simps [simp del] |
56 |
56 |
57 lemma gcd_1 [simp]: "gcd (m, 1') = 1" |
57 lemma gcd_1 [simp]: "gcd (m, Suc 0) = 1" |
58 apply (simp add: gcd_non_0) |
58 apply (simp add: gcd_non_0) |
59 done |
59 done |
60 |
60 |
61 text {* |
61 text {* |
62 \medskip @{term "gcd (m, n)"} divides @{text m} and @{text n}. The |
62 \medskip @{term "gcd (m, n)"} divides @{text m} and @{text n}. The |
138 |
138 |
139 lemma gcd_0_left [simp]: "gcd (0, m) = m" |
139 lemma gcd_0_left [simp]: "gcd (0, m) = m" |
140 apply (simp add: gcd_commute [of 0]) |
140 apply (simp add: gcd_commute [of 0]) |
141 done |
141 done |
142 |
142 |
143 lemma gcd_1_left [simp]: "gcd (1', m) = 1" |
143 lemma gcd_1_left [simp]: "gcd (Suc 0, m) = 1" |
144 apply (simp add: gcd_commute [of "1'"]) |
144 apply (simp add: gcd_commute [of "Suc 0"]) |
145 done |
145 done |
146 |
146 |
147 |
147 |
148 text {* |
148 text {* |
149 \medskip Multiplication laws |
149 \medskip Multiplication laws |
192 |
192 |
193 lemma prime_dvd_mult: "p \<in> prime ==> p dvd m * n ==> p dvd m \<or> p dvd n" |
193 lemma prime_dvd_mult: "p \<in> prime ==> p dvd m * n ==> p dvd m \<or> p dvd n" |
194 apply (blast intro: relprime_dvd_mult prime_imp_relprime) |
194 apply (blast intro: relprime_dvd_mult prime_imp_relprime) |
195 done |
195 done |
196 |
196 |
197 lemma prime_dvd_square: "p \<in> prime ==> p dvd m^2 ==> p dvd m" |
197 lemma prime_dvd_square: "p \<in> prime ==> p dvd m^Suc (Suc 0) ==> p dvd m" |
198 apply (auto dest: prime_dvd_mult) |
198 apply (auto dest: prime_dvd_mult) |
199 done |
199 done |
200 |
200 |
201 |
201 |
202 text {* \medskip Addition laws *} |
202 text {* \medskip Addition laws *} |