How to prove $r \implies (\exists x : \alpha, r)$ in Lean

158 Views Asked by At

I'm trying to prove the logical statement $r \implies (\exists x: \alpha, r)$, where $r$ is a Prop (a proposition or statement) and $\alpha$ is a Type. I've proved a few things in Lean, going through the exercises of the book, but I'm stuck on this one.

I'm really not sure I even understand why this is true. Wouldn't $\alpha$ being uninhabited make this a false statement since there does not exist $x \in \alpha$?

My best "attempts" were 1) hoping that lean's elaborator would fill in what I needed,

theorem t5_2: r → (∃ x : α, r) :=
  assume rx: r,
    ⟨_, rx⟩

but it can't deduce something of type $\alpha$, which makes sense. And 2) I also thought that this might be a non-constructive proof, so I was thinking of doing a proof by contradiction. However, the furthest I got on paper was \begin{align} \lnot (\exists x \in \alpha, r) \implies (\forall x \in \alpha, \lnot r) \implies ?? \end{align} I'm not sure how to perform that first implication in lean, and even if I did, I would still need an $x \in \alpha$ to eliminate the $\forall$.

Any hints would be appreciated.