Zulip Chat Archive
Stream: mathlib4
Topic: Set theory without choice
Shuhao Song (Aug 20 2024 at 07:16):
@Violeta Hernández There are some axioms about quotients that are trivially true in ZF but may not be provable in Lean.
axiom Quot.move {ι} {α : ι → Sort*} {r : ∀ i, α i → α i → Prop}
(x : ∀ i, Quot (r i)) : Quot (fun (a b : ∀ i, α i) => ∀ i, r i (a i) (b i))
axiom Quot.move_rec {ι} {α : ι → Sort*} {r : ∀ i, α i → α i → Prop}
(x : ∀ i, Quot (r i)) (y : ∀ i, α i)
: Quot.move x = Quot.mk _ y ↔ ∀ i, x i = Quot.mk _ (y i)
With these axioms, we can define ZFSet.image
without definability (Definable 1 f
) or axiom of choice. See https://github.com/leanprover-community/mathlib4/blob/meow_sister/set_theory_1/Mathlib/SetTheory/ZFC/Image.lean. That may be important in formalizing large cardinals beyond choice, such as Reinhardt and Berkeley cardinals. (However the HoTT approach may be easier)
Shuhao Song (Aug 20 2024 at 07:19):
The "without choice" here means Lean - Classical.choice
+ definite description. Definite description means that we can get an element of type if is subsingleton and nonempty.
Mario Carneiro (Aug 20 2024 at 07:20):
Shuhao Song (Aug 20 2024 at 08:06):
But with definite description we can just encode the quotient as Set (Set α)
and the lift uses definite description. So no real problem.
Shuhao Song (Aug 20 2024 at 08:15):
Mario Carneiro said:
Thanks, but here we need not to make it computable.
Mario Carneiro (Aug 20 2024 at 08:48):
With definite description, you can define quotients using sets in the usual ZF style
Shuhao Song (Aug 20 2024 at 08:55):
Mario Carneiro said:
With definite description, you can define quotients using sets in the usual ZF style
Yes. And you can also prove Quot r
is the same as ZF style quotient.
Shuhao Song (Aug 20 2024 at 22:17):
Oh, the Quot.move
essentially uses axiom of choice. You can't prove the product of equivalence classes is non-empty without AC...
Eric Wieser (Aug 21 2024 at 01:10):
I think you can if the index type is finite?
Last updated: May 02 2025 at 03:31 UTC