src/Doc/Tutorial/Misc/Plus.thy
author wenzelm
Sat, 05 Jan 2019 17:24:33 +0100
changeset 69597 ff784d5a5bfb
parent 67613 ce654b0e6d69
permissions -rw-r--r--
isabelle update -u control_cartouches;
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
67406
23307fd33906 isabelle update_cartouches -c;
wenzelm
parents: 48985
diff changeset
     5
text\<open>\noindent Define the following addition function\<close>
13305
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
     6
27015
f8537d69f514 *** empty log message ***
nipkow
parents: 19249
diff changeset
     7
primrec add :: "nat \<Rightarrow> nat \<Rightarrow> nat" where
f8537d69f514 *** empty log message ***
nipkow
parents: 19249
diff changeset
     8
"add m 0 = m" |
19249
86c73395c99b renamed plus to add;
wenzelm
parents: 16417
diff changeset
     9
"add m (Suc n) = add (Suc m) n"
13305
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    10
67406
23307fd33906 isabelle update_cartouches -c;
wenzelm
parents: 48985
diff changeset
    11
text\<open>\noindent and prove\<close>
13305
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    12
(*<*)
67613
ce654b0e6d69 more symbols;
wenzelm
parents: 67406
diff changeset
    13
lemma [simp]: "\<forall>m. add m n = m+n"
13305
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    14
apply(induct_tac n)
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    15
by(auto)
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    16
(*>*)
19249
86c73395c99b renamed plus to add;
wenzelm
parents: 16417
diff changeset
    17
lemma "add m n = m+n"
13305
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    18
(*<*)
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    19
by(simp)
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    20
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    21
end
f88d0c363582 *** empty log message ***
nipkow
parents:
diff changeset
    22
(*>*)