X and (not X) == False for any sentence X
If you start with a sentence y, and then via the proof methods arrive at a sentence (not y), this is the same as saying
(y -> (not y)) == True
Which is equivalent to:
((not y) or (not y)) == True
Which is equivalent to:
(not y) == True
Now, if you accept the law of non-contradiction this implies that:
y == False
If you do not accept it, y can both True and False at the same time and the proof method is not valid anymore. Hence the proof method of reductio ad absurdum, or "proof by contradiction" as you call it, is valid if and only if this law holds.
For instance, paraconsistent logic has the law of excluded middle but not ex falso quodlibet.
https://en.wikipedia.org/wiki/Principle_of_explosion
https://en.wikipedia.org/wiki/Paraconsistent_logic
--
addendum
Specifically, notice that in classical logic the axioms law of excluded middle and law of non-contradiction can be substituted for one another (they are equivalent). However, that is not the case for all semantics.
(x->(~x))->(~x)
Law of excluded middle is:
x | ~x
Proof follows:
(x->(~x))->(~x)
From definition of implication is equivalent to:
(~x) | ~(x->(~x))
From definition of implication is equivalent to:
(~x) | ~((~x) | (~x))
From de Morgans law is equivalent to:
(~x) | (x & x)
From identity law is equivalent to:
~x | x
I am not a logician and I might not have gotten all the details right, but I certainly think this is possible. I also have quite a good proof by authority ;) in form of an article by Alonzo Church:
http://www.ams.org/journals/bull/1928-34-01/S0002-9904-1928-...
Actually, at first I thought it was incorrect because you used De Morgan's law, which I mistakenly thought was invalid in intuitionistic logic. However, I looked it up and apparently only ~(p & q) |- ~p v ~q is invalid in IL.
It's possible to create reductio ad absurdum in Coq:
Definition reductioAdAbsurdum (X:Prop) (f : (X -> (X -> False))) (x:X) : False := f x x.
But not the law of the excluded middle.Edit: It's much clearer in Idris:
reductioAdAbsurdum : (x -> (x -> _|_)) -> (x -> _|_)
reductioAdAbsurdum f x = f x xIn propositional logic, material implication is a valid rule of replacement which is an instance of the connective of the same name. It is the rule that states that "P implies Q" is logically equivalent to "not-P or Q".
Nice flame, eot.
Arguably, the common sense definition of 'A -> B' is simply modus ponens. That is 'Given A and A->B, it follows that B'. It's then no longer obvious that A -> B is equivalent to ~A v B.
Indeed, implication in IL is different from material implication even though IL has modus ponens.
((~x) -> x) -> x
or: ((x -> _|_) -> x) -> x
Which is not constructible in Coq/Idris.