Zulip Chat Archive
Stream: new members
Topic: How do I prove ¬¬p → p
Lars Ericson (Nov 22 2020 at 02:16):
This is probably dead simple but I am really going in circles. This:
lemma not_iff_imp_false (P : Prop) : ¬ P ↔ P → false := iff.rfl
theorem negneg (p : Prop) : ¬¬p → p :=
begin
intro h,
rw not_iff_imp_false (¬p) at h,
rw not_iff_imp_false p at h,
by_cases hp : p → false,
exfalso,
apply hp,
exfalso,
exact h hp,
end
leaves me in goal state
p : Prop,
h : (p → false) → false,
hp : ¬(p → false)
⊢ p
Donald Sebastian Leung (Nov 22 2020 at 02:37):
In negneg
, introduce the ¬¬p
hypothesis then use proof by_contradiction
.
Lars Ericson (Nov 22 2020 at 02:43):
Thank you @Donald Sebastian Leung that's actually my first successful use of by_contra
:
theorem negneg (p : Prop) : ¬¬p → p :=
begin
intro h,
by_contra h1,
exact h h1,
end
Last updated: Dec 20 2023 at 11:08 UTC