Mercurial > hg > Members > kono > Proof > ZF-in-agda
diff OD.agda @ 271:2169d948159b
fix incl
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 30 Dec 2019 23:45:59 +0900 |
parents | 53744836020b |
children | 985a1af11bce |
line wrap: on
line diff
--- a/OD.agda Mon Oct 07 01:28:11 2019 +0900 +++ b/OD.agda Mon Dec 30 23:45:59 2019 +0900 @@ -36,16 +36,17 @@ id : {A : Set n} → A → A id x = x -eq-refl : { x : OD } → x == x -eq-refl {x} = record { eq→ = id ; eq← = id } +==-refl : { x : OD } → x == x +==-refl {x} = record { eq→ = id ; eq← = id } open _==_ -eq-sym : { x y : OD } → x == y → y == x -eq-sym eq = record { eq→ = eq← eq ; eq← = eq→ eq } +==-trans : { x y z : OD } → x == y → y == z → x == z +==-trans x=y y=z = record { eq→ = λ {m} t → eq→ y=z (eq→ x=y t) ; eq← = λ {m} t → eq← x=y (eq← y=z t) } -eq-trans : { x y z : OD } → x == y → y == z → x == z -eq-trans x=y y=z = record { eq→ = λ t → eq→ y=z ( eq→ x=y t) ; eq← = λ t → eq← x=y ( eq← y=z t) } +==-sym : { x y : OD } → x == y → y == x +==-sym x=y = record { eq→ = λ {m} t → eq← x=y t ; eq← = λ {m} t → eq→ x=y t } + ⇔→== : { x y : OD } → ( {z : Ordinal } → def x z ⇔ def y z) → x == y eq→ ( ⇔→== {x} {y} eq ) {z} m = proj1 eq m @@ -74,7 +75,7 @@ -- next assumption causes ∀ x ∋ ∅ . It menas only an ordinal is allowed as OD -- o<→c< : {n : Level} {x y : Ordinal } → x o< y → def (ord→od y) x -- ord→od x ≡ Ord x results the same - -- supermum as Replacement Axiom + -- supermum as Replacement Axiom ( this assumes Ordinal has some upper bound ) sup-o : ( Ordinal → Ordinal ) → Ordinal sup-o< : { ψ : Ordinal → Ordinal } → ∀ {x : Ordinal } → ψ x o< sup-o ψ -- contra-position of mimimulity of supermum required in Power Set Axiom @@ -140,10 +141,10 @@ ord→== : { x y : OD } → od→ord x ≡ od→ord y → x == y ord→== {x} {y} eq = ==-iso (lemma (od→ord x) (od→ord y) (orefl eq)) where lemma : ( ox oy : Ordinal ) → ox ≡ oy → (ord→od ox) == (ord→od oy) - lemma ox ox refl = eq-refl + lemma ox ox refl = ==-refl o≡→== : { x y : Ordinal } → x ≡ y → ord→od x == ord→od y -o≡→== {x} {.x} refl = eq-refl +o≡→== {x} {.x} refl = ==-refl o∅≡od∅ : ord→od (o∅ ) ≡ od∅ o∅≡od∅ = ==→o≡ lemma where @@ -162,7 +163,7 @@ eq← ∅0 {w} lt = lift (¬x<0 lt) ∅< : { x y : OD } → def x (od→ord y ) → ¬ ( x == od∅ ) -∅< {x} {y} d eq with eq→ (eq-trans eq (eq-sym ∅0) ) d +∅< {x} {y} d eq with eq→ (==-trans eq (==-sym ∅0) ) d ∅< {x} {y} d eq | lift () ∅6 : { x : OD } → ¬ ( x ∋ x ) -- no Russel paradox @@ -191,12 +192,6 @@ right (case1 t) = case2 t right (case2 t) = case1 t -==-trans : { x y z : OD } → x == y → y == z → x == z -==-trans x=y y=z = record { eq→ = λ {m} t → eq→ y=z (eq→ x=y t) ; eq← = λ {m} t → eq← x=y (eq← y=z t) } - -==-sym : { x y : OD } → x == y → y == x -==-sym x=y = record { eq→ = λ {m} t → eq← x=y t ; eq← = λ {m} t → eq→ x=y t } - ord≡→≡ : { x y : OD } → od→ord x ≡ od→ord y → x ≡ y ord≡→≡ eq = subst₂ (λ j k → j ≡ k ) oiso oiso ( cong ( λ k → ord→od k ) eq ) @@ -339,15 +334,21 @@ Def : (A : OD ) → OD Def A = Ord ( sup-o ( λ x → od→ord ( ZFSubset A (ord→od x )) ) ) -_⊆_ : ( A B : OD ) → ∀{ x : OD } → Set n -_⊆_ A B {x} = A ∋ x → B ∋ x +-- _⊆_ : ( A B : OD ) → ∀{ x : OD } → Set n +-- _⊆_ A B {x} = A ∋ x → B ∋ x + +record _⊆_ ( A B : OD ) : Set (suc n) where + field + incl : { x : OD } → A ∋ x → B ∋ x + +open _⊆_ infixr 220 _⊆_ -subset-lemma : {A x y : OD } → ( x ∋ y → ZFSubset A x ∋ y ) ⇔ ( _⊆_ x A {y} ) -subset-lemma {A} {x} {y} = record { - proj1 = λ z lt → proj1 (z lt) - ; proj2 = λ x⊆A lt → record { proj1 = x⊆A lt ; proj2 = lt } +subset-lemma : {A x : OD } → ( {y : OD } → x ∋ y → ZFSubset A x ∋ y ) ⇔ ( x ⊆ A ) +subset-lemma {A} {x} = record { + proj1 = λ lt → record { incl = λ x∋z → proj1 (lt x∋z) } + ; proj2 = λ x⊆A lt → record { proj1 = incl x⊆A lt ; proj2 = lt } } open import Data.Unit @@ -406,7 +407,7 @@ -- infixr 230 _∩_ _∪_ isZF : IsZF (OD ) _∋_ _==_ od∅ _,_ Union Power Select Replace infinite isZF = record { - isEquivalence = record { refl = eq-refl ; sym = eq-sym; trans = eq-trans } + isEquivalence = record { refl = ==-refl ; sym = ==-sym; trans = ==-trans } ; pair→ = pair→ ; pair← = pair← ; union→ = union→ @@ -436,14 +437,14 @@ empty : (x : OD ) → ¬ (od∅ ∋ x) empty x = ¬x<0 - o<→c< : {x y : Ordinal } {z : OD }→ x o< y → _⊆_ (Ord x) (Ord y) {z} - o<→c< lt lt1 = ordtrans lt1 lt + o<→c< : {x y : Ordinal } → x o< y → (Ord x) ⊆ (Ord y) + o<→c< lt = record { incl = λ z → ordtrans z lt } - ⊆→o< : {x y : Ordinal } → (∀ (z : OD) → _⊆_ (Ord x) (Ord y) {z} ) → x o< osuc y + ⊆→o< : {x y : Ordinal } → (Ord x) ⊆ (Ord y) → x o< osuc y ⊆→o< {x} {y} lt with trio< x y ⊆→o< {x} {y} lt | tri< a ¬b ¬c = ordtrans a <-osuc ⊆→o< {x} {y} lt | tri≈ ¬a b ¬c = subst ( λ k → k o< osuc y) (sym b) <-osuc - ⊆→o< {x} {y} lt | tri> ¬a ¬b c with lt (ord→od y) (o<-subst c (sym diso) refl ) + ⊆→o< {x} {y} lt | tri> ¬a ¬b c with (incl lt) (o<-subst c (sym diso) refl ) ... | ttt = ⊥-elim ( o<¬≡ refl (o<-subst ttt diso refl )) union→ : (X z u : OD) → (X ∋ u) ∧ (u ∋ z) → Union X ∋ z @@ -551,15 +552,15 @@ lemma6 : od→ord t ≡ od→ord (A ∩ ord→od (od→ord t)) lemma6 = cong ( λ k → od→ord k ) (==→o≡ (subst (λ k → t == (A ∩ k)) (sym oiso) ( ∩-≡ t→A ))) - ord⊆power : (a : Ordinal) → (x : OD) → _⊆_ (Ord (osuc a)) (Power (Ord a)) {x} - ord⊆power a x lt = power← (Ord a) x lemma where - lemma : {y : OD} → x ∋ y → Ord a ∋ y - lemma y<x with osuc-≡< lt - lemma y<x | case1 refl = c<→o< y<x - lemma y<x | case2 x<a = ordtrans (c<→o< y<x) x<a + ord⊆power : (a : Ordinal) → (Ord (osuc a)) ⊆ (Power (Ord a)) + ord⊆power a = record { incl = λ {x} lt → power← (Ord a) x (lemma lt) } where + lemma : {x y : OD} → od→ord x o< osuc a → x ∋ y → Ord a ∋ y + lemma lt y<x with osuc-≡< lt + lemma lt y<x | case1 refl = c<→o< y<x + lemma lt y<x | case2 x<a = ordtrans (c<→o< y<x) x<a - -- continuum-hyphotheis : (a : Ordinal) → (x : OD) → _⊆_ (Power (Ord a)) (Ord (osuc a)) {x} - -- continuum-hyphotheis a x = ? + -- continuum-hyphotheis : (a : Ordinal) → Power (Ord a) ⊆ Ord (osuc a) + -- continuum-hyphotheis a = ? -- assuming axiom of choice regularity : (x : OD) (not : ¬ (x == od∅)) → @@ -620,12 +621,12 @@ lemma-ord : ( ox : Ordinal ) → ψ ox lemma-ord ox = TransFinite {ψ} induction ox where ∋-p : (A x : OD ) → Dec ( A ∋ x ) - ∋-p A x with p∨¬p (Lift (suc n) ( A ∋ x )) + ∋-p A x with p∨¬p (Lift (suc n) ( A ∋ x )) -- LEM ∋-p A x | case1 (lift t) = yes t ∋-p A x | case2 t = no (λ x → t (lift x )) ∀-imply-or : {A : Ordinal → Set n } {B : Set (suc n) } → ((x : Ordinal ) → A x ∨ B) → ((x : Ordinal ) → A x) ∨ B - ∀-imply-or {A} {B} ∀AB with p∨¬p (Lift ( suc n ) ((x : Ordinal ) → A x)) + ∀-imply-or {A} {B} ∀AB with p∨¬p (Lift ( suc n ) ((x : Ordinal ) → A x)) -- LEM ∀-imply-or {A} {B} ∀AB | case1 (lift t) = case1 t ∀-imply-or {A} {B} ∀AB | case2 x = case2 (lemma (λ not → x (lift not ))) where lemma : ¬ ((x : Ordinal ) → A x) → B @@ -643,8 +644,7 @@ lemma : ((y : Ordinals.ord O) → (O Ordinals.o< y) x → def X y → ⊥) ∨ choiced X lemma = ∀-imply-or lemma1 have_to_find : choiced X - have_to_find with lemma-ord (od→ord X ) - have_to_find | t = dont-or t ¬¬X∋x where + have_to_find = dont-or (lemma-ord (od→ord X )) ¬¬X∋x where ¬¬X∋x : ¬ ((x : Ordinal) → x o< (od→ord X) → def X x → ⊥) ¬¬X∋x nn = not record { eq→ = λ {x} lt → ⊥-elim (nn x (def→o< lt) lt)