Zulip Chat Archive

Stream: new members

Topic: trading \exists for \forall


Sergey Cherkis (Dec 03 2023 at 04:49):

Given how useful the following equivalence is in constructing proofs, since it trades \exists and \forall is there a standard name for it in logic? And what is the corresponding theorem called in Lean 4?

import Mathlib
variable {X:Type} {Q:Prop} {P:XProp}
theorem anyThen_iff_existsThen {X:Type} {Q:Prop} {P:XProp} :
( x, P x  Q)  ( x, P x)  Q

Richard Copley (Dec 03 2023 at 05:14):

Hi! Please see #backticks and #mwe.

It's called exists_imp. One way to find it is to write

import Mathlib.Tactic
example {X:Type} {Q:Prop} {P:XProp} : ( x, P x  Q)  ( x, P x)  Q := by
  exact?

This prints the message Try this: exact Iff.symm forall_exists_index. Then go to the definition of forall_exists_index and look around nearby.

I don't know if this rule has a name in English.

Yaël Dillies (Dec 03 2023 at 07:28):

Yes, it has. This is called the elimination principle of Exists. It comes from the inductive definition of docs#Exists


Last updated: Dec 20 2023 at 11:08 UTC