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