Copyright | (c) Levent Erkok |
---|---|
License | BSD3 |
Maintainer | erkokl@gmail.com |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
Documentation.SBV.Examples.KnuckleDragger.Sqrt2IsIrrational
Description
Prove that square-root of 2 is irrational.
Synopsis
Documentation
sqrt2IsIrrational :: IO Proof Source #
Prove that square-root of 2
is irrational. That is, we can never find a
and b
such that
sqrt 2 == a / b
and a
and b
are co-prime.
In order not to deal with reals and square-roots, we prove the integer-only alternative:
If a^2 = 2b^2
, then a
and b
cannot be co-prime. We proceed by establishing the
following helpers first:
- An odd number squared is odd:
odd x -> odd x^2
- An even number that is a perfect square must be the square of an even number:
even x^2 -> even x
. - If a number is even, then its square must be a multiple of 4:
even x .=> x*x % 4 == 0
.
Using these helpers, we can argue:
- Start with the premise
a^2 = 2b^2
. - Thus,
a^2
must be even. (Since it equals2b^2
by a.) - Thus,
a
must be even. (Using 2 and b.) - Thus,
a^2
must be divisible by4
. (Using 3 and c. That is, 2b^2 == 4*K for someK.) - Thus,
b^2
must be even. (Using d, b^2 = 2K.) - Thus,
b
must be even. (Using 2 and e.) - Since
a
andb
are both even, they cannot be co-prime. (Using c and f.)
Note that our proof is mostly about the first 3 facts above, then z3 and KnuckleDragger fills in the rest.
We have:
>>>
sqrt2IsIrrational
Lemma: oddSquaredIsOdd Asms : 1 Q.E.D. Step : 1 Q.E.D. Result: Q.E.D. Lemma: squareEvenImpliesEven Q.E.D. Lemma: evenSquaredIsMult4 Asms : 1 Q.E.D. Step : 1 Q.E.D. Result: Q.E.D. Lemma: sqrt2IsIrrational Q.E.D. [Proven] sqrt2IsIrrational