]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/library/nat/fermat_little_theorem.ma
ocaml 3.09 transition
[helm.git] / helm / matita / library / nat / fermat_little_theorem.ma
index bbd5e359a352066736b0c5003e80daa86b22bb14..cc18a8bb9e4249005d96e772d7e41f4d01409720 100644 (file)
@@ -25,7 +25,7 @@ unfold S_mod.
 apply le_S_S_to_le.
 change with ((S i) \mod (S n) < S n).
 apply lt_mod_m_m.
-simplify.apply le_S_S.apply le_O_n.
+unfold lt.apply le_S_S.apply le_O_n.
 unfold injn.intros.
 apply inj_S.
 rewrite < (lt_to_eq_mod i (S n)).
@@ -37,14 +37,14 @@ elim Hcut1.
 (* i < n, j< n *)
 rewrite < mod_S.
 rewrite < mod_S.
-apply H2.simplify.apply le_S_S.apply le_O_n.
+apply H2.unfold lt.apply le_S_S.apply le_O_n.
 rewrite > lt_to_eq_mod.
-simplify.apply le_S_S.assumption.
-simplify.apply le_S_S.assumption.
-simplify.apply le_S_S.apply le_O_n.
+unfold lt.apply le_S_S.assumption.
+unfold lt.apply le_S_S.assumption.
+unfold lt.apply le_S_S.apply le_O_n.
 rewrite > lt_to_eq_mod.
-simplify.apply le_S_S.assumption.
-simplify.apply le_S_S.assumption.
+unfold lt.apply le_S_S.assumption.
+unfold lt.apply le_S_S.assumption.
 (* i < n, j=n *)
 unfold S_mod in H2.
 simplify.
@@ -54,11 +54,11 @@ apply sym_eq.
 rewrite < (mod_n_n (S n)).
 rewrite < H4 in \vdash (? ? ? (? %?)).
 rewrite < mod_S.assumption.
-simplify.apply le_S_S.apply le_O_n.
+unfold lt.apply le_S_S.apply le_O_n.
 rewrite > lt_to_eq_mod.
-simplify.apply le_S_S.assumption.
-simplify.apply le_S_S.assumption.
-simplify.apply le_S_S.apply le_O_n.
+unfold lt.apply le_S_S.assumption.
+unfold lt.apply le_S_S.assumption.
+unfold lt.apply le_S_S.apply le_O_n.
 (* i = n, j < n *)
 elim Hcut1.
 apply False_ind.
@@ -66,19 +66,19 @@ apply (not_eq_O_S (j \mod (S n))).
 rewrite < (mod_n_n (S n)).
 rewrite < H3 in \vdash (? ? (? %?) ?).
 rewrite < mod_S.assumption.
-simplify.apply le_S_S.apply le_O_n.
+unfold lt.apply le_S_S.apply le_O_n.
 rewrite > lt_to_eq_mod.
-simplify.apply le_S_S.assumption.
-simplify.apply le_S_S.assumption.
-simplify.apply le_S_S.apply le_O_n.
+unfold lt.apply le_S_S.assumption.
+unfold lt.apply le_S_S.assumption.
+unfold lt.apply le_S_S.apply le_O_n.
 (* i = n, j= n*)
 rewrite > H3.
 rewrite > H4.
 reflexivity.
 apply le_to_or_lt_eq.assumption.
 apply le_to_or_lt_eq.assumption.
-simplify.apply le_S_S.assumption.
-simplify.apply le_S_S.assumption.
+unfold lt.apply le_S_S.assumption.
+unfold lt.apply le_S_S.assumption.
 qed.
 
 (*
@@ -95,19 +95,19 @@ qed.
 
 theorem prime_to_not_divides_fact: \forall p:nat. prime p \to \forall n:nat.
 n \lt p \to \not divides p n!.
-intros 3.elim n.simplify.intros.
+intros 3.elim n.unfold Not.intros.
 apply (lt_to_not_le (S O) p).
 unfold prime in H.elim H.
-assumption.apply divides_to_le.simplify.apply le_n.
+assumption.apply divides_to_le.unfold lt.apply le_n.
 assumption.
 change with (divides p ((S n1)*n1!) \to False).
 intro.
 cut (divides p (S n1) \lor divides p n1!).
 elim Hcut.apply (lt_to_not_le (S n1) p).
 assumption.
-apply divides_to_le.simplify.apply le_S_S.apply le_O_n.
+apply divides_to_le.unfold lt.apply le_S_S.apply le_O_n.
 assumption.apply H1.
-apply (trans_lt ? (S n1)).simplify. apply le_n.
+apply (trans_lt ? (S n1)).unfold lt. apply le_n.
 assumption.assumption.
 apply divides_times_to_divides.
 assumption.assumption.
@@ -120,19 +120,19 @@ split.intros.apply le_S_S_to_le.
 apply (trans_le ? p).
 change with (mod (a*i) p < p).
 apply lt_mod_m_m.
-simplify in H.elim H.
-simplify.apply (trans_le ? (S (S O))).
+unfold prime in H.elim H.
+unfold lt.apply (trans_le ? (S (S O))).
 apply le_n_Sn.assumption.
 rewrite < S_pred.apply le_n.
 unfold prime in H.
 elim H.
-apply (trans_lt ? (S O)).simplify.apply le_n.assumption.
+apply (trans_lt ? (S O)).unfold lt.apply le_n.assumption.
 unfold injn.intros.
 apply (nat_compare_elim i j).
 (* i < j *)
 intro.
 absurd (j-i \lt p).
-simplify.
+unfold lt.
 rewrite > (S_pred p).
 apply le_S_S.
 apply le_plus_to_minus.
@@ -141,9 +141,9 @@ rewrite > sym_plus.
 apply le_plus_n.
 unfold prime in H.
 elim H.
-apply (trans_lt ? (S O)).simplify.apply le_n.assumption.
+apply (trans_lt ? (S O)).unfold lt.apply le_n.assumption.
 apply (le_to_not_lt p (j-i)).
-apply divides_to_le.simplify.
+apply divides_to_le.unfold lt.
 apply le_SO_minus.assumption.
 cut (divides p a \lor divides p (j-i)).
 elim Hcut.apply False_ind.apply H1.assumption.assumption.
@@ -152,7 +152,7 @@ rewrite > distr_times_minus.
 apply eq_mod_to_divides.
 unfold prime in H.
 elim H.
-apply (trans_lt ? (S O)).simplify.apply le_n.assumption.
+apply (trans_lt ? (S O)).unfold lt.apply le_n.assumption.
 apply sym_eq.
 apply H4.
 (* i = j *)
@@ -160,7 +160,7 @@ intro. assumption.
 (* j < i *)
 intro.
 absurd (i-j \lt p).
-simplify.
+unfold lt.
 rewrite > (S_pred p).
 apply le_S_S.
 apply le_plus_to_minus.
@@ -169,9 +169,9 @@ rewrite > sym_plus.
 apply le_plus_n.
 unfold prime in H.
 elim H.
-apply (trans_lt ? (S O)).simplify.apply le_n.assumption.
+apply (trans_lt ? (S O)).unfold lt.apply le_n.assumption.
 apply (le_to_not_lt p (i-j)).
-apply divides_to_le.simplify.
+apply divides_to_le.unfold lt.
 apply le_SO_minus.assumption.
 cut (divides p a \lor divides p (i-j)).
 elim Hcut.apply False_ind.apply H1.assumption.assumption.
@@ -180,7 +180,7 @@ rewrite > distr_times_minus.
 apply eq_mod_to_divides.
 unfold prime in H.
 elim H.
-apply (trans_lt ? (S O)).simplify.apply le_n.assumption.
+apply (trans_lt ? (S O)).unfold lt.apply le_n.assumption.
 apply H4.
 qed.
 
@@ -238,7 +238,7 @@ change with ((S O) \le pred p).
 apply le_S_S_to_le.rewrite < S_pred.
 unfold prime in H.elim H.assumption.assumption.
 unfold prime in H.elim H.apply (trans_lt ? (S O)).
-simplify.apply le_n.assumption.
+unfold lt.apply le_n.assumption.
 cut (O < a \lor O = a).
 elim Hcut.assumption.
 apply False_ind.apply H1.