# Zulip Chat Archive

## Stream: new members

### Topic: contradiction question

#### PV (Apr 11 2020 at 23:17):

Curious if you create the following premise so your goal state ends up like:

n : mynat,

hn : n = succ n,

h0 : succ n ≠ 0

⊢ succ n = 0

Is there a way to use the premise h0 and the goal state contradiction statements to return a proof of the goal?

#### Mario Carneiro (Apr 11 2020 at 23:18):

you don't need `h0`

if the other hypotheses are already contradictory

#### Mario Carneiro (Apr 11 2020 at 23:19):

however the proof that `n = succ n`

is false is not completely trivial so you may not have it on mynat. You have to prove it by induction

#### Patrick Stevens (Apr 12 2020 at 07:09):

The `exfalso`

tactic will destroy the goal so that you only have to prove `false`

, if that's what you're asking; but you can't generally take a hypothesis of the form "not A" and a goal of "A", and create a proof. After all, you could prove false that way: take a hypothesis of the form `true`

, and a goal of the form `false`

. If you notice that your goal is incompatible with your hypotheses, you have only two real paths to victory (one of them classically valid and one not): `exfalso`

and prove that your hypotheses are inconsistent, or proof-by-contradiction of assuming the negation of the false goal and then proving that the hypotheses with that extra assumption are inconsistent. (There are niche cases where it's actually easier to prove the false goal from the false assumptions, but in my experience those are rare.)

#### PV (Apr 12 2020 at 14:38):

That makes sense. Still getting used to reading a neq 0 as a = 0 -> false and the use of the exfalso tactic to move along.

Last updated: Dec 20 2023 at 11:08 UTC