{-# OPTIONS --cubical-compatible --safe #-}
module zfc where
open import Level
open import Relation.Binary
open import Relation.Nullary
open import logic
record IsZFC {n m : Level }
(ZFSet : Set n)
(_∋_ : ( A x : ZFSet ) → Set m)
(_≈_ : Rel ZFSet m)
(∅ : ZFSet)
: Set (suc (n ⊔ suc m)) where
field
choice-func : (X : ZFSet ) → {x : ZFSet } → ¬ ( x ≈ ∅ ) → ( X ∋ x ) → ZFSet
choice : (X : ZFSet ) → {A : ZFSet } → ( X∋A : X ∋ A ) → (not : ¬ ( A ≈ ∅ )) → A ∋ choice-func X not X∋A
record ZFC {n m : Level } : Set (suc (n ⊔ suc m)) where
field
ZFSet : Set n
_∋_ : ( A x : ZFSet ) → Set m
_≈_ : ( A B : ZFSet ) → Set m
∅ : ZFSet
isZFC : IsZFC ZFSet _∋_ _≈_ ∅