# HG changeset patch # User Shinji KONO # Date 1557971734 -32400 # Node ID 627a79e6111672c69e3ac20fddea683ef0db109d # Parent 6a668c6086a5639d01db82586553fc3be6d0391b fix diff -r 6a668c6086a5 -r 627a79e61116 constructible-set.agda --- a/constructible-set.agda Tue May 14 13:52:19 2019 +0900 +++ b/constructible-set.agda Thu May 16 10:55:34 2019 +0900 @@ -122,55 +122,37 @@ -- X' = { x ∈ X | ψ x } ∪ X , Mα = ( ∪ (β < α) Mβ ) ' -data Constructible ( α : Ordinal ) : Set (suc n) where - fsub : ( ψ : Ordinal → Set n ) → Constructible α - xself : Ordinal → Constructible α - record ConstructibleSet : Set (suc n) where field α : Ordinal - constructible : Constructible α + constructible : Ordinal → Set n open ConstructibleSet -data _c∋_ : {α α' : Ordinal } → - Constructible α → Constructible α' → Set n where - c> : {α α' : Ordinal } - (ta : Constructible α ) ( tx : Constructible α' ) → α' o< α → ta c∋ tx - xself-fsub : {α : Ordinal } - (ta : Ordinal ) ( ψ : Ordinal → Set n ) → _c∋_ {α} {α} (xself ta ) ( fsub ψ) - fsub-fsub : {α : Ordinal } - ( ψ : Ordinal → Set n ) ( ψ₁ : Ordinal → Set n ) → - ( ∀ ( x : Ordinal ) → ψ x → ψ₁ x ) → _c∋_ {α} {α} ( fsub ψ ) ( fsub ψ₁) - -_∋_ : (ConstructibleSet ) → (ConstructibleSet ) → Set n -a ∋ x = constructible a c∋ constructible x +_∋_ : (ConstructibleSet ) → (ConstructibleSet ) → Set n +a ∋ x = (α a ≡ α x) ∨ ( α x o< α a ) -- transitiveness : (a b c : ConstructibleSet ) → a ∋ b → b ∋ c → a ∋ c -- transitiveness a b c a∋b b∋c with constructible a c∋ constructible b | constructible b c∋ constructible c -- ... | t1 | t2 = {!!} -data _c≈_ : {α α' : Ordinal} → - Constructible α → Constructible α' → Set n where - crefl : {α : Ordinal } → _c≈_ {α} {α} (xself α ) (xself α ) - feq : {lv : Nat} {α : Ordinal } - → ( ψ : Ordinal → Set n ) ( ψ₁ : Ordinal → Set n ) - → (∀ ( x : Ordinal ) → ψ x ⇔ ψ₁ x ) → _c≈_ {α} {α} ( fsub ψ ) ( fsub ψ₁) - -_≈_ : (ConstructibleSet ) → (ConstructibleSet ) → Set n -a ≈ x = constructible a c≈ constructible x - -ConstructibleSet→ZF : ZF {suc n} +ConstructibleSet→ZF : ZF {suc n} {suc n} ConstructibleSet→ZF = record { ZFSet = ConstructibleSet - ; _∋_ = _∋_ - ; _≈_ = _≈_ - ; ∅ = record { α = record {lv = Zero ; ord = Φ } ; constructible = xself ( record {lv = Zero ; ord = Φ }) } - ; _×_ = {!!} - ; Union = {!!} + ; _∋_ = λ a b → Lift (suc n) ( a ∋ b ) + ; _≈_ = _≡_ + ; ∅ = record {α = record { lv = Zero ; ord = Φ } ; constructible = λ x → Lift n ⊥ } + ; _,_ = _,_ + ; Union = Union ; Power = {!!} - ; Select = {!!} + ; Select = Select ; Replace = {!!} ; infinite = {!!} ; isZF = {!!} - } + } where + Select : (X : ConstructibleSet) → (ConstructibleSet → Set (suc n)) → ConstructibleSet + Select = {!!} + _,_ : ConstructibleSet → ConstructibleSet → ConstructibleSet + a , b = Select {!!} {!!} + Union : ConstructibleSet → ConstructibleSet + Union a = {!!} diff -r 6a668c6086a5 -r 627a79e61116 zf.agda --- a/zf.agda Tue May 14 13:52:19 2019 +0900 +++ b/zf.agda Thu May 16 10:55:34 2019 +0900 @@ -44,17 +44,17 @@ (_∋_ : ( A x : ZFSet ) → Set m) (_≈_ : Rel ZFSet m) (∅ : ZFSet) - (_×_ : ( A B : ZFSet ) → ZFSet) + (_,_ : ( A B : ZFSet ) → ZFSet) (Union : ( A : ZFSet ) → ZFSet) (Power : ( A : ZFSet ) → ZFSet) - (Select : ( ZFSet → Set m ) → ZFSet ) - (Replace : ( ZFSet → ZFSet ) → ZFSet ) + (Select : ZFSet → ( ZFSet → Set m ) → ZFSet ) + (Replace : ZFSet → ( ZFSet → ZFSet ) → ZFSet ) (infinite : ZFSet) : Set (suc (n ⊔ m)) where field isEquivalence : {A B : ZFSet} → IsEquivalence {n} {m} {ZFSet} _≈_ -- ∀ x ∀ y ∃ z(x ∈ z ∧ y ∈ z) - pair : ( A B : ZFSet ) → ( (A × B) ∋ A ) ∧ ( (A × B) ∋ B ) + pair : ( A B : ZFSet ) → ( (A , B) ∋ A ) ∧ ( (A , B) ∋ B ) -- ∀ X ∃ A∀ t(t ∈ A ⇔ ∃ x ∈ X(t ∈ x)) union→ : ( X x y : ZFSet ) → X ∋ x → x ∋ y → Union X ∋ y union← : ( X x y : ZFSet ) → Union X ∋ y → X ∋ x → x ∋ y @@ -63,9 +63,9 @@ _⊆_ : ( A B : ZFSet ) → ∀{ x : ZFSet } → ∀{ A∋x : Set m } → Set m _⊆_ A B {x} {A∋x} = B ∋ x _∩_ : ( A B : ZFSet ) → ZFSet - A ∩ B = Select ( λ x → ( A ∋ x ) ∧ ( B ∋ x ) ) + A ∩ B = Select (A , B) ( λ x → ( A ∋ x ) ∧ ( B ∋ x ) ) _∪_ : ( A B : ZFSet ) → ZFSet - A ∪ B = Select ( λ x → ( A ∋ x ) ∨ ( B ∋ x ) ) + A ∪ B = Select (A , B) ( λ x → ( A ∋ x ) ∨ ( B ∋ x ) ) infixr 200 _∈_ infixr 230 _∩_ _∪_ infixr 220 _⊆_ @@ -81,13 +81,13 @@ regularity : ∀( x : ZFSet ) → ¬ (x ≈ ∅) → ( minimul x ∈ x ∧ ( minimul x ∩ x ≈ ∅ ) ) -- infinity : ∃ A ( ∅ ∈ A ∧ ∀ x ∈ A ( x ∪ { x } ∈ A ) ) infinity∅ : ∅ ∈ infinite - infinity : ∀( x : ZFSet ) → x ∈ infinite → ( x ∪ Select ( λ y → x ≈ y )) ∈ infinite - selection : { ψ : ZFSet → Set m } → ∀ ( y : ZFSet ) → ( y ∈ Select ψ ) → ψ y + infinity : ∀( X x : ZFSet ) → x ∈ infinite → ( x ∪ Select X ( λ y → x ≈ y )) ∈ infinite + selection : { ψ : ZFSet → Set m } → ∀ ( X y : ZFSet ) → ( y ∈ Select X ψ ) → ψ y -- replacement : ∀ x ∀ y ∀ z ( ( ψ ( x , y ) ∧ ψ ( x , z ) ) → y = z ) → ∀ X ∃ A ∀ y ( y ∈ A ↔ ∃ x ∈ X ψ ( x , y ) ) - replacement : {ψ : ZFSet → ZFSet} → ∀ ( x : ZFSet ) → ( ψ x ∈ Replace ψ ) + replacement : {ψ : ZFSet → ZFSet} → ∀ ( X x : ZFSet ) → ( ψ x ∈ Replace X ψ ) record ZF {n m : Level } : Set (suc (n ⊔ m)) where - infixr 210 _×_ + infixr 210 _,_ infixl 200 _∋_ infixr 220 _≈_ field @@ -96,13 +96,13 @@ _≈_ : ( A B : ZFSet ) → Set m -- ZF Set constructor ∅ : ZFSet - _×_ : ( A B : ZFSet ) → ZFSet + _,_ : ( A B : ZFSet ) → ZFSet Union : ( A : ZFSet ) → ZFSet Power : ( A : ZFSet ) → ZFSet - Select : ( ZFSet → Set m ) → ZFSet - Replace : ( ZFSet → ZFSet ) → ZFSet + Select : ZFSet → ( ZFSet → Set m ) → ZFSet + Replace : ZFSet → ( ZFSet → ZFSet ) → ZFSet infinite : ZFSet - isZF : IsZF ZFSet _∋_ _≈_ ∅ _×_ Union Power Select Replace infinite + isZF : IsZF ZFSet _∋_ _≈_ ∅ _,_ Union Power Select Replace infinite module zf-exapmle {n m : Level } ( zf : ZF {m} {n} ) where