src/HOL/ex/Transfer_Ex.thy
author haftmann
Fri, 25 Sep 2009 09:50:31 +0200
changeset 32705 04ce6bb14d85
parent 32556 c2544c7b0611
child 35685 2fa645db6e58
permissions -rw-r--r--
merged
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
32556
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
     1
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
     2
header {* Various examples for transfer procedure *}
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
     3
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
     4
theory Transfer_Ex
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
     5
imports Complex_Main
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
     6
begin
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
     7
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
     8
(* nat to int *)
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
     9
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    10
lemma ex1: "(x::nat) + y = y + x"
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    11
  by auto
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    12
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    13
thm ex1 [transferred]
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    14
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    15
lemma ex2: "(a::nat) div b * b + a mod b = a"
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    16
  by (rule mod_div_equality)
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    17
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    18
thm ex2 [transferred]
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    19
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    20
lemma ex3: "ALL (x::nat). ALL y. EX z. z >= x + y"
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    21
  by auto
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    22
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    23
thm ex3 [transferred natint]
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    24
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    25
lemma ex4: "(x::nat) >= y \<Longrightarrow> (x - y) + y = x"
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    26
  by auto
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    27
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    28
thm ex4 [transferred]
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    29
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    30
lemma ex5: "(2::nat) * (SUM i <= n. i) = n * (n + 1)"
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    31
  by (induct n rule: nat_induct, auto)
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    32
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    33
thm ex5 [transferred]
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    34
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    35
theorem ex6: "0 <= (n::int) \<Longrightarrow> 2 * \<Sum>{0..n} = n * (n + 1)"
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    36
  by (rule ex5 [transferred])
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    37
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    38
thm ex6 [transferred]
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    39
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    40
thm ex5 [transferred, transferred]
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    41
c2544c7b0611 split of test examples from NatTransfer
haftmann
parents:
diff changeset
    42
end