-
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
include "topology/igft.ma".
nqed.
nlemma hint_auto1 : ∀A,U,V. (∀x.x ∈ U → x ◃ V) → cover_set cover A U V.
-nnormalize; nauto.
+nnormalize; /2/.
nqed.
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; nauto depth=4;
+#A; #a; #U; #V; #aU; #UV; nelim aU; /3/;
nqed.
ndefinition emptyset: ∀A.Ω^A ≝ λA.{x | False}.
∀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); nauto;
+##| #b; #i_star; #IH1; #IH2; ncases (EM … b i_star); /3/;
##]
nqed.
ndefinition uax : uAx → Ax.
#A; @ (uax_ A) (λx.unit); #a; #_;
-napply (𝐂 a ?); nlapply one; ncases (with_ A a); nauto;
+napply (𝐂 a ?); nlapply one; ncases (with_ A a); //;
nqed.
ncoercion uax : ∀u:uAx. Ax ≝ uax on _u : uAx to Ax.
unification hint 0 ≔ ;
x ≟ axs
(* -------------- *) ⊢
- S x ≡ A.
-
+ S (uax x) ≡ A. (* XXX: bug coercions/ disamb multipasso che ne fa 1 solo*)
ntheorem col2_4 :
- ∀A:uAx.∀a:A. a ◃ ∅ → ¬ a ∈ 𝐂 a one.
+ ∀A:uAx.∀a:uax A. a ◃ ∅ → ¬ a ∈ 𝐂 a one.
#A; #a; #H; nelim H;
##[ #n; *;
-##| #b; #i_star; #IH1; #IH2; #H3; nlapply (IH2 … H3); nauto;
-##]
+##| #b; #i_star; #IH1; #IH2; #H3; nlapply (IH2 … H3); /2/;
+##]
nqed.
-ndefinition Z : Ω^axs ≝ { x | x ◃ ∅ }.
+(* bug interpretazione non aggiunta per ∅ *)
+ndefinition Z : Ω^axs ≝ { x | x ◃ (emptyset ?) }.
ntheorem cover_monotone: ∀A:Ax.∀a:A.∀U,V.U ⊆ V → a ◃ U → a ◃ V.
-#A; #a; #U; #V; #HUV; #H; nelim H; nauto depth=4;
+#A; #a; #U; #V; #HUV; #H; nelim H; /3/;
nqed.
ntheorem th3_1: ¬∃a:axs.Z ⊆ S a ∧ S a ⊆ Z.
ncut (a ◃ Z); ##[
nlapply (axiom_cond … a one); #AxCon; nchange in AxCon with (a ◃ S a);
napply (cover_monotone … AxCon); nassumption; ##] #H;
-ncut (a ◃ ∅); ##[ napply (transitivity … H); nwhd in match Z; nauto; ##] #H1;
+ncut (a ◃ ∅); ##[ napply (transitivity … H); nwhd in match Z; //; ##] #H1;
ncut (¬ a ∈ S a); ##[ napply (col2_4 … H1); ##] #H2;
ncut (a ∈ S a); ##[ napply ZSa; napply H1; ##] #H3;
-nauto;
+/2/;
nqed.
include "nat/nat.ma".
unification hint 0 ≔ ;
x ≟ caxs
(* -------------- *) ⊢
- S x ≡ nat.
+ S (uax x) ≡ nat.
naxiom h : nat → nat.
nlemma replace_char:
∀A:Ax.∀U,V.U ⊆ V → V ⊆ U → ∀a:A.a ◃ U → a ◃ V.
-#A; #U; #V; #UV; #VU; #a; #aU; nelim aU; nauto;
+#A; #U; #V; #UV; #VU; #a; #aU; nelim aU; /3/;
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; ##]
- napply (replace_char … { x | ϕ a x = O }); ##[##1,2: #x; nrewrite > (H x); nauto; ##]
+ napply (replace_char … { x | h x = O }); ##[ ##1,2: #x; ncases (Ph x); /2/; ##]
+ napply (replace_char … { x | ϕ a x = O }); ##[##1,2: #x; nrewrite > (H x); //; ##]
napply (axiom_cond … a one); ##] #H1;
-ncut (a ◃ ∅); ##[ napply (transitivity … H1); nauto; ##] #H2;
+ncut (a ◃ ∅); ##[ napply (transitivity … H1); //; ##] #H2;
nlapply (col2_4 …H2); #H3;
ncut (a ∈ 𝐂 a one); ##[
- nnormalize; ncases (Ph a); nrewrite > (H a); nauto; ##] #H4;
-nauto;
-nqed.
-
-
+ nnormalize; ncases (Ph a); nrewrite > (H a); /2/; ##] #H4;
+/2/;
+nqed.
\ No newline at end of file