Zulip Chat Archive
Stream: mathlib4
Topic: Exists.fst
Pan Lin (Jun 16 2024 at 07:43):
Hi. In Mathlib.Logic.Basic, it confuses me:
theorem Exists.fst {b : Prop} {p : b → Prop} : Exists p → b
| ⟨h, _⟩ => h
#align Exists.fst Exists.fst
theorem Exists.snd {b : Prop} {p : b → Prop} : ∀ h : Exists p, p h.fst
| ⟨_, h⟩ => h
#align Exists.snd Exists.snd
Why Exists.fst
and Exists.snd
use {b : Prop}
instead {b : Type*}
or just {β}
Notification Bot (Jun 16 2024 at 07:44):
A message was moved here from #mathlib4 > Jordan Algebras by Hans Lin.
Eric Wieser (Jun 16 2024 at 07:52):
b : Type*
would give an error here
Yaël Dillies (Jun 16 2024 at 08:50):
Think about what would happen if Exists.fst {b : Sort*} {p : b → Prop} : Exists p → b
and you proved ∃ n : Nat, n = n
using both Exists.mk 0 rfl
and Exists.mk 37 rfl
Last updated: May 02 2025 at 03:31 UTC