Home
module foundations.axiom-of-choice where
Imports
open import foundations.universe
open import foundations.identity-type
open import foundations.proposition
open import foundations.set
open import foundations.sigma-type
open import foundations.propositional-truncation
private variable
ℓ ℓ′ ℓ″ : Level
module _
(X : Type ℓ) (isSetX : isSet X)
(A : X → Type ℓ′) (isSetA : ∀ x → isSet (A x))
(P : (x : X) → A x → Type ℓ″) (isPropP : ∀ x a → isProp (P x a))
(trunc : PropTrunc) where
open PropTrunc trunc
AC : Type (ℓ ⊔ ℓ′ ⊔ ℓ″)
AC =
((x : X) → ∥ (Σ[ a ∈ A x ] P x a ) ∥)
→ ∥ (Σ[ f ∈ ((x : X) → A x) ] ((x : X) → P x (f x))) ∥
module _
(X : Type ℓ) (isSetX : isSet X)
(Y : X → Type ℓ′) (isSetY : ∀ x → isSet (Y x))
(trunc : PropTrunc) where
open PropTrunc trunc
AC′ : Type (ℓ ⊔ ℓ′)
AC′ = ((x : X) → ∥ Y x ∥) → ∥ ((x : X) → Y x) ∥
globalChoice→AC′ : (∀ {ℓ} → {A : Type ℓ} → ∥ A ∥ → A) → AC′
globalChoice→AC′ gc f = ∣ (λ x → gc (f x)) ∣