; $Id: realsqrttwo.scm,v 1.1 2005/03/07 08:27:10 schwicht Exp $ ; For Freek Wiedijk's "stamp collection" of irrationality of sqrt(2) ; proof formalizations. (load "~/minlog/init.scm") (mload "../lib/numbers.scm") ; (display-program-constants "S" "PosPlus" "PosTimes" "PosLess" "PosLeq") (set-goal (pf "all p,q.SZero(q*q)=p*p -> F")) (ind) (auto) (assume "p" "IHp") (cases) (auto) (save "LemmaOne") (set-goal (pf "all p,q.2==(p#q)*(p#q) -> F")) (use "LemmaOne") (save "LemmaOneRat") (add-global-assumption "RatRealEq" (pf "all a,b.a===b -> a==b")) (add-global-assumption "RealEqTrans" (pf "all x,y,z.x===y -> y===z -> x===z")) (add-global-assumption "RealRatTimesComp" (pf "all x1,x2,a1,a2.x1===a1 -> x2===a2 -> x1*x2===a1*a2")) (set-goal (pf "all x,p,q.2===x*x -> x===p#q -> F")) (strip) (use "LemmaOneRat" (pt "p") (pt "q")) (use "RatRealEq") (use "RealEqTrans" (pt "x*x")) (prop) (use "RealRatTimesComp") (auto) (save "Corollary")