0

Could anyone explain to me why do we have to prove ~A after elim Ha.?

Before "elim Ha"

1 subgoals
 A : Prop
 Ha : ~ ~ A
______________________________________(1/1)
 A

After

1 subgoals
 A : Prop
 Ha : ~ ~ A
______________________________________(1/1)
 ~ A

Is it right that means ~~A true, ~A true -> A true?

In my knowledge, I only know the rule ~E is ~A true, A true -> FalseHood true

Anton Trunov
  • 15,074
  • 2
  • 23
  • 43
Marco Dinh
  • 332
  • 2
  • 15
  • 2
    Are you trying to use classical logic? Because Coq's logic is intuitionistic by default. You'd need to add an axiom to make it classical. `~ ~ A /\ ~ A -> A` is intuitionistically valid, but `~ ~ A -> A` is not. `~ ~ (~ ~ A -> A)` is intuitionistically valid though. –  Jun 03 '14 at 13:00

1 Answers1

2

In Coq, ~ P is a notation for P -> False. If I'm not mistaken, using elim on an hypothesis of the shape ~ P is the same as directly using False_rect (you can Print False_rect for more info) with P as an input.

Doing so, you say to Coq "I know that P holds, so using P -> False, I can derive a proof of False" which closes the goal by contradiction. That's why each time you elim a ~ P, Coq asks you to provide a proof of P. In your case, P is ~ A.

Vinz
  • 5,997
  • 1
  • 31
  • 52