# HG changeset patch # User haftmann # Date 1268204679 -3600 # Node ID 2fa645db6e58446d2fd348c64e2055b7949b4c8b # Parent 97b94dc975c7b3081cfe7556664814cc30ade869 tuned diff -r 97b94dc975c7 -r 2fa645db6e58 src/HOL/ex/Transfer_Ex.thy --- a/src/HOL/ex/Transfer_Ex.thy Tue Mar 09 21:19:49 2010 +0100 +++ b/src/HOL/ex/Transfer_Ex.thy Wed Mar 10 08:04:39 2010 +0100 @@ -2,41 +2,46 @@ header {* Various examples for transfer procedure *} theory Transfer_Ex -imports Complex_Main +imports Main begin -(* nat to int *) - lemma ex1: "(x::nat) + y = y + x" by auto -thm ex1 [transferred] +lemma "(0\int) \ (y\int) \ (0\int) \ (x\int) \ x + y = y + x" + by (fact ex1 [transferred]) lemma ex2: "(a::nat) div b * b + a mod b = a" by (rule mod_div_equality) -thm ex2 [transferred] +lemma "(0\int) \ (b\int) \ (0\int) \ (a\int) \ a div b * b + a mod b = a" + by (fact ex2 [transferred]) lemma ex3: "ALL (x::nat). ALL y. EX z. z >= x + y" by auto -thm ex3 [transferred natint] +lemma "\x\0\int. \y\0\int. \xa\0\int. x + y \ xa" + by (fact ex3 [transferred nat_int]) lemma ex4: "(x::nat) >= y \ (x - y) + y = x" by auto -thm ex4 [transferred] +lemma "(0\int) \ (x\int) \ (0\int) \ (y\int) \ y \ x \ tsub x y + y = x" + by (fact ex4 [transferred]) -lemma ex5: "(2::nat) * (SUM i <= n. i) = n * (n + 1)" +lemma ex5: "(2::nat) * \{..n} = n * (n + 1)" by (induct n rule: nat_induct, auto) -thm ex5 [transferred] +lemma "(0\int) \ (n\int) \ (2\int) * \{0\int..n} = n * (n + (1\int))" + by (fact ex5 [transferred]) + +lemma "(0\nat) \ (n\nat) \ (2\nat) * \{0\nat..n} = n * (n + (1\nat))" + by (fact ex5 [transferred, transferred]) theorem ex6: "0 <= (n::int) \ 2 * \{0..n} = n * (n + 1)" by (rule ex5 [transferred]) -thm ex6 [transferred] - -thm ex5 [transferred, transferred] +lemma "(0\nat) \ (n\nat) \ (2\nat) * \{0\nat..n} = n * (n + (1\nat))" + by (fact ex6 [transferred]) end \ No newline at end of file