]> matita.cs.unibo.it Git - helm.git/commitdiff
...
authorEnrico Tassi <enrico.tassi@inria.fr>
Mon, 24 Nov 2008 17:27:41 +0000 (17:27 +0000)
committerEnrico Tassi <enrico.tassi@inria.fr>
Mon, 24 Nov 2008 17:27:41 +0000 (17:27 +0000)
helm/software/matita/contribs/igft/cantor.ma [new file with mode: 0644]
helm/software/matita/contribs/igft/depends
helm/software/matita/contribs/igft/igft.ma

diff --git a/helm/software/matita/contribs/igft/cantor.ma b/helm/software/matita/contribs/igft/cantor.ma
new file mode 100644 (file)
index 0000000..38e6525
--- /dev/null
@@ -0,0 +1,43 @@
+include "logic/cprop_connectives.ma".
+include "igft.ma".
+
+axiom A: Type.
+axiom S_: A → Ω^A.
+
+inductive Unit : Type := unit : Unit.
+
+definition axs: AxiomSet.
+ constructor 1;
+  [ apply A;
+  | intro; apply Unit;
+  | intros; apply (S_ a)]
+qed.
+
+definition S : axs → Ω^axs ≝ S_.
+
+definition emptyset: Ω^axs ≝ {x | False}.
+
+notation "∅︀" non associative with precedence 90 for @{'emptyset}.
+interpretation "emptyset" 'emptyset = emptyset.
+notation "∅" non associative with precedence 91 for @{'emptyset1}.
+interpretation "emptyset1" 'emptyset1 = emptyset.
+
+definition Z: Ω \sup axs ≝ {x | x ⊲ ∅}.
+
+theorem cantor: ∀a:axs. ¬ (Z ⊆ S a ∧ S a ⊆ Z).
+ intros 2; cases H; clear H;
+ cut (a ⊲ S a);
+  [2: apply infinity; [apply unit] change with (S a ⊲ S a); 
+      intros 2; apply refl; apply H;]
+ cut (a ⊲ ∅︀);
+  [2: apply (trans (S a)); [ assumption ]
+      intros 2; lapply (H2 ? H) as K;
+      change in K with (x ⊲ ∅ );
+      assumption;]
+ cut (a ε S a);
+  [2: apply H1; apply Hcut1;]
+ generalize in match Hcut2; clear Hcut2;
+ elim Hcut1 using covers_elim;
+  [ intros 2; cases H;
+  | intros; apply (H3 a1); [apply H4|apply H4]]
+qed.
index 6fef337d037e5a05da204672dbe92cab9d4300b2..760fb80503875e434e61fbd587c38b8d47603fd6 100644 (file)
@@ -1 +1,3 @@
+cantor.ma igft.ma logic/cprop_connectives.ma
 igft.ma 
+logic/cprop_connectives.ma 
index b6da8620fff7c2141936e421c7bdc8973ee44a6b..fb4a9234007169f3a4154308462acd24324ef9eb 100644 (file)
@@ -11,6 +11,11 @@ record AxiomSet : Type := {
   C_ : ∀a.I_ a → Ω ^ S
 }.
 
+notation > "∀ident a∈A.P" right associative with precedence 20
+for @{ ∀${ident a} : S $A. $P }.
+notation > "λident a∈A.P" right associative with precedence 20
+for @{ λ${ident a} : S $A. $P }.
+
 notation "'I'" non associative with precedence 90 for @{'I}.
 interpretation "I" 'I = (I_ _).
 notation < "'I' \lpar a \rpar" non associative with precedence 90 for @{'I1 $a}.
@@ -23,7 +28,7 @@ notation < "'C' \lpar a , i \rpar" non associative with precedence 90 for @{'C2
 interpretation "C a i" 'C2 a i = (C_ _ a i).
 
 definition in_subset :=
-  λA:AxiomSet.λa:A.λU:Ω^A.content A U a.
+  λA:AxiomSet.λaA.λU:Ω^A.content A U a.
   
 notation "hvbox(a break εU)" non associative with precedence 50 for 
 @{'in_subset $a $U}.
@@ -32,8 +37,14 @@ interpretation "In subset" 'in_subset a U = (in_subset _ a U).
 definition for_all ≝ λA:AxiomSet.λU:Ω^A.λP:A → CProp.∀x.xεU → P x.
 
 inductive covers (A : AxiomSet) (U : Ω ^ A) : A → CProp :=
- | reflexivity : ∀a.aεU → covers A U a
- | infinity : ∀a.∀i : I a. for_all A (C a i) (covers A U)  → covers A U a.
+ | refl_ : ∀a.aεU → covers A U a
+ | infinity_ : ∀a.∀i : I a. for_all A (C a i) (covers A U)  → covers A U a.
+notation "'refl'" non associative with precedence 90 for @{'refl}. 
+interpretation "refl" 'refl = (refl_ _ _ _).
+
+notation "'infinity'" non associative with precedence 90 for @{'infinity}.  
+interpretation "infinity" 'infinity = (infinity_ _ _ _).
  
 notation "U ⊲ V" non associative with precedence 45
 for @{ 'covers_subsets $U $V}.
@@ -44,22 +55,35 @@ definition subseteq := λA:AxiomSet.λU,V:Ω^A.∀x.xεU → xεV.
 
 interpretation "subseteq" 'subseteq u v = (subseteq _ u v).
 
-definition covers_elim ≝
+
+definition covers_elim_ ≝
  λA:AxiomSet.λU,P: Ω^A.λH1: U ⊆ P. 
-  λH2:∀a:A.∀j:I a. C a j ⊲ U → C a j ⊆ P → aεP.
+  λH2:∀aA.∀j:I a. C a j ⊲ U → C a j ⊆ P → aεP.
     let rec aux (a:A) (p:a ⊲ U) on p : aεP ≝
-     match p return λaa.λ_:aa ⊲ U.aa ε P with
-      [ reflexivity a q ⇒ H1 a q
-      | infinity a j q ⇒ H2 a j q (λb.λr. aux b (q b r))]
+     match p return λr.λ_:r ⊲ U.r ε P with
+      [ refl_ a q ⇒ H1 a q
+      | infinity_ a j q ⇒ H2 a j q (λb.λr. aux b (q b r))]
     in
      aux.
-
+     
 interpretation "char" 'subset p = (mk_powerset _ p).  
+     
+definition covers_elim : 
+ ∀A:AxiomSet.∀U: Ω^A.∀P:A→CProp.∀H1: U ⊆ {x | P x}. 
+  ∀H2:∀a∈A.∀j:I a. C a j ⊲ U → C a j ⊆ {x | P x} → P a.
+   ∀a∈A.a ⊲ U → P a.
+change in ⊢ (?→?→?→?→?→?→?→%) with (aε{x|P x});
+intros 3; apply covers_elim_;
+qed.
 
-theorem transitivity: ∀A:AxiomSet.∀a:A.∀U,V. a ⊲ U → U ⊲ V → a ⊲ V.
+theorem trans_: ∀A:AxiomSet.∀a∈A.∀U,V. a ⊲ U → U ⊲ V → a ⊲ V.
  intros;
apply (covers_elim ?? {a | a ⊲ V} ??? H);
elim H using covers_elim;
   [ intros 2; apply (H1 ? H2);
-  | intros; apply (infinity ??? j);
+  | intros; apply (infinity j);
     intros 2; apply (H3 ? H4);]
 qed.
+
+notation "'trans'" non associative with precedence 90 for @{'trans}. 
+interpretation "trans" 'trans = (trans_ _ _).
+