| Copyright | (c) Levent Erkok |
|---|---|
| License | BSD3 |
| Maintainer | erkokl@gmail.com |
| Stability | experimental |
| Safe Haskell | None |
| Language | Haskell2010 |
Documentation.SBV.Examples.TP.Sqrt2IsIrrational
Description
Prove that square-root of 2 is irrational.
Synopsis
- sqrt2IsIrrational :: IO (Proof SBool)
Documentation
sqrt2IsIrrational :: IO (Proof SBool) 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^2must be even. (Since it equals2b^2by (4).) - Thus,
amust be even. (Using (2) and (5).) - Thus,
a^2must be divisible by4. (Using (3) and (6). That is,2b^2 == 4Kfor someK.) - Thus,
b^2must be even. (Using (7), andb^2 = 2K.) - Thus,
bmust be even. (Using (2) and (8).) - Since
aandbare both even, they cannot be co-prime. (Using (6) and (9).)
Note that our proof is mostly about the first 3 facts above, then z3 and TP fills in the rest.
We have:
>>>sqrt2IsIrrationalLemma: oddSquaredIsOdd Step: 1 Q.E.D. Step: 2 (expand square) Q.E.D. Result: Q.E.D. Lemma: squareEvenImpliesEven Q.E.D. Lemma: evenSquaredIsMult4 Step: 1 Q.E.D. Step: 2 (expand square) Q.E.D. Result: Q.E.D. Lemma: sqrt2IsIrrational Q.E.D. [Proven] sqrt2IsIrrational :: Bool