Zulip Chat Archive
Stream: general
Topic: propext axiom
Heather Macbeth (Jan 05 2023 at 19:29):
If I understand correctly, the fact that P ↔ Q
implies P
can be substituted for Q
is a consequence (in Lean's setup) of the docs#propext axiom:
example {P Q : Prop} {f : Prop → Sort*} (h1 : P ↔ Q) (h2 : f P) : f Q :=
eq.rec h2 (propext h1)
Does the implication go the other way? Can propext
be deduced from this?
Gabriel Ebner (Jan 05 2023 at 19:30):
Hint: use f := fun R => R = P
Floris van Doorn (Jan 05 2023 at 19:30):
Let f x := P = x
Heather Macbeth (Jan 05 2023 at 19:33):
Ha! I guess that was a pretty easy question for people who know type theory :). Thanks!
Heather Macbeth (Jan 05 2023 at 19:35):
So we could set up the foundations as
axiom iff.subst {P Q : Prop} {f : Prop → Sort*} (h1 : P ↔ Q) (h3 : f P) : f Q
lemma propext' {P Q : Prop} (h : P ↔ Q) : P = Q := h.subst rfl
if we wanted to. Are there other systems where this approach is taken?
Heather Macbeth (Jan 05 2023 at 19:38):
Oh, I see this exact question is treated in TPIL.
https://leanprover.github.io/theorem_proving_in_lean/axioms_and_computation.html#propositional-extensionality
Last updated: Dec 20 2023 at 11:08 UTC