doc-src/TutorialI/Misc/Plus.thy
author nipkow
Wed, 22 Jun 2005 09:26:18 +0200
changeset 16523 f8a734dc0fbc
parent 16417 9bc16273c2d4
child 19249 86c73395c99b
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13305
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
     1
(*<*)
16417
9bc16273c2d4 migrated theory headers to new format
haftmann
parents: 13305
diff changeset
     2
theory Plus imports Main begin
13305
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
     3
(*>*)
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
     4
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
     5
text{*\noindent Define the following addition function *}
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
     6
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
     7
consts plus :: "nat \<Rightarrow> nat \<Rightarrow> nat"
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
     8
primrec
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
     9
"plus m 0 = m"
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    10
"plus m (Suc n) = plus (Suc m) n"
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    11
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    12
text{*\noindent and prove*}
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    13
(*<*)
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    14
lemma [simp]: "!m. plus m n = m+n"
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    15
apply(induct_tac n)
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    16
by(auto)
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    17
(*>*)
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    18
lemma "plus m n = m+n"
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    19
(*<*)
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    20
by(simp)
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    21
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    22
end
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    23
(*>*)