equal
deleted
inserted
replaced
632 next |
632 next |
633 assume "EX q::int. m = d*q" |
633 assume "EX q::int. m = d*q" |
634 thus "m mod d = 0" by auto |
634 thus "m mod d = 0" by auto |
635 qed |
635 qed |
636 |
636 |
637 declare zmod_eq_0_iff [THEN iffD1, dest!] |
637 lemmas zmod_eq_0D = zmod_eq_0_iff [THEN iffD1] |
|
638 declare zmod_eq_0D [dest!] |
638 |
639 |
639 text{*proving (a+b) div c = a div c + b div c + ((a mod c + b mod c) div c) *} |
640 text{*proving (a+b) div c = a div c + b div c + ((a mod c + b mod c) div c) *} |
640 |
641 |
641 lemma zadd1_lemma: |
642 lemma zadd1_lemma: |
642 "[| quorem((a,c),(aq,ar)); quorem((b,c),(bq,br)); c \<noteq> 0 |] |
643 "[| quorem((a,c),(aq,ar)); quorem((b,c),(bq,br)); c \<noteq> 0 |] |
1050 lemma zdvd_zmult2: "k dvd (m::int) ==> k dvd m * n" |
1051 lemma zdvd_zmult2: "k dvd (m::int) ==> k dvd m * n" |
1051 apply (subst mult_commute) |
1052 apply (subst mult_commute) |
1052 apply (erule zdvd_zmult) |
1053 apply (erule zdvd_zmult) |
1053 done |
1054 done |
1054 |
1055 |
1055 lemma [iff]: "(k::int) dvd m * k" |
1056 lemma zdvd_triv_right [iff]: "(k::int) dvd m * k" |
1056 apply (rule zdvd_zmult) |
1057 apply (rule zdvd_zmult) |
1057 apply (rule zdvd_refl) |
1058 apply (rule zdvd_refl) |
1058 done |
1059 done |
1059 |
1060 |
1060 lemma [iff]: "(k::int) dvd k * m" |
1061 lemma zdvd_triv_left [iff]: "(k::int) dvd k * m" |
1061 apply (rule zdvd_zmult2) |
1062 apply (rule zdvd_zmult2) |
1062 apply (rule zdvd_refl) |
1063 apply (rule zdvd_refl) |
1063 done |
1064 done |
1064 |
1065 |
1065 lemma zdvd_zmultD2: "j * k dvd n ==> j dvd (n::int)" |
1066 lemma zdvd_zmultD2: "j * k dvd n ==> j dvd (n::int)" |