Sindbad~EG File Manager
<div id="pageName0">
<div align="justify">
<h2>Tarski Formalization Project: The Master List</h2>
<p> </p>
<p></p>
<p>
Wos and I formalized about 200 theorems from Szmielew's
development of Tarski geometry, as presented in "the book",
by which we mean Schwäbhauser, Szmielew, and Tarski's <em>
Metamathematische Methoden in der Geometrie.</em>
When working with two hundred files,
the following concerns arose:
<ul>
<li> Possibly manual editing could introduce errors, leading possibly to bogus proofs. </li>
<li> We wanted to be able to perform experiments involving changes to many files at a time. </li>
</ul>
We addressed both of these concerns by creating the <em>master list</em> of our Tarski theorems.
The master list is a list of data items, one for each theorem. We felt that the master list
should be
<ul>
<li> Human readable, so that we could check whether the formalized theorems correspond to the contents of the book.</li>
<li> Machine readable, so that we could use computer programs to generate input files for different experiments,
hopefully without introducing errors. </li>
</ul>
At first it may seem that these requirements conflict, but we think we have met both criteria
by making the master list a text file (so it is human readable) containing PHP code (so it is machine-readable).
The syntax requirements of PHP intrude only minimally on the human readability, mainly requiring
us to write some extra occurrences of the word <em>array</em>, which are easily ignored.
The master list itself is available on our <a href= "index.php?include=Tools"> Tools</a> page; this page only explains it.
The master list begins with class definitions of classes called <em> Theorem</em>, <em> Definition</em>,
and <em>Axiom</em>. The class <em> Theorem</em>, for example, looks like this (but
for simplicity we here omit the constructor function). (Those unfamiliar with PHP
should just ignore {\em var} and the dollar signs.)
<code><pre>
class Theorem
{ var $name;
var $PositiveForm; // array of clauses
var $NegatedForm; // array of clauses
var $Diagram; // array of diagram equations
var $SkolemSymbols = ""; // array of Skolem symbols introduced
var $Cases = ""; // cases we used to split the problem, if any.
}
</pre></code>
</p>
<p>
After that come arrays defining<em> TarskiAxioms}</em>,
<em> TarskiDefinitions</em>, and <em> TarskiTheorems</em>.
The <em> TarskiTheorems</em> array is the heart of the master list.
It starts off like this:
<code><pre>
$TarskiTheorems = array(
new Theorem( "Satz2.1",
array("E(xa,xb,xa,xb)"),
array("-E(a,b,a,b)")
),
new Theorem( "Satz2.2",
array("-E(xa,xb,xc,xd) | E(xc,xd,xa,xb)"),
array("E(a,b,c,d)","-E(c,d,a,b)")
),
</pre></code>
</p>
<p>
The master list was prepared by hand, by the following method:
First, we entered the negated form of a theorem, by copying
it from <code> list(sos) </code> of the existing hand-crafted input file.
It was, we realized, important that the constants in the master list
have the same names as the constants in the corresponding
existing proofs, to avoid incompatibilities when those proofs are
used as hints. (Of course, that only matters for the theorems that
cannot be proved without hints.)
</p>
<p>
Then, we computed (by hand) the positive form.
Here constants such as $a$ were changed to variables such as $xa$.
In some cases we had constants $cu$ or $cx$, where the book proof
had $u$ or $x$; in computing the positive form these become $u$
or $x$ again, rather than $xcx$ or $xcu$. Although this was
originally done by hand, we checked it (and other things about the
master list) with a PHP program <em> TestMasterList.php</em>.
What that program does is discussed <a href="index.php?include=AboutTestMasterList"> here</a>,
which also discussed the various issues of correctness that must be addressed.
The program itself can be found from our <a href="index.php?include=AboutTools"> Tools</a> page.
</p>
<p>
Another concern is whether each theorem in the master list corresponds
to the version in the printed book. There are several considerations here:
</p>
<p>
First, Szmielew treated lines as sets of points, so her treatment is not
strictly first order. We translated "line $L$'' to two points $p,q$ and
the literal $p \neq q$, and $x \in L$ to $Col(p,q,x)$, where $Col$ means
"collinear'' and is defined in terms of betweenness. The correctness issue
has to be understood modulo this translation.
</p>
<p>
Second, as a result of that
treatment of lines, some simple theorems had to be formulated in our development
that are not in the book. For example, perpendicularity of lines becomes
a 4-ary relation $perp(a,b,c,d)$, and we have to prove that, for example,
$a$ and $b$ can be interchanged, and $c$ and $d$ can be interchanged, or both.
This gives rise to some theorems that do not occur in the book. But for those
theorems that do occur in the book, it can only be checked by hand that they
correspond to the book. Since the Skolemization has been checked by machine,
it is only necessary to check that the negative form corresponds to the book.
There are only a few cases where this is at all problematic. Lemma~9.4, p.~68
is an example.
</p>
<p>
The question whether the formal theorem corresponds to
the intended theorem arises also in using a proof-checker. Mathematics books
written in the twentieth century do not contain machine-readable formulas,
and even if they did, we would still need to know if those really represented
Szmielew's intent. (There are a few typographical errors in Szmielew.) If we
want to know if, for example, the proof that inner Pasch implies outer Pasch has really
been formally proved, we will have to
check by hand that one of the forms of the theorem in the master list is correct,
and also that the axioms and definitions needed have been correctly formulated in
the arrays <code>TarskiAxioms</code> and <code>TarskiDefinitions</code>. But we will
not need to check that the intermediate theorems have been correctly formulated. Even
if they do not correspond to the theorems in the book, they have been proved and they
imply the theorem that inner Pasch implies outer Pasch!
</p>
</div>
</div>
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists