]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/nlibrary/topology/cantor.ma
Finished!
[helm.git] / helm / software / matita / nlibrary / topology / cantor.ma
index b8f8a5543ad57e8cf24ea8ee2f169e63ac94c0aa..bd8a04a22804b12589685ceb9597e2159c0c8885 100644 (file)
@@ -14,11 +14,7 @@ alias symbol "covers" (instance 1) = "covers".
 alias symbol "covers" (instance 2) = "covers set".
 alias symbol "covers" (instance 3) = "covers".
 ntheorem transitivity: ∀A:Ax.∀a:A.∀U,V. a ◃ U → U ◃ V → a ◃ V.
-#A; #a; #U; #V; #aU; #UV;
-nelim aU;
-##[ #c; #H; nauto; 
-##| #c; #i; #HCU; #H; @2 i; nauto; 
-##]
+#A; #a; #U; #V; #aU; #UV; nelim aU; nauto depth=4;
 nqed.
 
 ndefinition emptyset: ∀A.Ω^A ≝ λA.{x | False}.
@@ -28,15 +24,12 @@ interpretation "empty" 'empty = (emptyset ?).
 
 naxiom EM : ∀A:Ax.∀a:A.∀i_star.(a ∈ 𝐂 a i_star) ∨ ¬( a ∈ 𝐂 a i_star).
 
+alias symbol "covers" = "covers".
 ntheorem th2_3 :
   ∀A:Ax.∀a:A. a ◃ ∅ → ∃i. ¬ a ∈ 𝐂 a i.
 #A; #a; #H; nelim H;
 ##[ #n; *;
-##| #b; #i_star; #IH1; #IH2;
-    ncases (EM … b i_star);
-    ##[##2: (* nauto; *) #W; @i_star; napply W;
-    ##| nauto;
-    ##]
+##| #b; #i_star; #IH1; #IH2; ncases (EM … b i_star); nauto;
 ##] 
 nqed.
 
@@ -56,7 +49,8 @@ nrecord uAx : Type[1] ≝ {
 }.
 
 ndefinition uax : uAx → Ax.
-#A; @ (uax_ A) (λx.unit); #a; #_; napply (𝐂 a ?);  nlapply one; ncases (with_ A a); nauto; 
+#A; @ (uax_ A) (λx.unit); #a; #_; 
+napply (𝐂 a ?);  nlapply one; ncases (with_ A a); nauto; 
 nqed.
 
 ncoercion uax : ∀u:uAx. Ax ≝ uax on _u : uAx to Ax.
@@ -76,27 +70,25 @@ unification hint 0 ≔ ;
 
 
 ntheorem col2_4 :
-  ∀A:uAx.∀a:A. a ◃ ∅ → ¬ a ∈ 𝐂 a ?. ##[ (* bug *) ##2: nnormalize; napply one; ##]
+  ∀A:uAx.∀a:A. a ◃ ∅ → ¬ a ∈ 𝐂 a one. 
 #A; #a; #H; nelim H;
 ##[ #n; *;
-##| #b; #i_star; #IH1; #IH2; #H3; nlapply (IH2 … H3); #H4; nauto;
+##| #b; #i_star; #IH1; #IH2; #H3; nlapply (IH2 … H3); nauto;
 ##] 
 nqed.
 
 ndefinition Z : Ω^axs ≝ { x | x ◃ ∅ }.
 
 ntheorem cover_monotone: ∀A:Ax.∀a:A.∀U,V.U ⊆ V → a ◃ U → a ◃ V.
-#A; #a; #U; #V; #HUV; #H; nelim H;
-##[ nauto;
-##| #b; #i; #HCU; #W; @2 i; #x; nauto; ##]
+#A; #a; #U; #V; #HUV; #H; nelim H; nauto depth=4; 
 nqed.
 
 ntheorem th3_1: ¬∃a:axs.Z ⊆ S a ∧ S a ⊆ Z.
 *; #a; *; #ZSa; #SaZ; 
 ncut (a ◃ Z); ##[
   nlapply (axiom_cond … a one); #AxCon; nchange in AxCon with (a ◃ S a);
-  (* nauto; *) napply (cover_monotone … AxCon); nassumption; ##] #H; 
-ncut (a ◃ ∅); ##[ napply (transitivity … H); #x; #E; napply E; ##] #H1;
+  napply (cover_monotone … AxCon); nassumption; ##] #H; 
+ncut (a ◃ ∅); ##[ napply (transitivity … H); nwhd in match Z; nauto; ##] #H1;
 ncut (¬ a ∈ S a); ##[ napply (col2_4 … H1); ##] #H2;
 ncut (a ∈ S a); ##[ napply ZSa; napply H1; ##] #H3;
 nauto;
@@ -130,24 +122,21 @@ naxiom h : nat → nat.
 alias symbol "eq" = "leibnitz's equality".
 alias symbol "eq" = "setoid1 eq".
 alias symbol "covers" = "covers".
+alias symbol "eq" = "leibnitz's equality".
 naxiom Ph :  ∀x.h x = O \liff  x ◃ ∅.
 
 nlemma replace_char:
   ∀A:Ax.∀U,V.U ⊆ V → V ⊆ U → ∀a:A.a ◃ U → a ◃ V.
-#A; #U; #V;  #a; #H1; #H2; #E; nelim E;
-##[ #b; #Hb; @; nauto;
-##| #b; #i; #H3; #H4; @2 i; #c; #Hc; nauto; ##]
+#A; #U; #V;  #UV; #VU; #a; #aU; nelim aU; nauto;
 nqed.
 
 ntheorem th_ch3: ¬∃a:caxs.∀x.ϕ a x = h x.
 *; #a; #H;
 ncut (a ◃ { x | x ◃ ∅}); ##[
-  napply (replace_char … { x | h x = O }); ##[ ##1,2: #x; ncases (Ph x);
-     (* nauto; *) #H1; #H2; #H3; nauto; (* ??? *) ##]
-  napply (replace_char … { x | ϕ a x = O }); ##[##1,2: #x; nrewrite > (H x);
-     (* nauto; *) #E; napply E; ##]
+  napply (replace_char … { x | h x = O }); ##[ ##1,2: #x; ncases (Ph x); nauto; ##]
+  napply (replace_char … { x | ϕ a x = O }); ##[##1,2: #x; nrewrite > (H x); nauto; ##]
   napply (axiom_cond … a one); ##] #H1;
-ncut (a ◃ ∅); ##[ napply (transitivity … H1); #x; nauto; ##] #H2;
+ncut (a ◃ ∅); ##[ napply (transitivity … H1); nauto; ##] #H2;
 nlapply (col2_4 …H2); #H3;
 ncut (a ∈ 𝐂 a one); ##[
   nnormalize; ncases (Ph a); nrewrite > (H a); nauto; ##] #H4;