X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Flibrary%2Falgebra%2Ffinite_groups.ma;h=766f9a6a73e457ae1d6e9630c9661b8bacec8eb5;hb=92ff0c811f55b37004e2ee45dff0859c31857128;hp=79521e20650c95f8a2016df8c0e82ae921a432ad;hpb=3caba0beeaf8d1f111d28e3b381956aa6aff363a;p=helm.git diff --git a/helm/software/matita/library/algebra/finite_groups.ma b/helm/software/matita/library/algebra/finite_groups.ma index 79521e206..766f9a6a7 100644 --- a/helm/software/matita/library/algebra/finite_groups.ma +++ b/helm/software/matita/library/algebra/finite_groups.ma @@ -60,144 +60,6 @@ interpretation "Index_of_finite_enumerable representation" (* several definitions/theorems to be moved somewhere else *) -definition ltb ≝λn,m. leb n m ∧ notb (eqb n m). - -theorem not_eq_to_le_to_lt: ∀n,m. n≠m → n≤m → n (S_pred m); - [ apply le_S_S; - assumption - | assumption - ] -]. -qed. - -theorem le_to_le_pred: - ∀n,m. n ≤ m → pred n ≤ pred m. -intros 2; -elim n; -[ simplify; - apply le_O_n -| simplify; - generalize in match H1; - clear H1; - elim m; - [ elim (not_le_Sn_O ? H1) - | simplify; - apply le_S_S_to_le; - assumption - ] -]. -qed. - -theorem lt_n_m_to_not_lt_m_Sn: ∀n,m. n < m → m ≮ S n. -intros; -unfold Not; -intro; -unfold lt in H; -unfold lt in H1; -generalize in match (le_S_S ? ? H); -intro; -generalize in match (transitive_le ? ? ? H2 H1); -intro; -apply (not_le_Sn_n ? H3). -qed. - -theorem lt_S_S: ∀n,m. n < m → S n < S m. -intros; -unfold lt in H; -apply (le_S_S ? ? H). -qed. - -(* moved to nat/order.ma -theorem lt_O_S: ∀n. O < S n. -intro; -unfold lt; -apply le_S_S; -apply le_O_n. -qed. *) - -theorem le_n_m_to_lt_m_Sn_to_eq_n_m: ∀n,m. n ≤ m → m < S n → n=m. -intros; -unfold lt in H1; -generalize in match (le_S_S_to_le ? ? H1); -intro; -apply cic:/matita/nat/orders/antisym_le.con; -assumption. -qed. - theorem pigeonhole: ∀n:nat.∀f:nat→nat. (∀x,y.x≤n → y≤n → f x = f y → x=y) → @@ -231,6 +93,7 @@ elim n; [ simplify in H5; clear Hcut; clear Hcut1; + unfold f' in H5; clear f'; elim H5; clear H5; @@ -299,6 +162,7 @@ elim n; [ simplify in H5; clear Hcut; clear Hcut1; + unfold f' in H5; clear f'; elim H5; clear H5; @@ -311,7 +175,7 @@ elim n; apply (ltb_elim (f (S n1)) (f a)); [ simplify; intros; - generalize in match (lt_S_S ? ? H5); + generalize in match (lt_to_lt_S_S ? ? H5); intro; rewrite < S_pred in H6; [ elim (lt_n_m_to_not_lt_m_Sn ? ? H4 H6) @@ -389,7 +253,8 @@ elim n; [ apply (H1 ? ? ? ? Hcut); apply le_S; assumption - | apply eq_pred_to_eq; + | alias id "eq_pred_to_eq" = "cic:/matita/nat/relevant_equations/eq_pred_to_eq.con". +apply eq_pred_to_eq; [ apply (ltn_to_ltO ? ? H7) | apply (ltn_to_ltO ? ? H6) | assumption @@ -532,6 +397,7 @@ cut (∀n.n ≤ order ? (is_finite_enumerable G) → ∃m.f m = n); assumption ] | intros; + unfold f; apply index_of_sur ] ].