doc-src/TutorialI/Misc/Plus.thy
author berghofe
Tue, 01 Jun 2004 15:02:05 +0200
changeset 14861 ca5cae7fb65a
parent 13305 f88d0c363582
child 16417 9bc16273c2d4
permissions -rw-r--r--
Removed ~10000 hack in function idx that can lead to inconsistencies when unifying terms with a large number of abstractions.

(*<*)
theory Plus = Main:
(*>*)

text{*\noindent Define the following addition function *}

consts plus :: "nat \<Rightarrow> nat \<Rightarrow> nat"
primrec
"plus m 0 = m"
"plus m (Suc n) = plus (Suc m) n"

text{*\noindent and prove*}
(*<*)
lemma [simp]: "!m. plus m n = m+n"
apply(induct_tac n)
by(auto)
(*>*)
lemma "plus m n = m+n"
(*<*)
by(simp)

end
(*>*)