# HG changeset patch # User Shinji KONO # Date 1577717159 -32400 # Node ID 2169d948159b8ab91c001900377007efd0a0ee48 # Parent fc3d4bc1dc5ef073aed20c72edf3bdbdc1afda6a fix incl diff -r fc3d4bc1dc5e -r 2169d948159b OD.agda --- 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 ¬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 )) -- ZFSubset : (A x : OD ) → OD @@ -256,11 +257,11 @@ -- Def : (A : OD ) → OD -- Def A = Ord ( sup-o ( λ x → od→ord ( ZFSubset A (ord→od x )) ) ) - Ord-lemma : (a : Ordinal) (x : OD) → _⊆_ (ord→od a) (Ord a) {x} - Ord-lemma a x lt = o<-subst (c<→o< lt ) refl diso + Ord-lemma : (a : Ordinal) → ord→od a ⊆ Ord a + Ord-lemma a = record { incl = λ lt → o<-subst (c<→o< lt ) refl diso } - ⊆-trans : {a b c x : OD} → _⊆_ a b {x} → _⊆_ b c {x} → _⊆_ a c {x} - ⊆-trans a⊆b b⊆c a∋x = b⊆c (a⊆b a∋x) + ⊆-trans : {a b c x : OD} → a ⊆ b → b ⊆ c → a ⊆ c + ⊆-trans a⊆b b⊆c = record { incl = λ a∋x → incl b⊆c (incl a⊆b a∋x) } _∩_ = IsZF._∩_ isZF