doc-src/TutorialI/Misc/natsum.thy
author kleing
Wed, 12 Jul 2000 14:47:55 +0200
changeset 9287 c406d0af9368
parent 8745 13b32661dde4
child 9458 c613cd06d5cf
permissions -rw-r--r--
about.html -> logics.html
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8745
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
     1
(*<*)
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
     2
theory natsum = Main:;
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
     3
(*>*)
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
     4
text{*\noindent
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
     5
In particular, there are \isa{case}-expressions, for example
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
     6
*}
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
     7
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
     8
(*<*)term(*>*) "case n of 0 \\<Rightarrow> 0 | Suc m \\<Rightarrow> m";
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
     9
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    10
text{*\noindent
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    11
primitive recursion, for example
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    12
*}
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    13
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    14
consts sum :: "nat \\<Rightarrow> nat";
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    15
primrec "sum 0 = 0"
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    16
        "sum (Suc n) = Suc n + sum n";
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    17
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    18
text{*\noindent
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    19
and induction, for example
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    20
*}
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    21
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    22
lemma "sum n + sum n = n*(Suc n)";
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    23
apply(induct_tac n);
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    24
apply(auto).;
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    25
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    26
(*<*)
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    27
end
13b32661dde4 I wonder which files i forgot.
nipkow
parents:
diff changeset
    28
(*>*)