doc-src/TutorialI/Misc/document/Tree.tex
author chaieb
Wed, 19 May 2004 11:23:59 +0200
changeset 14758 af3b71a46a1c
parent 13791 3b6ff7ceaf27
child 15614 b098158a3f39
permissions -rw-r--r--
A new implementation for presburger arithmetic following the one suggested in technical report Chaieb Amine and Tobias Nipkow. It is generic an smaller. the tactic has also changed and allows the abstaction over fuction occurences whose type is nat or int.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9722
a5f86aed785b *** empty log message ***
nipkow
parents: 9721
diff changeset
     1
%
a5f86aed785b *** empty log message ***
nipkow
parents: 9721
diff changeset
     2
\begin{isabellebody}%
9924
3370f6aa3200 updated;
wenzelm
parents: 9722
diff changeset
     3
\def\isabellecontext{Tree}%
11866
fbd097aec213 updated;
wenzelm
parents: 11456
diff changeset
     4
\isamarkupfalse%
8749
2665170f104a Adding generated files
nipkow
parents:
diff changeset
     5
%
2665170f104a Adding generated files
nipkow
parents:
diff changeset
     6
\begin{isamarkuptext}%
2665170f104a Adding generated files
nipkow
parents:
diff changeset
     7
\noindent
11456
7eb63f63e6c6 revisions and indexing
paulson
parents: 10795
diff changeset
     8
Define the datatype of \rmindex{binary trees}:%
8749
2665170f104a Adding generated files
nipkow
parents:
diff changeset
     9
\end{isamarkuptext}%
11866
fbd097aec213 updated;
wenzelm
parents: 11456
diff changeset
    10
\isamarkuptrue%
fbd097aec213 updated;
wenzelm
parents: 11456
diff changeset
    11
\isacommand{datatype}\ {\isacharprime}a\ tree\ {\isacharequal}\ Tip\ {\isacharbar}\ Node\ {\isachardoublequote}{\isacharprime}a\ tree{\isachardoublequote}\ {\isacharprime}a\ {\isachardoublequote}{\isacharprime}a\ tree{\isachardoublequote}\isamarkupfalse%
fbd097aec213 updated;
wenzelm
parents: 11456
diff changeset
    12
\isamarkupfalse%
fbd097aec213 updated;
wenzelm
parents: 11456
diff changeset
    13
\isamarkupfalse%
fbd097aec213 updated;
wenzelm
parents: 11456
diff changeset
    14
%
8749
2665170f104a Adding generated files
nipkow
parents:
diff changeset
    15
\begin{isamarkuptext}%
2665170f104a Adding generated files
nipkow
parents:
diff changeset
    16
\noindent
11456
7eb63f63e6c6 revisions and indexing
paulson
parents: 10795
diff changeset
    17
Define a function \isa{mirror} that mirrors a binary tree
10795
9e888d60d3e5 minor edits to Chapters 1-3
paulson
parents: 9924
diff changeset
    18
by swapping subtrees recursively. Prove%
8749
2665170f104a Adding generated files
nipkow
parents:
diff changeset
    19
\end{isamarkuptext}%
11866
fbd097aec213 updated;
wenzelm
parents: 11456
diff changeset
    20
\isamarkuptrue%
13791
3b6ff7ceaf27 *** empty log message ***
nipkow
parents: 13778
diff changeset
    21
\isacommand{lemma}\ mirror{\isacharunderscore}mirror{\isacharcolon}\ {\isachardoublequote}mirror{\isacharparenleft}mirror\ t{\isacharparenright}\ {\isacharequal}\ t{\isachardoublequote}\isamarkupfalse%
11866
fbd097aec213 updated;
wenzelm
parents: 11456
diff changeset
    22
\isamarkupfalse%
fbd097aec213 updated;
wenzelm
parents: 11456
diff changeset
    23
\isamarkupfalse%
fbd097aec213 updated;
wenzelm
parents: 11456
diff changeset
    24
\isamarkupfalse%
fbd097aec213 updated;
wenzelm
parents: 11456
diff changeset
    25
\isamarkupfalse%
fbd097aec213 updated;
wenzelm
parents: 11456
diff changeset
    26
%
9493
494f8cd34df7 *** empty log message ***
nipkow
parents: 9145
diff changeset
    27
\begin{isamarkuptext}%
494f8cd34df7 *** empty log message ***
nipkow
parents: 9145
diff changeset
    28
\noindent
494f8cd34df7 *** empty log message ***
nipkow
parents: 9145
diff changeset
    29
Define a function \isa{flatten} that flattens a tree into a list
494f8cd34df7 *** empty log message ***
nipkow
parents: 9145
diff changeset
    30
by traversing it in infix order. Prove%
494f8cd34df7 *** empty log message ***
nipkow
parents: 9145
diff changeset
    31
\end{isamarkuptext}%
11866
fbd097aec213 updated;
wenzelm
parents: 11456
diff changeset
    32
\isamarkuptrue%
13791
3b6ff7ceaf27 *** empty log message ***
nipkow
parents: 13778
diff changeset
    33
\isacommand{lemma}\ {\isachardoublequote}flatten{\isacharparenleft}mirror\ t{\isacharparenright}\ {\isacharequal}\ rev{\isacharparenleft}flatten\ t{\isacharparenright}{\isachardoublequote}\isamarkupfalse%
11866
fbd097aec213 updated;
wenzelm
parents: 11456
diff changeset
    34
\isamarkupfalse%
13778
61272514e3b5 auto-update
paulson
parents: 13758
diff changeset
    35
\isamarkupfalse%
11866
fbd097aec213 updated;
wenzelm
parents: 11456
diff changeset
    36
\isamarkupfalse%
fbd097aec213 updated;
wenzelm
parents: 11456
diff changeset
    37
\end{isabellebody}%
9145
9f7b8de5bfaf updated;
wenzelm
parents: 8749
diff changeset
    38
%%% Local Variables:
9f7b8de5bfaf updated;
wenzelm
parents: 8749
diff changeset
    39
%%% mode: latex
9f7b8de5bfaf updated;
wenzelm
parents: 8749
diff changeset
    40
%%% TeX-master: "root"
9f7b8de5bfaf updated;
wenzelm
parents: 8749
diff changeset
    41
%%% End: