Tom de Jong, 22 & 23 July 2021 (following Andrew Swan)
After a discussion with Dominik Kirst on propositional resizing at FSCD 2021,
MartΓn EscardΓ³ asked the following question on HoTT Zulip [1] and nLab:
By an inductive well-ordering I mean a well ordering in the sense of the HoTT
book (accessible, extensional, transitive relation). If we assume that every
set can be inductively well ordered, can we conclude that excluded middle
holds?
Andrew Swan quickly answered this question positively, presenting two proofs
(based on the same idea). We formalize both proofs here.
In turns out that transitivity and accessibility are not needed, i.e. Swan
proves the much stronger result:
If every set has some irreflexive, extensional order, then excluded middle
follows.
In fact, we don't need full extensionality (as remarked by Dominik Kirst): it
suffices that we have extensionality for minimal elements.
It follows that the inductive well-ordering principle implies, and hence is
equivalent, to the axiom of choice. This is because we can reuse the classical
proof: first you get that inductive well-ordering implies classical well-ordering
(every non-empty subset has a minimal element), using excluded middle via the
argument above. Then we use the classical proof that (any kind of) well-ordering
implies choice.
[1] tinyurl.com/HoTT-Zulip-well-ordering
\begin{code}
{-# OPTIONS --safe --without-K #-}
open import MLTT.Spartan
open import UF.Base hiding (_β_)
open import UF.DiscreteAndSeparated
open import UF.Equiv
open import UF.EquivalenceExamples
open import UF.ClassicalLogic
open import UF.FunExt
open import UF.PropTrunc
open import UF.Sets
open import UF.Sets-Properties
open import UF.SubtypeClassifier
open import UF.SubtypeClassifier-Properties
open import UF.Subsingletons
open import UF.Subsingletons-FunExt
module Ordinals.WellOrderingTaboo
(fe : Fun-Ext)
(pe : Prop-Ext)
where
module _
{X : π€ Μ } (_βΊ_ : X β X β π£ Μ )
where
extensionality-for-minimal-elements : π€ β π£ Μ
extensionality-for-minimal-elements = (x y : X)
β ((a : X) β Β¬ (a βΊ x))
β ((a : X) β Β¬ (a βΊ y))
β ((a : X) β a βΊ x β a βΊ y) β x οΌ y
\end{code}
Added 13 March 2022.
MartΓn EscadΓ³ observed that extensionality for minimal elements is logically
equivalent to the arguably simpler condition that there is at most one minimal
element.
This observation was implicitly used in some of the proofs below. Since MartΓn's
observation and adding a proof of the equivalence, the uses have been made
explicit.
\begin{code}
having-at-most-one-minimal-element : π€ β π£ Μ
having-at-most-one-minimal-element = is-prop (Ξ£ x κ X , ((y : X) β Β¬ (y βΊ x)))
extensionality-for-minimal-elts-if-at-most-one-minimal-elt :
having-at-most-one-minimal-element β extensionality-for-minimal-elements
extensionality-for-minimal-elts-if-at-most-one-minimal-elt
at-most-one-min x y x-min y-min x-y-ext = goal
where
claim : (x , x-min οΌ y , y-min)
claim = at-most-one-min (x , x-min) (y , y-min)
goal : x οΌ y
goal = ap prβ claim
at-most-one-minimal-elt-if-extensionality-for-minimal-elts :
extensionality-for-minimal-elements β having-at-most-one-minimal-element
at-most-one-minimal-elt-if-extensionality-for-minimal-elts
ext (x , x-min) (y , y-min) = goal
where
claim : (a : X) β (a βΊ x) β (a βΊ y)
claim a = (I , II)
where
I : a βΊ x β a βΊ y
I p = π-elim (x-min a p)
II : a βΊ y β a βΊ x
II q = π-elim (y-min a q)
goal : (x , x-min) οΌ (y , y-min)
goal = to-subtype-οΌ I II
where
I : (b : X) β is-prop ((a : X) β Β¬ (a βΊ b))
I b = Ξ -is-prop fe (Ξ» a β negations-are-props fe)
II : x οΌ y
II = ext x y x-min y-min claim
\end{code}
We first present Andrew Swan's second proof, which is a simplification of his
first proof that does not need exact quotients (we use propositional truncations
to construct quotients).
Because the main results *do* use propositional truncations to have the
existential quantifier β available, we only present those later, in order to
emphasize that Swan's construction does not need propositional truncations.
We construct a family of sets Sβ indexed by propositions P whose double negation
holds such that if Sβ can be equipped with an irreflexive and
minimally-extensional order, then the corresponding proposition P must hold.
\begin{code}
module swan
(P : π€ Μ )
(P-is-prop : is-prop P)
(P-is-not-false : ¬¬ P)
where
S : π€ βΊ Μ
S = Ξ£ Q κ π€ Μ , is-prop Q à ¬¬ (Q οΌ P)
S-is-set : is-set S
S-is-set = equiv-to-set (β-sym Ξ£-assoc) S'-is-set
where
S' : π€ βΊ Μ
S' = Ξ£ Q κ Ξ© π€ , ¬¬ (Q holds οΌ P)
S'-is-set : is-set S'
S'-is-set = subtypes-of-sets-are-sets' prβ (prβ-lc (negations-are-props fe))
(Ξ©-is-set fe pe)
all-elements-are-¬¬-equal : (x y : S) β ¬¬ (x οΌ y)
all-elements-are-¬¬-equal (Q , i , t) (Q' , i' , t') = ¬¬-kleisli γ t
where
Ξ³ : Q οΌ P β ¬¬ ((Q , i , t) οΌ (Q' , i' , t'))
γ refl = ¬¬-functor h t'
where
h : Q' οΌ P β (P , i , t) οΌ (Q' , i' , t')
h refl = to-subtype-οΌ
(Ξ» _ β Γ-is-prop
(being-prop-is-prop fe)
(negations-are-props fe))
refl
module _
(_βΊ_ : S β S β π£ Μ )
(βΊ-irreflexive : (x : S) β Β¬ (x βΊ x))
(βΊ-minimally-extensional : extensionality-for-minimal-elements _βΊ_)
where
all-elements-are-minimal : (x y : S) β Β¬ (x βΊ y)
all-elements-are-minimal x y = contrapositive γ (all-elements-are-¬¬-equal x y)
where
Ξ³ : x βΊ y β Β¬ (x οΌ y)
Ξ³ l refl = βΊ-irreflexive x l
all-elements-are-equal : (x y : S) β x οΌ y
all-elements-are-equal x y = goal
where
x-min : (a : S) β Β¬ (a βΊ x)
x-min a = all-elements-are-minimal a x
y-min : (a : S) β Β¬ (a βΊ y)
y-min a = all-elements-are-minimal a y
claim : (x , x-min) οΌ (y , y-min)
claim = at-most-one-minimal-elt-if-extensionality-for-minimal-elts
_βΊ_ βΊ-minimally-extensional (x , x-min) (y , y-min)
goal : x οΌ y
goal = ap prβ claim
P-must-hold : P
P-must-hold = Idtofun Ξ³ β
where
Ξ³ : π οΌ P
Ξ³ = ap prβ (all-elements-are-equal π-in-S P-in-S)
where
P-in-S : S
P-in-S = (P , P-is-prop , ¬¬-intro refl)
π-in-S : S
π-in-S = (π , π-is-prop , h)
where
h : ¬¬ (π οΌ P)
h = ¬¬-functor
(Ξ» p β pe π-is-prop P-is-prop (Ξ» _ β p) (Ξ» _ β β))
P-is-not-false
\end{code}
This construction allows us to prove the results announced above.
We first need some definitions.
\begin{code}
module InductiveWellOrder
(pt : propositional-truncations-exist)
where
open PropositionalTruncation pt
open import Ordinals.Notions
irreflexive-minimally-extensional-order-on-every-set : (π€ π£ : Universe)
β (π€ β π£) βΊ Μ
irreflexive-minimally-extensional-order-on-every-set π€ π£ =
(X : π€ Μ ) β is-set X β β _βΊ_ κ (X β X β π£ Μ ) , ((x : X) β Β¬ (x βΊ x))
Γ (extensionality-for-minimal-elements _βΊ_)
irreflexive-extensional-order-on-every-set : (π€ π£ : Universe) β (π€ β π£) βΊ Μ
irreflexive-extensional-order-on-every-set π€ π£ =
(X : π€ Μ ) β is-set X β β _βΊ_ κ (X β X β π£ Μ ) , ((x : X) β Β¬ (x βΊ x))
Γ (is-extensional _βΊ_)
inductive-well-order-on-every-set : (π€ π£ : Universe) β (π€ β π£) βΊ Μ
inductive-well-order-on-every-set π€ π£ =
(X : π€ Μ ) β is-set X β β _βΊ_ κ (X β X β π£ Μ ), (is-well-order _βΊ_)
\end{code}
The following are the main theorems, which follow directly from Swan's results
above.
\begin{code}
irreflexive-minimally-extensional-order-on-every-set-gives-excluded-middle :
{π€ π£ : Universe} β irreflexive-minimally-extensional-order-on-every-set (π€ βΊ) π£
β excluded-middle π€
irreflexive-minimally-extensional-order-on-every-set-gives-excluded-middle
{π€} {π£} IMEO = DNE-gives-EM fe Ξ³
where
Ξ³ : DNE π€
Ξ³ P P-is-prop P-is-not-false = β₯β₯-rec P-is-prop h t
where
open swan P P-is-prop P-is-not-false
t : β _βΊ_ κ (S β S β π£ Μ ), ((x : S) β Β¬ (x βΊ x))
Γ (extensionality-for-minimal-elements _βΊ_)
t = IMEO S S-is-set
h : (Ξ£ _βΊ_ κ (S β S β π£ Μ ), ((x : S) β Β¬ (x βΊ x))
Γ (extensionality-for-minimal-elements _βΊ_))
β P
h (_βΊ_ , βΊ-irr , βΊ-min-ext) = P-must-hold _βΊ_ βΊ-irr βΊ-min-ext
irreflexive-extensional-order-on-every-set-gives-excluded-middle :
{π€ π£ : Universe} β irreflexive-extensional-order-on-every-set (π€ βΊ) π£
β excluded-middle π€
irreflexive-extensional-order-on-every-set-gives-excluded-middle {π€} {π£} IEO =
irreflexive-minimally-extensional-order-on-every-set-gives-excluded-middle Ξ³
where
Ξ³ : irreflexive-minimally-extensional-order-on-every-set (π€ βΊ) π£
Ξ³ X X-is-set = β₯β₯-functor f (IEO X X-is-set)
where
f : (Ξ£ _βΊ_ κ (X β X β π£ Μ ), ((x : X) β Β¬ (x βΊ x)) Γ (is-extensional _βΊ_))
β (Ξ£ _βΊ_ κ (X β X β π£ Μ ), ((x : X) β Β¬ (x βΊ x))
Γ (extensionality-for-minimal-elements _βΊ_))
f (_βΊ_ , βΊ-irr , βΊ-ext) = _βΊ_ , βΊ-irr , βΊ-min-ext
where
βΊ-min-ext : extensionality-for-minimal-elements _βΊ_
βΊ-min-ext x y _ _ e = extensional-gives-extensional' _βΊ_ βΊ-ext x y e
inductive-well-order-on-every-set-gives-excluded-middle :
{π€ π£ : Universe} β inductive-well-order-on-every-set (π€ βΊ) π£
β excluded-middle π€
inductive-well-order-on-every-set-gives-excluded-middle {π€} {π£} IWO =
irreflexive-extensional-order-on-every-set-gives-excluded-middle Ξ³
where
Ξ³ : irreflexive-extensional-order-on-every-set (π€ βΊ) π£
Ξ³ X X-is-set = β₯β₯-functor f (IWO X X-is-set)
where
f : (Ξ£ _βΊ_ κ (X β X β π£ Μ ), (is-well-order _βΊ_))
β (Ξ£ _βΊ_ κ (X β X β π£ Μ ), ((x : X) β Β¬ (x βΊ x)) Γ (is-extensional _βΊ_))
f (_βΊ_ , iwo) = (_βΊ_ , βΊ-irr , extensionality _βΊ_ iwo)
where
βΊ-irr : (x : X) β Β¬ (x βΊ x)
βΊ-irr x = irreflexive _βΊ_ x (well-foundedness _βΊ_ iwo x)
\end{code}
For comparison, we include Andrew Swan's first construction of the family of
sets, which could also be used to derive the above results. This construction
uses quotients, which we constuct using propositional truncations.
\begin{code}
module swan'
(pt : propositional-truncations-exist)
(P : π€ Μ )
(P-is-prop : is-prop P)
(P-is-not-false : ¬¬ P)
where
open PropositionalTruncation pt
open import MLTT.Two-Properties
open import Quotient.Type
open import Quotient.Large pt fe pe
open general-set-quotients-exist large-set-quotients
_β_ : π β π β π€ Μ
x β y = (x οΌ y) β¨ P
β-is-prop-valued : is-prop-valued _β_
β-is-prop-valued x y = β¨-is-prop
β-is-reflexive : reflexive _β_
β-is-reflexive x = β£ inl refl β£
β-is-symmetric : symmetric _β_
β-is-symmetric x y = β₯β₯-functor Ξ³
where
Ξ³ : (x οΌ y) + P β (y οΌ x) + P
Ξ³ (inl e) = inl (e β»ΒΉ)
Ξ³ (inr p) = inr p
β-is-transitive : transitive _β_
β-is-transitive x y z = β₯β₯-rec (Ξ -is-prop fe (Ξ» _ β β-is-prop-valued x z)) Ξ³
where
Ξ³ : (x οΌ y) + P β y β z β x β z
Ξ³ (inl eβ) = β₯β₯-functor Ο
where
Ο : (y οΌ z) + P β (x οΌ z) + P
Ο (inl eβ) = inl (eβ β eβ)
Ο (inr p) = inr p
Ξ³ (inr p) _ = β£ inr p β£
β : EqRel π
β = (_β_ , β-is-prop-valued , β-is-reflexive , β-is-symmetric , β-is-transitive)
S : π€ βΊ Μ
S = π / β
module _
(_βΊ_ : S β S β π£ Μ )
(βΊ-minimally-extensional : extensionality-for-minimal-elements _βΊ_)
(βΊ-irreflexive : (x : S) β Β¬ (x βΊ x))
where
S-is-set : is-set S
S-is-set = /-is-set β
quotient-lemma : (x : S) β (x οΌ Ξ·/ β β) β¨ (x οΌ Ξ·/ β β)
quotient-lemma x = β₯β₯-functor Ξ³ (Ξ·/-is-surjection β pt x)
where
Ξ³ : (Ξ£ i κ π , Ξ·/ β i οΌ x)
β (x οΌ Ξ·/ β β) + (x οΌ Ξ·/ β β)
Ξ³ (β , e) = inl (e β»ΒΉ)
Ξ³ (β , e) = inr (e β»ΒΉ)
Ξ·β-minimal : (x : S) β Β¬ (x βΊ Ξ·/ β β)
Ξ·β-minimal x h = β₯β₯-rec π-is-prop Ξ³ (quotient-lemma x)
where
Ξ³ : (x οΌ Ξ·/ β β) + (x οΌ Ξ·/ β β) β π
Ξ³ (inl refl) = βΊ-irreflexive (Ξ·/ β β) h
Ξ³ (inr refl) = P-is-not-false Ο
where
Ο : Β¬ P
Ο p = βΊ-irreflexive (Ξ·/ β β) (transport (_βΊ (Ξ·/ β β)) claim h)
where
claim : Ξ·/ β β οΌ Ξ·/ β β
claim = Ξ·/-identifies-related-points β β£ inr p β£
Ξ·β-minimal : (x : S) β Β¬ (x βΊ Ξ·/ β β)
Ξ·β-minimal x h = β₯β₯-rec π-is-prop Ξ³ (quotient-lemma x)
where
Ξ³ : (x οΌ Ξ·/ β β) + (x οΌ Ξ·/ β β) β π
Ξ³ (inr refl) = βΊ-irreflexive (Ξ·/ β β) h
Ξ³ (inl refl) = P-is-not-false Ο
where
Ο : Β¬ P
Ο p = βΊ-irreflexive (Ξ·/ β β) (transport (_βΊ (Ξ·/ β β)) claim h)
where
claim : Ξ·/ β β οΌ Ξ·/ β β
claim = Ξ·/-identifies-related-points β β£ inr p β£
β-identifies-β-and-β : Ξ·/ β β οΌ Ξ·/ β β
β-identifies-β-and-β = goal
where
claim : (Ξ·/ β β , Ξ·β-minimal) οΌ (Ξ·/ β β , Ξ·β-minimal)
claim = at-most-one-minimal-elt-if-extensionality-for-minimal-elts
_βΊ_ βΊ-minimally-extensional (Ξ·/ β β , Ξ·β-minimal) (Ξ·/ β β , Ξ·β-minimal)
goal : Ξ·/ β β οΌ Ξ·/ β β
goal = ap prβ claim
P-must-hold : P
P-must-hold =
β₯β₯-rec P-is-prop Ξ³ (large-effective-set-quotients β β-identifies-β-and-β)
where
Ξ³ : (β οΌ β) + P β P
Ξ³ (inl e) = π-elim (zero-is-not-one e)
Ξ³ (inr p) = p
\end{code}
This concludes the formalization of Andrew Swan's proofs.
Next, we use the above argument to show that inductive well-ordering principle
implies the axiom of choice. This is because we can reuse the classical proof:
first you get the inductive well-ordering implies classical well-ordering (every
non-empty subset has a minimal element), using excluded middle via the argument
above. Then we use the classical proof that (any kind of) well-ordering implies
choice.
We start by defining classical well orders.
\begin{code}
module ClassicalWellOrder
(pt : propositional-truncations-exist)
where
open PropositionalTruncation pt
module _
{X : π€ Μ }
(_βΊ_ : X β X β π£ Μ )
where
open import Ordinals.Notions _βΊ_
is-uniquely-trichotomous : π€ β π£ Μ
is-uniquely-trichotomous =
(x y : X) β is-singleton ((x βΊ y) + (x οΌ y) + (y βΊ x))
inhabited-has-minimal : (π€ β π£) βΊ Μ
inhabited-has-minimal = (A : X β (π€ β π£) Μ )
β ((x : X) β is-prop (A x))
β β x κ X , A x
β Ξ£ x κ X , A x Γ ((y : X) β A y β Β¬ (y βΊ x))
\end{code}
The definition inhabtited-has-minimal deserves two remarks:
(1) One may have expected β rather than Ξ£ in the conclusion, but in the presence
of trichotomy (which is an axiom of a classical well-order) the type
Ξ£ x κ X , A x Γ ((y : X) β A y β Β¬ (y βΊ x))
is a proposition, so there is no need to use β rather than Ξ£.
This result is minimal-is-prop below.
(2) We would like the above to express that every inhabited subset has a
minimal element, but in the absence of propositional resizing, this is tricky,
because it would require having an axiom βschemeβ consisting of a definition
referring to families (A : X β π₯ Μ ) for each universe level π₯.
We don't wish to assume propsitional resizing here or have axiom schemes, so we
make the choice to use the universe π€ β π£. Recall that X : π€ and that _βΊ_ has
values in π£.
\begin{code}
minimal-is-prop : is-trichotomous-order
β (A : X β (π€ β π£) Μ )
β ((x : X) β is-prop (A x))
β is-prop (Ξ£ x κ X , A x Γ ((y : X) β A y β Β¬ (y βΊ x)))
minimal-is-prop trich A A-is-prop-valued (x , a , f) (x' , a' , f') =
to-subtype-οΌ i q
where
i : (x : X) β is-prop (A x Γ ((y : X) β A y β Β¬ (y βΊ x)))
i x = Γ-is-prop (A-is-prop-valued x) (Ξ β-is-prop fe (Ξ» x a l β π-is-prop))
q : x οΌ x'
q = ΞΊ (trich x x')
where
ΞΊ : (x βΊ x') + (x οΌ x') + (x' βΊ x) β x οΌ x'
ΞΊ (inl k) = π-elim (f' x a k)
ΞΊ (inr (inl p)) = p
ΞΊ (inr (inr l)) = π-elim (f x' a' l)
is-classical-well-order : (π€ β π£) βΊ Μ
is-classical-well-order = is-transitive
Γ is-uniquely-trichotomous
Γ inhabited-has-minimal
classical-well-orders-are-uniquely-trichotomous
: is-classical-well-order β is-uniquely-trichotomous
classical-well-orders-are-uniquely-trichotomous = prβ β prβ
\end{code}
Assuming excluded middle (for π€ β π£), we show
_βΊ_ is a classical well-order β _βΊ_ is an inductive well-order.
A remark on well-order-gives-minimal (see below) is in order.
It may seem that it repeats nonempty-has-minimal in OrdinalNotions.lagda, but
nonempty-has-minimal uses ¬¬ and excluded middle in βeveryβ universe to
construct propositional truncations, and β in particular, but we just assume
propositional truncations and when we assume excluded middle, we only do so
for specific universes.
\begin{code}
module _
(em : excluded-middle (π€ β π£))
where
open import MLTT.Plus-Properties
well-order-gives-minimal : is-well-order
β inhabited-has-minimal
well-order-gives-minimal iwo A A-is-prop-valued A-is-inhabited = Ξ³
where
B : π€ β π£ Μ
B = Ξ£ x κ X , A x Γ ((y : X) β A y β Β¬ (y βΊ x))
B-is-prop : is-prop B
B-is-prop = minimal-is-prop (trichotomy fe em iwo) A A-is-prop-valued
δ : ¬¬ B
Ξ΄ f = β₯β₯-rec π-is-prop A-is-empty A-is-inhabited
where
Ο : (x : X) β ((y : X) β y βΊ x β Β¬ A y) β Β¬ A x
Ο x h a = β₯β₯-rec π-is-prop x-is-minimal claim
where
lemma : Β¬ ((y : X) β A y β Β¬ (y βΊ x))
lemma g = f (x , a , g)
x-is-minimal : Β¬ (Ξ£ (y , _) κ Ξ£ A , y βΊ x)
x-is-minimal ((y , a') , k) = h y k a'
claim : β Ο κ Ξ£ A , prβ Ο βΊ x
claim = not-Ξ -not-implies-β pt em lemma'
where
lemma' : Β¬ ((Ο : Ξ£ A) β Β¬ (prβ Ο βΊ x))
lemma' = contrapositive (Ξ» g' y p' β g' (y , p')) lemma
A-is-empty : is-empty (Ξ£ A)
A-is-empty (x , p) = A-is-false x p
where
A-is-false : (x : X) β Β¬ A x
A-is-false = transfinite-induction (well-foundedness iwo) (Ξ» x β Β¬ A x) Ο
Ξ³ : B
Ξ³ = EM-gives-DNE em B B-is-prop Ξ΄
inductive-well-order-is-classical : is-well-order
β is-classical-well-order
inductive-well-order-is-classical iwo =
(transitivity iwo , uniq-trich , well-order-gives-minimal iwo)
where
trich-prop : (x y : X) β is-prop ((x βΊ y) + (x οΌ y) + (y βΊ x))
trich-prop x y = +-is-prop (prop-valuedness iwo x y)
(+-is-prop (well-ordered-types-are-sets (Ξ» _ _ β fe) iwo)
(prop-valuedness iwo y x) Ο) Ο
where
Ο : x οΌ y β Β¬ (y βΊ x)
Ο refl = irreflexive x (well-foundedness iwo x)
Ο : x βΊ y β Β¬ ((x οΌ y) + (y βΊ x))
Ο k (inl refl) = irreflexive x (well-foundedness iwo x) k
Ο k (inr l) = irreflexive x (well-foundedness iwo x)
(transitivity iwo x y x k l)
uniq-trich : is-uniquely-trichotomous
uniq-trich x y = pointed-props-are-singletons
(trichotomy fe em iwo x y)
(trich-prop x y)
minimal-gives-well-foundedness : inhabited-has-minimal
β is-well-founded
minimal-gives-well-foundedness min = Ξ³
where
Ξ΄ : (x : X) β ¬¬ (is-accessible x)
Ξ΄ xβ xβ-not-acc = x-not-acc x-acc
where
B : X β π€ β π£ Μ
B x = Β¬ (is-accessible x)
m : Ξ£ x κ X , B x Γ ((y : X) β B y β Β¬ (y βΊ x))
m = min B (Ξ» _ β negations-are-props fe) β£ xβ , xβ-not-acc β£
x : X
x = prβ m
x-not-acc : B x
x-not-acc = prβ (prβ m)
x-minimal : (y : X) β B y β Β¬ (y βΊ x)
x-minimal = prβ (prβ m)
x-acc : is-accessible x
x-acc = acc Ο
where
Ξ΅ : (y : X) β y βΊ x β ¬¬ (is-accessible y)
Ξ΅ y l y-not-acc = x-minimal y y-not-acc l
Ο : (y : X) β y βΊ x β is-accessible y
Ο y l = EM-gives-DNE em (is-accessible y) (accessibility-is-prop (Ξ» _ _ β fe) y) (Ξ΅ y l)
Ξ³ : is-well-founded
Ξ³ x = EM-gives-DNE em (is-accessible x) (accessibility-is-prop (Ξ» _ _ β fe) x) (Ξ΄ x)
classical-well-order-is-inductive : is-classical-well-order
β is-well-order
classical-well-order-is-inductive (trans , trich , min) =
pv , wf , ext , trans
where
pv : is-prop-valued
pv x y k l = inl-lc (singletons-are-props (trich x y) (inl k) (inl l))
wf : is-well-founded
wf = minimal-gives-well-foundedness min
ext : is-extensional
ext x y u v = ΞΊ (center (trich x y))
where
ΞΊ : (x βΊ y) + (x οΌ y) + (y βΊ x) β x οΌ y
ΞΊ (inl k) = π-elim (irreflexive x (wf x) (v x k))
ΞΊ (inr (inl e)) = e
ΞΊ (inr (inr l)) = π-elim (irreflexive y (wf y) (u y l))
\end{code}
Having a classical well-order on every set allows us to derive excluded middle
with a fairly direct proof.
\begin{code}
open import MLTT.Two-Properties
open import UF.UniverseEmbedding
classical-well-order-on-every-set : (π€ π£ : Universe) β (π€ β π£) βΊ Μ
classical-well-order-on-every-set π€ π£ =
(X : π€ Μ ) β is-set X β β _βΊ_ κ (X β X β π£ Μ ), (is-classical-well-order _βΊ_)
classical-well-order-on-every-set-gives-excluded-middle :
{π€ π£ : Universe} β classical-well-order-on-every-set π€ π£
β excluded-middle (π€ β π£)
classical-well-order-on-every-set-gives-excluded-middle {π€} {π£} CWO P P-is-prop =
β₯β₯-rec Ο Ξ³ (CWO π' π'-is-set)
where
π' : π€ Μ
π' = Lift π€ π
π'-is-set : is-set π'
π'-is-set = equiv-to-set (Lift-β π€ π) π-is-set
ΞΉ : π β π'
ΞΉ = lift π€
Ο : is-prop (P + Β¬ P)
Ο = +-is-prop P-is-prop (negations-are-props fe) ¬¬-intro
Ξ³ : (Ξ£ _βΊ_ κ (π' β π' β π£ Μ ) , (is-classical-well-order _βΊ_)) β P + Β¬ P
Ξ³ (_βΊ_ , trans , trich , min) = ΞΊ (center (trich (ΞΉ β) (ΞΉ β)))
where
ΞΊ : (ΞΉ β βΊ ΞΉ β) + (ΞΉ β οΌ ΞΉ β) + (ΞΉ β βΊ ΞΉ β)
β P + Β¬ P
ΞΊ (inr (inl e)) = π-elim (zero-is-not-one (equivs-are-lc ΞΉ lift-is-equiv e))
ΞΊ (inl k) = f (min A A-is-prop-valued A-is-inhabited)
where
A : π' β π€ β π£ Μ
A x = π-cases P π (lower x)
A-is-prop-valued : (x : π') β is-prop (A x)
A-is-prop-valued (β , _) = P-is-prop
A-is-prop-valued (β , _) = π-is-prop
A-is-inhabited : β A
A-is-inhabited = β£ ΞΉ β , β β£
f : (Ξ£ x κ π' , A x Γ ((y : π') β A y β Β¬ (y βΊ x)))
β P + Β¬ P
f ((β , _) , p , _) = inl p
f ((β , _) , _ , m) = inr (Ξ» p β m (ΞΉ β) p k)
ΞΊ (inr (inr l)) = g (min B B-is-prop-valued B-is-inhabited)
where
B : π' β π€ β π£ Μ
B x = π-cases π P (lower x)
B-is-prop-valued : (x : π') β is-prop (B x)
B-is-prop-valued (β , _) = π-is-prop
B-is-prop-valued (β , _) = P-is-prop
B-is-inhabited : β B
B-is-inhabited = β£ ΞΉ β , β β£
g : (Ξ£ x κ π' , B x Γ ((y : π') β B y β Β¬ (y βΊ x)))
β P + Β¬ P
g ((β , _) , _ , m) = inr (Ξ» p β m (ΞΉ β) p l)
g ((β , _) , p , _) = inl p
\end{code}
We assumed excluded middle to show that every classical well-order is an
inductive well-order. But if we assume that we have a classical well-order on
every set, then we can derive excluded middle. Hence, if every set admits some
classical well-order, then every set admits some inducive well-order.
\begin{code}
open import Ordinals.Notions
open InductiveWellOrder pt
classical-well-ordering-implies-inductive-well-ordering :
{π€ π£ : Universe}
β classical-well-order-on-every-set π€ π£
β inductive-well-order-on-every-set π€ π£
classical-well-ordering-implies-inductive-well-ordering {π€} {π£} CWO X X-is-set =
β₯β₯-functor Ξ³ (CWO X X-is-set)
where
Ξ³ : (Ξ£ _βΊ_ κ (X β X β π£ Μ ) , (is-classical-well-order _βΊ_))
β Ξ£ _βΊ_ κ (X β X β π£ Μ ) , (is-well-order _βΊ_)
Ξ³ (_βΊ_ , cwo) = (_βΊ_ , classical-well-order-is-inductive _βΊ_ em cwo)
where
em : excluded-middle (π€ β π£)
em = classical-well-order-on-every-set-gives-excluded-middle CWO
\end{code}
The converse holds too (but note the change in universe levels) and depends on
the straightforward but tedious lemma lower-inductive-well-order-on-every-set
which expresses that if every set in some large universe can be inductively
well-ordered, then so can every set in a lower universe.
(NB. There are similar, but different technical lemmas in the file
OrdinalsWellOrderTransport.lagda.)
\begin{code}
inductive-well-ordering-implies-classical-well-ordering :
{π€ π£ : Universe}
β inductive-well-order-on-every-set ((π€ β π£) βΊ) π£
β classical-well-order-on-every-set π€ π£
lower-inductive-well-order-on-every-set : {π€ π£ π₯ : Universe}
β inductive-well-order-on-every-set (π€ β π₯) π£
β inductive-well-order-on-every-set π€ π£
lower-inductive-well-order-on-every-set {π€} {π£} {π₯} IWO X X-is-set = β₯β₯-functor Ξ³ iwo
where
X' : π€ β π₯ Μ
X' = Lift π₯ X
ΞΉ : X β X'
ΞΉ = lift π₯
X'-is-set : is-set X'
X'-is-set = equiv-to-set (Lift-β π₯ X) X-is-set
iwo : β _βΊ'_ κ (X' β X' β π£ Μ ), (is-well-order _βΊ'_)
iwo = IWO X' X'-is-set
Ξ³ : (Ξ£ _βΊ'_ κ (X' β X' β π£ Μ ), (is-well-order _βΊ'_))
β (Ξ£ _βΊ_ κ (X β X β π£ Μ ), (is-well-order _βΊ_))
Ξ³ (_βΊ'_ , pv' , wf' , ext' , trans') = (_βΊ_ , pv , wf , ext , trans)
where
_βΊ_ : X β X β π£ Μ
x βΊ y = ΞΉ x βΊ' ΞΉ y
pv : is-prop-valued _βΊ_
pv x y = pv' (ΞΉ x) (ΞΉ y)
wf : is-well-founded _βΊ_
wf = transfinite-induction-converse _βΊ_ Ο
where
Ο : is-Well-founded _βΊ_
Ο P h x = transfinite-induction _βΊ'_ wf' P' h' (ΞΉ x)
where
P' : X' β π€ β π£ Μ
P' = P β lower
h' : (x' : X') β ((y : X') β y βΊ' x' β P' y) β P' x'
h' x' Ο = h (lower x') (Ξ» y k β Ο (ΞΉ y) k)
ext : is-extensional _βΊ_
ext x y u v = equivs-are-lc ΞΉ lift-is-equiv
(ext' (ΞΉ x) (ΞΉ y)
(Ξ» x' k β u (lower x') k)
(Ξ» y' l β v (lower y') l))
trans : is-transitive _βΊ_
trans x y z k l = trans' (ΞΉ x) (ΞΉ y) (ΞΉ z) k l
inductive-well-ordering-implies-classical-well-ordering {π€} {π£} IWO X X-is-set =
β₯β₯-functor Ξ³ (lower-inductive-well-order-on-every-set IWO X X-is-set)
where
Ξ³ : (Ξ£ _βΊ_ κ (X β X β π£ Μ ) , (is-well-order _βΊ_))
β Ξ£ _βΊ_ κ (X β X β π£ Μ ) , (is-classical-well-order _βΊ_)
Ξ³ (_βΊ_ , iwo) = (_βΊ_ , inductive-well-order-is-classical _βΊ_ em iwo)
where
em : excluded-middle (π€ β π£)
em = inductive-well-order-on-every-set-gives-excluded-middle IWO
\end{code}
Finally, we use the above to show that having an inductive well-order on every
set implies the axiom of choice.
(In fact, they are equivalent by Zermelo's proof of the Well Ordering Theorem,
but we don't formalize this.)
\begin{code}
module _
(pt : propositional-truncations-exist)
where
open import UF.Choice
open Univalent-Choice (Ξ» _ _ β fe) pt
open PropositionalTruncation pt
open ClassicalWellOrder pt
open InductiveWellOrder pt
classical-well-ordering-implies-ac : classical-well-order-on-every-set (π€ β π£) π£
β AC {π€ β π£} {π€ β π£}
classical-well-ordering-implies-ac {π€} {π£} CWO =
ACβ-gives-AC (ACβ-gives-ACβ Ξ³)
where
Ξ³ : (X : π€ β π£ Μ ) (Y : X β π€ β π£ Μ )
β is-set X
β ((x : X) β is-set (Y x))
β β₯ ((x : X) β β₯ Y x β₯ β Y x) β₯
Ξ³ X Y X-is-set Y-is-set-valued =
β₯β₯-functor f (CWO (Ξ£ Y) (Ξ£-is-set X-is-set Y-is-set-valued))
where
f : (Ξ£ _βΊ_ κ (Ξ£ Y β Ξ£ Y β π£ Μ ) , (is-classical-well-order _βΊ_))
β ((x : X) β β₯ Y x β₯ β Y x)
f (_βΊ_ , _ , _ , min) x y = transport Y x'-is-x y'
where
S : Ξ£ Y β π€ β π£ Μ
S (x' , _) = x' οΌ x
m : Ξ£ Ο κ (Ξ£ Y) , S Ο Γ ((Ο : Ξ£ Y) β S Ο β Β¬ (Ο βΊ Ο))
m = min S (Ξ» _ β X-is-set) (β₯β₯-functor (Ξ» y' β (x , y') , refl) y)
x' : X
x' = prβ (prβ m)
x'-is-x : x' οΌ x
x'-is-x = prβ (prβ m)
y' : Y x'
y' = prβ (prβ m)
classical-well-ordering-implies-ac-corollary :
classical-well-order-on-every-set π€ π€ β AC {π€} {π€}
classical-well-ordering-implies-ac-corollary {π€} =
classical-well-ordering-implies-ac {π€} {π€}
inductive-well-ordering-implies-ac :
inductive-well-order-on-every-set ((π€ βΊ) β (π£ βΊ)) π£
β AC {π€ β π£} {π€ β π£}
inductive-well-ordering-implies-ac {π€} {π£} =
classical-well-ordering-implies-ac {π€} {π£}
β inductive-well-ordering-implies-classical-well-ordering
inductive-well-ordering-implies-ac-corollary :
inductive-well-order-on-every-set (π€ βΊ) π€
β AC {π€} {π€}
inductive-well-ordering-implies-ac-corollary {π€} =
inductive-well-ordering-implies-ac {π€} {π€}
\end{code}