X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2Flibrary%2Fnat%2Ftotient.ma;h=24c3920ed82571324c2977a7be798b492fbf43e7;hb=4167cea65ca58897d1a3dbb81ff95de5074700cc;hp=6715fe854993ebce6ca7b668606ed9ab64c97f42;hpb=f11e6250691c73a64315052bb910e23c87aea8a8;p=helm.git diff --git a/helm/matita/library/nat/totient.ma b/helm/matita/library/nat/totient.ma index 6715fe854..24c3920ed 100644 --- a/helm/matita/library/nat/totient.ma +++ b/helm/matita/library/nat/totient.ma @@ -28,7 +28,6 @@ theorem totient6: totient (S(S(S(S(S(S O)))))) = (S(S O)). reflexivity. qed. -(* theorem totient_times: \forall n,m:nat. (gcd m n) = (S O) \to totient (n*m) = (totient n)*(totient m). intro. @@ -66,4 +65,38 @@ rewrite > eq_to_eqb_true. rewrite > eq_to_eqb_true. reflexivity. rewrite < H4. -*) +rewrite > sym_gcd. +rewrite > gcd_mod. +apply (gcd_times_SO_to_gcd_SO ? ? (S m2)). +unfold lt.apply le_S_S.apply le_O_n. +unfold lt.apply le_S_S.apply le_O_n. +assumption. +unfold lt.apply le_S_S.apply le_O_n. +rewrite < H5. +rewrite > sym_gcd. +rewrite > gcd_mod. +apply (gcd_times_SO_to_gcd_SO ? ? (S m)). +unfold lt.apply le_S_S.apply le_O_n. +unfold lt.apply le_S_S.apply le_O_n. +rewrite > sym_times. +assumption. +unfold lt.apply le_S_S.apply le_O_n. +intro. +apply eqb_elim. +intro.apply eqb_elim. +intro.apply False_ind. +apply H6. +apply eq_gcd_times_SO. +unfold lt.apply le_S_S.apply le_O_n. +unfold lt.apply le_S_S.apply le_O_n. +rewrite < gcd_mod. +rewrite > H4. +rewrite > sym_gcd.assumption. +unfold lt.apply le_S_S.apply le_O_n. +rewrite < gcd_mod. +rewrite > H5. +rewrite > sym_gcd.assumption. +unfold lt.apply le_S_S.apply le_O_n. +intro.reflexivity. +intro.reflexivity. +qed. \ No newline at end of file