ThesisPDF Available

Computer Based Conjectures and Proofs in Teaching Euclidean Geometry

Authors:

Abstract

The aim of this dissertation is to identify effective methods on extending teaching of conjectures and proofs of Euclidean geometry theorems in secondary schools by utilizing computers, and to develop corresponding technology and software tools by enhancing existing dynamic geometry systems. Based upon analysis of the possible aims of mathematics teaching and an overview of the existing software tools and the theory, • a general report highlights areas where computers can indeed help in the teaching process, and areas of typical dangers of abuse of computers are also presented, • an enhancement of the dynamic mathematics software GeoGebra is introduced to give more support for teachers and students concerning proofs, • an analysis of an effective mathematical method in theorem proving for the Euclidean geometry is introduced in an effort to help non-expert readers to learn the basics of the applied mathematical algorithms, • some typical classroom situations are shown by utilizing GeoGebra to support teaching of certain topics in Euclidean geometry. The results in this dissertation can be considered as a prototype, but they are elaborated enough to be integrated in classroom use already and also for developing it further to provide a wider range of use for teaching proofs.
UNIVERSIT¨
AT LINZ
JOHANNES KEPLER JKU
Technisch-Naturwissenschaftliche
Fakult¨at
Computer Based
Conjectures and Proofs
in Teaching Euclidean Geometry
DISSERTATION
zur Erlangung des akademischen Grades
Doktor der Naturwissenschaften
im Doktoratsstudium der
Naturwissenschaften
Eingereicht von:
Zolt´an Kov´acs
Angefertigt am:
Institut f¨ur Didaktik der Mathematik
Beurteilung:
Univ. Prof. DI Mag. Dr. Dr.h.c. Markus Hohenwarter
Dr. Tom´as Recio
Linz, Juli 2015
Computer Based
Conjectures and Proofs
in Teaching Euclidean Geometry
Abstract
The aim of this dissertation is to identify effective methods on extending teaching
of conjectures and proofs of Euclidean geometry theorems in secondary schools by
utilizing computers, and to develop corresponding technology and software tools by
enhancing existing dynamic geometry systems. Based upon analysis of the possible
aims of mathematics teaching and an overview of the existing software tools and the
theory,
a general report highlights areas where computers can indeed help in the teach-
ing process, and areas of typical dangers of abuse of computers are also pre-
sented,
an enhancement of the dynamic mathematics software GeoGebra is introduced
to give more support for teachers and students concerning proofs,
an analysis of an effective mathematical method in theorem proving for the
Euclidean geometry is introduced in an effort to help non-expert readers to
learn the basics of the applied mathematical algorithms,
some typical classroom situations are shown by utilizing GeoGebra to support
teaching of certain topics in Euclidean geometry.
The results in this dissertation can be considered as a prototype, but they are
elaborated enough to be integrated in classroom use already and also for developing
it further to provide a wider range of use for teaching proofs.
Zusammenfassung
Das Ziel dieser Dissertation ist es, effektive Lehrmethoden zur Ausweitung des Un-
terrichts für Vermutungen und Beweise in euklidschen Geometrie in Schulen durch
Computeranwendung zu identifizieren, und geignete Technologien und Software-
Tools durch die Erweiterung bestehender dynamischer Geometriesysteme zu ent-
wickeln. Basierend auf einer Analyse der möglichen Grundziele des Mathematikun-
terrichtes und einem Überblick der vorhandenen Software-Tools und der Theorie,
wird folgendes thematisiert:
Ein allgemeiner Bericht hebt Bereiche, in denen Computer im Unterricht tat-
sächlich helfen können, und Bereiche der typischen Gefahren des Computer-
missbrauchs sind präsentiert.
Eine Weiterentwicklung der dynamischen Mathematiksoftware GeoGebra wird
demonstriert, um im Unterricht zu unterstützen Lehrer und Schüler.
Eine Analyse einer effektiver automatischen Beweismethode für die euklidis-
che Geometrie wird eingeführt, dass auch Nicht-Experten die Grundlagen der
Algorithmen verstehen können, und
einige typische Klassenzimmersituation werden analysiert, wie GeoGebra in
bestimmten Themen den Unterricht der euklidischen Geometrie unterstützen
kann.
Die Ergebnisse dieser Dissertation können als Prototyp betrachten werden, dennoch
genug ausgearbeitet, sodass sie im Klassenraum sofort eingesetzt werden können.
To my wife and sons
Contents
Introduction 1
1. Proofs in education 5
1.1. Proof and proving in mathematics education . . . . . . . . . . . . . . 5
1.1.1. A historical overview . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.2. Computer based proofs in mathematics . . . . . . . . . . . . . 8
1.1.3. The teacher’s role . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.1.4. Teaching Euclidean proofs: arguments and traditions . . . . . 13
1.1.5. Dynamic geometry tools . . . . . . . . . . . . . . . . . . . . . 15
1.1.6. Automated theorem proving methods . . . . . . . . . . . . . . 17
1.1.7. TheADGsupply ......................... 22
1.1.8. The educational demand . . . . . . . . . . . . . . . . . . . . . 28
1.1.9. Conclusion............................. 34
1.2. Proving with computer support . . . . . . . . . . . . . . . . . . . . . 35
1.2.1. Cinderella............................. 38
1.2.2. GCLC............................... 39
1.2.3. GeoProof ............................. 47
1.2.4. Coq ................................ 49
1.2.5. GEXandJGEX ......................... 71
1.2.6. GeoGebra4.4........................... 78
1.2.7. Other software packages . . . . . . . . . . . . . . . . . . . . . 82
1.2.8. Conclusion............................. 85
2. Implementation in GeoGebra 89
2.1. Rationale behind improving GeoGebra . . . . . . . . . . . . . . . . . 89
2.2. The portfolio prover . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
2.2.1. The algebraic approach: benefits and limitations . . . . . . . . 94
2.2.2. New commands in GeoGebra: Prove and ProveDetails . . . . 105
2.2.3. The Relation Tool . . . . . . . . . . . . . . . . . . . . . . . . 108
2.2.4. Summary .............................113
2.3. The Gröbner basis method . . . . . . . . . . . . . . . . . . . . . . . . 129
2.3.1. Logical consequence . . . . . . . . . . . . . . . . . . . . . . . 129
2.3.2. Structure of geometry theorems . . . . . . . . . . . . . . . . . 134
2.3.3. Elimination instead of equation solving . . . . . . . . . . . . . 136
2.3.4. “Generally false” and “other” statements, discovery . . . . . . 142
2.3.5. Readable sufficient conditions . . . . . . . . . . . . . . . . . . 144
i
Contents Contents
2.3.6. Evaluation.............................181
2.3.7. Extensions.............................183
2.4. Reciosmethod ..............................190
2.5. Java implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
2.6. Conclusion.................................198
3. Application and examples 201
3.1. TheRelationTool.............................201
3.1.1. Theframework ..........................201
3.1.2. GeoGebra files and applets . . . . . . . . . . . . . . . . . . . . 203
3.1.3. Triangles..............................203
3.1.4. Polygons..............................210
3.1.5. Parallelograms ..........................210
3.1.6. Various lines and circles of a triangle . . . . . . . . . . . . . . 213
3.1.7. Various theorems . . . . . . . . . . . . . . . . . . . . . . . . . 216
3.1.8. Conclusion.............................217
3.2. Other applications, future work . . . . . . . . . . . . . . . . . . . . . 218
4. Summary 221
Acknowledgments 223
A. Readability of algebraic proofs 225
A.1. Desargues’ theorem with Wu’s method . . . . . . . . . . . . . . . . . 225
B. Coq code for proving the parallelogram theorem in Tarski’s system 233
B.1. Primary definitions for chapter 7 . . . . . . . . . . . . . . . . . . . . 233
B.2. Definition for Lemma 7.20 . . . . . . . . . . . . . . . . . . . . . . . . 235
B.3. Proving Lemma 7.21 . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
C. Remarks on the Gröbner basis method 239
C.1. Equation systems for testing various CAS . . . . . . . . . . . . . . . 239
C.2. The Buchberger algorithm . . . . . . . . . . . . . . . . . . . . . . . . 241
C.3. Equation systems after elimination . . . . . . . . . . . . . . . . . . . 241
C.3.1. Giac code to mimic Singular output . . . . . . . . . . . . . . . 241
C.3.2. The Buchberger algorithm in Singular . . . . . . . . . . . . . 242
C.3.3. Freedom of choice in the Buchberger algorithm . . . . . . . . . 246
C.3.4. Uniqueness of a minimal–reduced–normed Gröbner basis . . . 254
C.3.5.Eulersline ............................257
C.3.6. Pappus’ hexagon theorem . . . . . . . . . . . . . . . . . . . . 260
D. New command line options in GeoGebra 271
D.1.Proveroptions...............................272
D.2. SingularWS options . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
ii
Contents
Index 275
Nomenclature 277
Bibliography 283
iii
Introduction
Abstract
The aim of this dissertation is to identify effective methods on extending teaching
of conjectures and proofs of Euclidean geometry theorems in secondary schools by
utilizing computers, and to develop corresponding technology and software tools by
enhancing existing dynamic geometry systems. Based upon analysis of the possible
aims of mathematics teaching and an overview of the existing software tools and the
theory,
a general report highlights areas where computers can indeed help in the teach-
ing process, and areas of typical dangers of abuse of computers are also pre-
sented,
an enhancement of the dynamic mathematics software GeoGebra is introduced
to give more support for teachers and students concerning proofs,
an analysis of an effective mathematical method in theorem proving for the
Euclidean geometry is introduced in an effort to help non-expert readers to
learn the basics of the applied mathematical algorithms,
some typical classroom situations are shown by utilizing GeoGebra to support
teaching of certain topics in Euclidean geometry.
The results in this dissertation can be considered as a prototype, but they are
elaborated enough to be integrated in classroom use already and also for developing
it further to provide a wider range of use for teaching of proofs.
Objectives of the thesis
In this dissertation literature about technology integration into mathematics class-
rooms for teaching of proofs is reviewed, and existing dynamic geometry and au-
tomated theorem proving software packages are investigated. The objective of this
thesis is to answer the following research questions:
1. Can computers give essential help in learning elementary geometry proofs?
What are the important properties of such a computer based educational tool?
2. How can we address typical difficulties in the software implementation of an
appropriate educational tool, in particular
1
a) the design of the user interface and the interaction between the user and
the software,
b) the applied algorithms and the implementation issues?
3. What type of computer aided exercises can be applied in classroom use in
teaching of elementary geometry proofs at secondary level?
Structure of the thesis
Chapter 1
Chapter 1 deals with the topic mathematics and proofs from an educational per-
spective. It addresses the first question of the objectives of the thesis.
In Section 1.1 a short overview is shown about the main trends in proofs in math-
ematics education in the twentieth century, and the influence of computers is dis-
cussed. Then the teacher’s role is in focus. The main point of Section 1.1 is to
analyze the role of Euclidean geometry in conjecturing and proving, which are em-
powered today by utilizing computer software as well. Since computers are already
able to prove geometric theorems automatically, it is a natural question whether we
are ready to support computer aided proof teaching as well. Finally, de Villiers’
concept on the role of reasoning is discussed by focusing on possible ways to utilize
computers.
Section 1.2 depicts the recent situation of computer based proving in mathemat-
ics education for elementary geometry. Several computer software packages are
reviewed concerning their strengths and weaknesses.
Chapter 2
In Chapter 2 a new implementation of a computer based educational proving tool
is demonstrated as a submodule of the open dynamic geometry software GeoGebra.
This chapter focuses on understanding the mathematical point of view, and also
discusses questions concerning the implementation. It deals with the second question
of the objectives of this thesis.
After an overview in Section 2.1, Section 2.2 describes the need of a general portfolio
prover to harness the variety of the applicable mathematical methods and to obtain
an implementation built upon the large experience of an international research com-
munity of this field. Two new GeoGebra commands are introduced and explained,
and their integration into the graphical user interface.
Section 2.3 is a detailed explanation of a popularly used algebraic geometry method
(the Gröbner basis method), emphasizing its basics by the terms of undergraduate
2
level mathematics. An enhanced algorithm is discussed for getting sufficient condi-
tions automatically inside GeoGebra.
Section 2.4 is a summary of a recent method related to the algebraic geometry
method (Recio’s exact check method), but even more effective in some simple situ-
ations.
Section 2.5 gives a short overview about the implementation created for extending
the GeoGebra application with a theorem proving subsystem.
Finally, Section 2.6 is an evaluation of the implementation by machine generated
statistics on some typical geometry problems solved by GeoGebra.
Chapter 3
Chapter 3 addresses the third question of the objectives of this thesis.
Section 3.1 is a collection of GeoGebra materials using the new technologies im-
plemented for GeoGebra. This collection can be directly used in secondary school
education to introduce teaching proofs. The focus is on the improved Relation Tool
which is the highest level entry point in GeoGebra’s user interface for the novel
capabilities.
Section 3.2 summarizes other possible applications of the implementation and de-
scribes some future plans for further improvements.
3
1. Proofs in education
So, logically. . .
If. . . she. . . weighs the same as a duck,
she’s made of wood. And therefore. . . A witch!
— Monty Python and the Holy Grail
This chapter deals with the topic mathematics and proofs from an educational per-
spective.
In the first part of the chapter a short overview is shown about the main trends in
proofs in mathematics education in the twentieth century, and influence of computers
is discussed. Then the teacher’s role is in focus. The main point of the section is
to analyze the role of the Euclidean geometry in conjecturing and proving, which
are empowered nowadays by utilizing computer software as well. Since computers
are already able to prove geometry theorems automatically, it is a natural question
whether we are ready to support computer aided proof teaching as well. Finally, de
Villiers’ concept on teaching of proofs is discussed by focusing on possible ways to
utilize a computer.
The second part of this chapter demonstrates the recent situation of computer based
proving in mathematics education. Several pieces of computer software are reviewed
concerning their strengths and weaknesses.
1.1. Proof and proving in mathematics education
1.1.1. A historical overview
“Mathematics is knowledge derivation and problem solving by reason-
ing.
This definition of mathematics, given by Bruno Buchberger (Buchberger and the
Theorema Working Group (1998)), is one of many possible ones including Aristotle’s
definition “the science of quantity” or Benjamin Price’s 1870 description “science
that draws necessary conclusions. Most definitions include more or less emphasis
on investigating quantities or the notion of conclusion.
5
Chapter 1 Proofs in education
Buchberger’s approach emphasizes the importance of both knowledge derivation and
problem solving, which are two sides of the same coin. As Buchberger explains,
“doing” mathematics is like a “creativity spiral” which consists of four repeating
steps: algorithm,computational results,conjecture and theorem (Fig. 1.1). These
steps are connected by activities:
1. Algorithms exist from the beginning of the human history to compute cer-
tain basic quantities. Simple algorithms (e. g. counting with pebbles to aid
development of numerical concepts) do not require machine resources, others
(e. g. multiplying big numbers) do.
2. Computational results require human invention to get a conjecture to gener-
alize the specific results.
3. Conjectures need to be followed by proving to have a solid basis about the
truth of the generalization.
4. Theorems should provide step-by-step recipes in resulting practical algorithms.
Here the notion of programming is emphasized to highlight the importance of
strict description rules of the algorithm, even if the algorithm is executed by
a human, not a computer.
5. Finally, the spiral continues on a higher knowledge level by having better
algorithms which are more accurate or more general, or can open new horizons
in achieving other types of computations.
Figure 1.1. – The concept of the “creativity spiral”.
A hardcopy as presented by Buchberger and the Theorema Working Group (1998).
In this approach not only computation (Aristotle) and conclusion (Price) appear,
but also programming which is mainly in focus since the introduction of computer
based calculations that became more and more complex during the development of
mathematics and computers since the 1940’s (Wikipedia (2015b)). Also the role of
inventing a conjecture is a definitive part of Buchberger’s approach which highlights
importance of “teaching invention” concerning “teaching mathematics”.
6
1.1 Proof and proving in mathematics education
Like the subject “mathematics” has different definitions, the most important notions
of this thesis might also be defined slightly differently. In this dissertation the
Merriam-Webster definitions of the following notions will be used (see http://www.
merriam-webster.com):
An algorithm is a set of steps that are followed in order to solve a mathe-
matical problem or to complete a computer process.
Aconjecture is an opinion or idea formed without proof or sufficient evidence.
Reasoning is the process of thinking about something in a logical way in
order to form a conclusion or judgment. (The words justification and argu-
mentation will also be used as synonyms.)
Aproof or proving is a test which shows that a calculation is correct.
Atheorem is a formula or statement that can be proved from other formulas
or statements.
In this dissertation the notions of reasoning and proof will be distinguished: a proof
must be a strict reasoning with usually formal steps. A non-strict reasoning may
contain minor gaps in the process of thinking and it may focus on the major ideas
or concepts only, by omitting some computations or special cases.
Bishop et al. (1996) address proofs and proving in a dedicated chapter in the In-
ternational Handbook of Mathematics Education. In its introductory words Hanna
and Jahnke emphasize that “proof is an essential characteristic of mathematics and
as such should be a key component in mathematics education” (Hanna and Jahnke,
1996, p. 877). It is a reflection of mathematical practice and also an essential tool
for promoting mathematical understanding.
Despite it is considered the typical approach of mathematical progress, the
definition–theorem–proof (DTP) model is criticized by many (for example Thurston
(1994)) to be the most faithful description how the process of understanding works
among mathematicians. This is why it is questionable that in reflection of practice
DTP can be the best approach.
Until the 1950’s, however, DTP was the “necessary evil” in mathematics education,
but playing a role mostly in geometry classes where proofs were introduced. But
instead of being a source of deeper mathematical understanding, proofs were rather
a ritual by simply memorising classical proofs. This could be one of the reasons why
curriculum reforms in the 1960’s moved towards the direction to not use proofs at
all, also by abandoning DTP. One of these trends is the back-to-basics movement
associated with the work of Bloom (1956); Gagné (1967); Ausubel and Sullivan
(1970).
This trend was attacked from the very beginning by a number of important crit-
ics who emphasized that the back-to-basics movement did not imply any real un-
derstanding of what was learned (Skemp (1976); Freudenthal (1979)). Others,
e. g. Pólya (1973); Silver (1985) suggested the introduction of heuristics such as
7
Chapter 1 Proofs in education
instruction by discovery,cooperative learning,learning through problem-solving, and
classroom interaction. Also constructivism (von Glaserfeld (1983); Cobb (1988);
Kieren and Steffe (1994)) became an influential theory of mathematics education.
The common property that all of these movements focus on heuristic explanation
and understanding but not so much on formal proofs.
In the beginning of the 21st century there are still several movements with signif-
icantly different visions about mathematics, teaching of mathematics, proofs and
teaching of proofs. Among others:
The vision of the need for using the DTP method rigourously in secondary
education is well supported by Balian et al. (2004) (among the authors is
Fields Medalist Serre). Also Finnish computer scientist Back emphasizes the
importance of structured derivations to teach formal proofs in the classroom
(Peltomäki and Back (2009)).
On the other hand, reasoning is mentioned 3 times in the document Position of
the European Parliament adopted at first reading on 26 September 2006 with a
view to the adoption of a recommendation of the European Parliament and of
the Council on key competences for lifelong learning, and only understanding
of proofs is highlighted in its section 3. Mathematical competence and basic
competences in science and technology:
“An individual should be able to reason mathematically, understand
mathematical proof and communicate in mathematical language,
and to use appropriate aids.
A positive attitude in mathematics is based on the respect of truth
and willingness to look for reasons and to assess their validity. . .
Individuals should also be able to recognise the essential features of
scientific inquiry and have the ability to communicate the conclu-
sions and reasoning that led to them.1
Clarifying the difference between proving and reasoning is an important question.
Biermair (2014) points out that classroom reasoning can be considered as a preformal
proof, introduced by Blum and Kirsch (1991), which may be a preliminary step
before learning formal proofs. Hammer (2009) defines preformal proof as a “chain
of arguments which are coherent and internally consistent, and serve not only the
formal and symbolic representation”.
1.1.2. Computer based proofs in mathematics
As Davis (1993) points out, “computer has acted as a leavening agent in math-
ematics, revining an interest in algorithmic and discrete methods, leading to in-
1http://www.europarl.europa.eu/sides/getDoc.do?type=TA&reference=
P6-TA-2006-0365&format=XML&language=EN
8
1.1 Proof and proving in mathematics education
creased reliance on constructive proofs, and making possible new ways of justifica-
tion, such as those that make use of computer graphics”. What is more, Horgan’s
1993 thought-provoking article in the Scientific American (Horgan (1993)) claims
that mathematicians can now establish the validity of propositions by running ex-
periments on computer, and to do mathematics is increasingly accepted without
concerning themselves with proof at all.
Hanna and Jahnke give examples (Hanna and Jahnke, 1996, p. 882) of non-
traditional methods zero-knowledge proofs (Blum (1986); Goldwasser et al. (1985)),
holographic proofs (Cipra (1993); Babai (1994)) and the creation and verification
of extremely long proofs such as that of the four-colour theorem (Appel and Haken
(1977)), or a more recent result on partially solving Erdős’s discrepancy conjecture,
Konev and Lisitsa (2014)). In the book Proof and proving in mathematics educa-
tion (Hanna and de Villiers (2012)), sponsored by the International Commission on
Mathematical Instruction (ICMI), J. M. Borwein summarizes the modern approach
of a typical mathematician by giving various other examples (Borwein (2012)). This
confirms influence of computers indeed resulted in a radical shift in mathematical
practice, also in providing insight and illustration. Despite the initial disagreements
and discussions of the validity of these methods, computer based proving is today
more widely accepted and used by the mathematician community as before.
But there are still doubts, and criticism comes often from mathematicians. For
instance, the Kepler conjecture (Wikipedia (2015f)) about sphere packing in the
three dimensional Euclidean space, was already justified by Hales in 1998 with a
proof by exhaustion involving the checking of many individual cases using complex
computer calculations. Unfortunately, Hales’ proof was not fully accepted by the
referees who were just almost certain of the correctness of the proof. Recently, after
several years of related work, in 2014 Hales and his “Flyspeck” project team finally
created a formal proof using a combination of proof assistant software Isabelle and
HOL Light.
In Hales’ case the proof uses exhaustion which means that a computer (or a set of
computers, or a cloud as in Rokicki et al. (2010) which required 35 CPU-years of
idle computer time) verifies a finite (but very large) number of calculations. Thus
human verification of the proof cannot be working by checking each calculation
manually, which actually means that Hales’ proof is not yet widely accepted by the
community, despite of the facts that Hales and his team with more than 20 members
fully documented each step of the proof, used a verified C compiler, and a verified
operating system. (The verification of the whole proof took about 5000 CPU-hours,
see Hales et al. (2015) for details.)
With no doubt there are some celebrated representatives of computer based mathe-
matics who implicitly or explicitly claim that humans may no longer play an impor-
tant role not only in proving, but in discovering mathematics: Zeilberger’s Elemen-
tary Textbook on plane geometry (Zeilberger (2001)) contains only computer gen-
erated statements and proofs. Another example is Buchberger’s Theorema project
9
Chapter 1 Proofs in education
(Buchberger et al. (2005)) aiming at computer-aided mathematical theory explo-
ration. While the Theorema project focuses on being a general explorer and prover,
Recio and Vélez (1999) sketch up a special system for Euclidean geometry stating
that the computer algebra background is already open to support explorations.
The Euclidean geometry is indeed “exhaustible” as Chou (1987) illustrates that
by providing machine generated proofs of 512 elementary geometry theorems with
almost no human intervention. In fact the mastermind in the background is the hu-
man here by creating effective algorithms. But it is remarkable that with very little
help the computer is already capable of sketching an example figure, to formalize
an equation system, to solve it, and to conclude the consequence (see Chen et al.
(2014) for recent research in this field).
The idea of “exhausting Euclidean geometry” can also be confirmed theoretically in
the following sense. Tarski established the first-order theory of Euclidean geometry
in 1949 (Monk (1976)) and refined it until his death 1983. The final result of his
work is summarized in Schwabhäuser et al. (1983). Tarski’s system covers the Eu-
clidean geometry, and is decidable, thus all sentences can be algorithmically proven
or denied (see Sec. 1.1.6.6 for more details). Narboux (2007c); Narboux and Braun
(2013) demonstrate example translations of many theorems elaborated by Tarski to
a computer assisted proof system, Coq (Coq development team (2004)). Finding a
proof of a given statement can be however slow, but since it is algorithmically finite,
by using faster computers one can speed up the decision process.
That is, the technical background seems ready to support producing formal proofs
for certain theorems on several areas of mathematics. To cover a research field fully
may also be possible theoretically: according to Tarski’s results, this is the case
for Euclidean geometry. But practically, the speed or memory resources of todays’
computers are not always ready to formally prove even some simple theorems (see
Sec. 1.2.4). Also there are various approaches (see Sec. 1.1.6) which may result in
fast, acceptable or too slow computations, or in certain situations they may run out
of resources before completing the proving process (see Chapter 2, Tab. 2.1). As
a consequence, a careful study is required to select the best possible mathemati-
cal models and their most effective implementations on computers (see Chapter 2,
Sec. 2.2).
1.1.3. The teacher’s role
When introducing computer based steps in the education process the teacher’s role
may be slightly changed. In this subsection some arguments are listed that teach-
ing proofs by using computers should not diminish the role of the teacher in the
classroom.
Today’s constructivist teachers have seemingly minor activity in the classroom than
before (Kieren and Steffe (1994)), but recent studies focus on importance of the
teacher, and many reports underline that there is a need for the role of “moderator
10
1.1 Proof and proving in mathematics education
of mathematical arguments” (e. g. Lampert et al. (1994)). Hanna and Jahnke also
highlight that
. . .recent studies confirm that it is crucial for the teacher to take an active
part in helping students understand why a proof is needed and when it
is valid. A passive role for the teacher also means that students are
denied access to available methods of proving. It would seem unrealistic
to expect students to rediscover sophistical mathematical methods or
even the accepted modes of argumentation. (Hanna and Jahnke, 1996,
p. 887)
In this thesis dynamic geometry systems (DGS) are in focus. A dynamic geometry
system (or interactive geometry software, or dynamic geometry environment) is a
computer software tool which allows one “to create and then manipulate geometric
constructions, primarily in plane geometry” (Wikipedia (2014c)). In most such
systems, the user starts to construct a geometric figure by putting a few “free”
points and using them to define new objects such as lines, circles or other points.
After some construction steps are done, the user can move the free points and see
how the construction changes.
Lin et al. (2012) compared six scientific papers to support students to distinguish
between conjectures and proofs. Four papers of the six were chosen of a 2000 Edu-
cational Studies in Mathematics (ESM) special issue related to DGS software. Lin
et al. found that the role of the instructor (or “teacher” or “teacher educator”) was
a common theme across all six studies. The teacher had to establish the classroom
social norms that guided the acceptance or rejection of participants’ mathematical
arguments.
Lin et al. (2012) found this principle the most important one for designing tasks
to support this distinguishing process (which is called transition in their terminol-
ogy). Their second principle, based upon the papers, was to generate a desire in the
students to engage in proof. Lin et al. mention this as “needs related to the social
norms established in the classroom” which presumes the classroom community in-
cluding other students to be present. The comparison in Lin et al. (2012) highlights
that not all the six papers utilize a computer, so that they hesitate claiming that a
technological environment is particularly important.
Another result in Lin et al. (2012) is to support the final step of the transition,
i. e. the proof itself, by providing additional principles. Most of these principles
assume a human classroom background instead of a pure computer based learning
process. The listed tasks include example argumentations of imaginary students
(“Jamie’s solution. . .”, “Dana claimed. . .”) which hypothesize that the learner is
not alone, but will discuss the argumentations with the group members, and there
should be a natural competition to convince each other.
Lin et al. also emphasize that a proof is not only about validity, but the learners
could consider qualities such as “simple”, “efficient” or “elegant”. One can insist
that some of such qualities may be measured or decided by computer algorithms as
11
Chapter 1 Proofs in education
well. Maybe, some can be, but not all. Sometimes a proof is just “surprising” or
“beautiful”, and these properties can hardly be algorithmized.
Hanna and Jahnke add some other arguments to make a difference between rigorous
mathematical proofs (which can be machine generated today in many cases) and
classroom proofs:
While mathematicians can afford to focus almost exclusively upon math-
ematical complexity, teachers have to deal with a high level of episte-
mological complexity. . . Teachers cannot avoid this challenge by simply
conveying the concepts of modern axiomatics. On the contrary, for each
new mathematical topic they have to interpret afresh the complex rela-
tionship between deductive reasoning and application of mathematics.
(Hanna and Jahnke, 1996, p. 902)
Thus Hanna and Jahnke suggest expanding de Villiers’ “verification, explanation,
systematization, discovery, communicationmodel (de Villiers (1990), see Sec.1.1.8,
c.f. Buchberger’s creativity spiral) by adding functions including “construction of
an empirical theory”, and “incorporation of a well-known fact into a new framework
and thus viewing it from a fresh perspective” to extend the teacher’s role. They
add that “the key goal is understanding”, thus the proof teaching process must be
“appropriate in its form to the grade level and the context of instruction”. Also
the “classroom context and the level of experience of the students may. . . make it
appropriate to emphasise some points at the expense of others”.
The outcome of these statements confirms that the teacher may have to create
more or less different empirical theories and frameworks for the different groups of
students, even for the same grade level, because of the different background or inter-
est of the individuals. Thus using exactly the same computer software in different
groups for supporting the teaching of the same theory can be a challenge since each
classroom use should be considered individual and unreproducible. Mariotti (2000),
however, made successful experiments with students by using Cabri-géomètre (here-
after Cabri) to support the traditional “straightedge and compass” based geometry;
in her classroom experiment Cabri was able to extend its own menu system by
new commands when the student got already familiar with a new concept during
constructing for example the angle bisector by using basic steps. This means that
computer software may be prepared for various sets of deployments in advance, and
in the concrete classroom situation only just a few tools are shown by default.
Even if computers are used to support some parts of the proof teaching process,
the teacher still has a key role in choosing the best fitting software, to use the best
fitting materials, and if needed still apply some minor modifications on them (e. g.,
to set up an individual configuration of the applicable tools in a DGS) for the given
classroom scenario.
12
1.1 Proof and proving in mathematics education
1.1.4. Teaching Euclidean proofs: arguments and traditions
Hanna and Jahnke (1996) discuss also the relationship of mathematics and empirical
sciences. Geometry in the classroom “has an undeniable empirical dimension. There
is an ongoing interplay between the figures students draw and those entities which
are the subjects of the geometrical theorems they prove. The possibility to change
the idealistic point of view (i. e., working in pure mathematics) and the experimental
world (i. e., doing measurements manually) seems an excellent discipline to deal with,
at least in the classroom.
The Euclidean paradigm, as Hanna and Jahnke remark, defines mathematics by
transferring “truth to a new theorem from axioms which are intuitively true and
from theorems which have already been proven. A new insight is reduced to insights
already established. This is a key observation about how science (and, especially
mathematics) in general works: it is a “true reflection of the subjective feelings of a
mathematician producing a proof.
On one hand, Hanna and Jahnke claim that this paradigm can not always be ade-
quate, including beginners’ approach or when exploring new areas of mathematics:
curriculum should reflect the richness of current mathematical practice. On the
other hand, they state that “Euclidean geometry viewed as an empirical theory is
one of the most well-established theories of all”, supporting the fact that experiment
can certainly help beginners to explore idealistic worlds.
As Lin et al. (2012) remark, the ease of experiments can be a disadvantage as well.
Many students, independently of the level of education “have the persistent, robust
misconception that empirical arguments are proofs”. Several reports also confirm
that
. . .increased availability in school mathematics instruction of . . . DGS. . .
raised the concern that such programmes would make the boundaries
between conjecturing and proving even less clear for students. . . [They]
allow students to check easily and quickly a very large number of cases,
thus helping students “see” mathematical properties more easily and
potentially “killing” any need for students to engage in actual proving.
There is however no general consensus about the role of Euclidean proofs in today’s
secondary education. Some share Bourbaki’s (actually, Dieudonné’s) 1959 opinion
to “push Euclid back” (Dieudonné (1959)). This idea quickly removed Euclidean ge-
ometry from the secondary schools in France in the 1960s for ten years. Nevertheless,
Euclidean geometry later resurrected in a slightly different form in French schools.
Movements pro and contra Euclid resulted in several examples of removal and return
of Euclidean proofs in the classroom during the last decades (see e. g. Rembowski
(2012) for an example in East Germany) including2:
2On MathOverflow, a question and answer site for professional mathematicians there is a recent
discussion including several different points of view starting with the provoking title “Is Euclid
dead?” at http://mathoverflow.net/questions/152352/is-euclid-dead.
13
Chapter 1 Proofs in education
In the United States proofs are usually introduced only at university level. An
influental curriculum reform document was published by the National Council
of Teachers of Mathematics (NCTM) in 1989. The reform document (the
“NCTM Standards”, which were followed by two additional volumes3in 1991
and 1995) suggests a shift of emphasis in the teaching of geometry for the
secondary level. Its 2009 “successor”, the Common Core State Standards4
lists mathematical practices for the K-12 age (that is, from kindergarten to
the end of secondary school) like
reason abstractly and quantitively,
construct viable arguments and critique the reasoning of others,
attend to precision,
look for and make use of structure,
look for and express regularity in repeated reasoning.
Detailed descriptions of the Core Standards are published in separated docu-
ments. An example is “High School: Geometry » Circles”,5in such documents
one can explicitly find the expected practices like “Construct the inscribed and
circumscribed circles of a triangle, and prove properties of angles for a quadri-
lateral inscribed in a circle. The Core Standards have been adopted in most
states (Wikipedia (2015c)) which means that a definitive change is expected
in teaching Euclidean proofs in the United States soon.
Many countries in the European Union do not directly support Euclidean
proofs at the moment, since non-formal reasoning is preferred (see page 8).
There are however countries with deeper traditions in teaching Euclidean
proofs, and since their systems conform not immediately to the European
standards, they still may have stronger emphasis on teaching Euclidean geom-
etry.
Such an example is Hungary where the first exercise of the centralized matura
exam was always a Euclidean proof between 1973 and 2005. Now there is a
two-level matura system and the Euclidean proofs are required only on the
higher level. (See Csabai (2011) for more details.) A typical proof exercise is
as follows: “Square ABCD has its vertex Alying on the y-axis, its neighbor
vertex Bis lying on the x-axis; prove that coordinates of center Kof the
square are either equal or opposite of each other. (Year 2014, problem 8.6)
Traditionally, Euclidean geometry plays an important role also in the International
Mathematical Olympiad (see Tab.1.1, table entries and other data are collected from
3http://www.nctm.org/Standards-and-Positions/Principles-and-Standards/
4http://www.corestandards.org/Math/Practice/
5http://www.corestandards.org/Math/Content/HSG/C/
6http://dload.oktatas.educatio.hu/erettsegi/feladatok_2014tavasz_kozep/k_mat_
14maj_fl.pdf
14
1.1 Proof and proving in mathematics education
https://www.imo-official.org). In most of the last competitions one-third of the
problems were set in Euclidean geometry. (The table suggests that there are other
types of problems than proving—in fact, only the wording of some problems are
not about proving, but the expected correct answer should always contain a proof!)
This fact highlights that the traditions of teaching Euclidean geometry are very
strong, and influental countries (including past winners China,Republic of Korea,
the United States,Russia,Singapore and Thailand) put an emphasis on it, at least
during competition trainings.
Year Country Problems Proving type
problems
Euclidean
geometry problems
2014 South Africa 6 5 2
2013 Columbia 6 5 2
2012 Argentina 6 4 2
2011 The Netherlands 6 4 1
2010 Kazakhstan 6 3 2
2009 Germany 6 4 2
Table 1.1. – Problem types of the International Mathematical Olympiads
in “proving” and related to Euclidean geometry of the last 6 years
1.1.5. Dynamic geometry tools
In Borwein’s report about a mathematician’s approach to modern mathematics (Bor-
wein (2012)) several figures are included to support the need of a DGS for explor-
ing new theorems. In his paper Borwein used Cinderella (http://cinderella.de),
and also Maple (http://www.maplesoft.com) for symbolic computations, but there
were several research initiated in the last 15 years to test proof support enhancements
of different DGS including Cabri (http://www.cabri.com) and The Geometer’s
Sketchpad (http://www.dynamicgeometry.com), see Mariotti (2000); Marrades and
Guttiérrez (2000); de Villiers (1999) for some first reports.
This dissertation focuses on GeoGebra (Hohenwarter (2002); Hohenwarter et al.
(2013, 2014a)), the dynamic mathematics software (DMS) started by Hohenwarter
in 2001 and continued later also by a team of open source developers. Wikipedia
(2014c) shows a list of more than 50 different dynamic geometry software packages
(including free and proprietary ones as well). Many software items of this list are
no longer maintained, but most of them at their debut were influental members
of the software market by introducing unusual approaches, new features, or novel
technologies. Generally speaking, current market leader DGS are sequels of a more
than 30 years tradition, first embodied in The Geometric Supposer in 1981 (Schwartz
and Yerushalmy (1983)). The earliest tool, Sutherland’s Sketchpad (Sutherland
15
Chapter 1 Proofs in education
(1963)) was already able to create and manipulate geometric constructions, thus it
is usually considered as the generic ancestor of all dynamic geometry tools.
The reason why GeoGebra was chosen as the main focus in this thesis is that cur-
rently it is the most widely used DGS in mathematics education in the world.7Also
GeoGebraTube (Hohenwarter et al. (2014b), available at http://tube.geogebra.
org), its primary repository for freely available teaching materials, is a dynamically
growing database with more than 200,000 materials (as of May 2015).
A search for “proof” on GeoGebraTube shows at least 800 uploaded materials in
this topic. Another search could be performed by using non-English keywords like
“prueba” or “preuve” which also result in hundreds of additional materials. Many of
these materials show a visual proof of Pythagoras’ Theorem, but also visual proofs
for the Cosine and Sine Rule can be found (among others, see Fig. 1.2). Some of
these materials make a strict distinction between visual proof (i. e., verification by
samples) and formal proof (which is in most cases simple algebraic derivation shown
step-by-step on the screen), but it is often the case that “proofs without words” can
be found.
An example for a graphic proof of Pythagoras’ theorem can be seen in Fig. 1.3. Here
a slider can be dragged to continuously change the location of the triangles (except
the top-right one) between the two extremal positions: the first one (slider is on
the left) shows squares with area a2(top-left) and b2(bottom-right) and four times
the triangles with area ab/2; the second one (slider is on the right) shows the same
triangles but with only one area c2in the middle.
Further analysis of the GeoGebraTube system and materials (and other learning
resources in the Internet, see Libbrecht (2015)) is out of scope in this dissertation.
Since GeoGebra and GeoGebraTube are popular ways in today’s schools to teach
mathematics, delivering teaching materials by using GeoGebra and GeoGebraTube
seems an easy way to share learning resources. The final examples of this dissertation
have also been uploaded to GeoGebraTube as a GeoGebraBook (see on page 201,
Fig. 3.20 on page 218).
7According to the webpage http://99webtools.com/pagerank_tool.php in February 2014
Google PageRank for GeoGebra is 7. This number is the same as for Maple, less than for
Mathematica (8), and more than for Cabri, Cinderella, The Geometer’s Sketchpad, DrGeo (6),
WIRIS,Geometry Expressions (5), Geometry Expert,kig and Live Geometry (4); the more the
better.
Wikipedia (2014d) remarks that Google PageRank may be considered obsolete. For
this reason one may request the Global Rank popularity from the Alexa web informa-
tion company at alexa.com. The result mostly confirms the validity of Google PageRank
since the February 2014 results are: 9475. Mathematica, 78826. GeoGebra, 178487. Maple,
335343. WIRIS, 1288617. Cinderella, 2063304. Geometer’s Sketchpad, 4425178. Geometry Ex-
pressions, 5295648. DrGeo, 13982880. Geometry Expert. kig and Live Geometry could not
be faithfully measured since they are hosted on KDE’s and Codeplex’s server (which listed as
20989. and 2238. globally); the less the better.
16
1.1 Proof and proving in mathematics education
Figure 1.2. – First results of GeoGebraTube search for keyword “proof”
as of May 2015. Sorted by rating. 6 of 18 materials is about to visualize a proof of
Pythagoras’ Theorem.
1.1.6. Automated theorem proving methods
In this subsection an overview of some well known automated theorem proving (ATP)
methods is taken. The theory of ATP, and more specifically, automated deduction
in geometry (ADG) are very well elaborated theories founded in mathematics and
computer science disciplines including formal logic,traditional algebra,algebraic ge-
ometry and computer algebra. The biannual series of ADG conferences published
proceedings for each conference as a Lecture Notes in Computer Science book since
1996 (LNCS 1360, 1669, 2061, 2930, 3763, 4869, 6301, 6877, 7993 and 9201) by
Springer.
In the 2012 conference proceedings book Beeson (2013) summarizes the current
state of the art of computer based geometry theorem proving with the following
“workaround” diagram:
Geometric Theorem Algebraic Translation
↓ ↓
Geometric Proof Algebraic Proof
Instead of following the direct connection from “Geometric Theorem” to “Geomet-
ric Proof”, geometric proofs can be achieved by translating the geometric theorem
to an algebraic problem, proving it (algebraically), and then accept the algebraic
proof instead of the geometric one. This “workaround” is required because the clas-
sic axiomatic way—and also artificial intelligence (AI) based methods—of proving
Euclidean theorems still cannot be completely automatized, as Beeson emphasizes,
17
Chapter 1 Proofs in education
Figure 1.3. – Visual proof of Pythagoras’ Theorem in GeoGebraTube
at http://www.geogebratube.org/student/m7078 by using animated
rearrangement.
. . .we still do not have machine-found or even machine-checkable geo-
metric proofs of the theorems in Euclid Book I, from a suitable set of
first-order axioms—let alone the more complicated theorems that have
been verified by computerized algebraic computations.
Despite this some remarkable attempts in the axiomatic direction are shown in
Sec.1.2.4 and Sec.1.2.5. On the other hand, unfortunately there are obstacles in all
steps of the diagram, just to name a few:
1. The algebraic translation may require careful setup of the construction includ-
ing “easy” numerical positions of some of the input points, but these input
points must be general enough to keep the original theorem for the whole
process. (See Chapter 2, Fig. 2.10 on page 140 for a basic example.)
2. An algebraic proof can be computationally slow even for a machine and un-
readably long and complicated for a human, also the algebraic steps usually
hide the geometric meaning (see an example on page 41). Proving inequalities
may be computationally even slower.
3. The algebraic proof sometimes requires some extra conditions to be correct,
which may not be translatable to straightforward geometric content (see foot-
note 8 on page 215).
18
1.1 Proof and proving in mathematics education
There are, however, several algebraic or semi-algebraic approaches which try to ad-
dress these problems with more or less success. Here the most well known algorithms
are summarized.
1.1.6.1. Wu’s characteristic set method
Historically one of the first methods was Wu’s characteristic set method based on the
generalization of the one-variable polynomial division algorithm. This generalized
algorithm is called pseudodivision and invented by the Chinese mathematician Wu
Wen-Tsün in the 1970s (Wu (1978)). Wu’s algorithm was utilized for geometry
theorem proving first by Chou (1987).
Chou’s approach consists of four parts:
1. Algebraization of the problem.
2. Reduction of the algebraic equation system to triangular form.
3. Successive pseudodivision.
4. Reading off the algebraic degeneracy conditions and converting them to geo-
metric statements.
A detailed example of Wu’s method can be found in Appendix A, Sec. A.1. Also
(Cox et al., 1991, chapter 6, §5) demonstrates this method with another example.
It is widely accepted that Wu’s method is the fastest algebraic method in most cases,
but its success is highly dependent on the input data, thus its general utilization is
questionable. In Chapter2, Sec.2.3.6 some examples are shown where other methods
yield a more useful result for classroom use.
1.1.6.2. Gröbner bases
Maybe the most well-known method to prove geometry theorems algebraically is the
Gröbner basis method introduced by Kapur (1986) and Kutzler and Stifter (1986).
Similarly to Wu’s method, it usually consists of the following parts:
1. Algebraization of the problem.
2. Analysis of the algebraic equation system.
In its basic version it is not capable to provide degeneracy conditions, so it will
be extended as follows (by improving the algorithm suggested by Recio and Vélez
(1999), following the idea of Chou’s):
1. Algebraization of the problem.
2. Turning the equation system into an equivalent system by eliminating depen-
dent variables.
19
Chapter 1 Proofs in education
3. Reading off the algebraic degeneracy conditions and converting them to geo-
metric statements.
In both variants Step 2 is computationally heavy for many elementary Euclidean
geometry theorems. In fact, Step 2 is computed by calculating the Gröbner basis of
a set of multivariate polynomials which is a general method not only for geometry
theorem proving but to solve a wide range of other mathematical problems. When
computing a Gröbner basis of a set much more extra information is yielded than for
Wu’s method, thus this technique is theoretically much slower for the general case.
On the other hand, effective computation of a Gröbner basis has a huge literature
and there are remarkable results which promote this method nearly so effective like
Wu’s method is, and has some different advantages and extra features. What is
more, in classroom situations it usually overperforms the other methods. Thus in
this thesis the focus is on finding acceptable implementations to compute Gröbner
bases (see Chapter 2, Sec. 2.2.1) and the very details of the usage of the method is
studied in Chapter 2, Sec. 2.3.
1.1.6.3. The area method
The area method has been invented by Chou et al. (1993). It produces human-
readable proofs and can efficiently prove several Euclidean geometry theorems.
“Human-readable” in this case means a different style than traditional textbook
proofs usually have: it means readability for a mathematician. Even the atomic
expressions in the proof steps have clear and intuitive geometrical meaning.
The area method is neither a pure algebraic, nor a pure axiomatic method, but
rather between them. It can be summarized in the following steps:
1. Setting up the problem by introducing points and constructive statements
(without using coordinates).
2. Algebraization of the conclusion (goal equality, that is, the representation of
the thesis).
3. Eliminating the introduced points in reversed order by applying a set of lem-
mas.
4. Simpify the goal equality.
5. Collecting (and geometrizing) the degeneracy conditions occured in the above
steps.
The area method introduces geometric quantities like ratio of parallel directed seg-
ments,signed area and Pythagorean difference. Janičić et al. (2012) give an ex-
hausitve explanation about the details of the area method. A short demo output
of the method can be found on page 75, and a demo summary of the used steps on
page 40.
20
1.1 Proof and proving in mathematics education
1.1.6.4. The full-angle method
Chou et al. (1996) introduce a very similar method like the area method, but its
basic geometric quantity is the notion of full-angle:
Definition. A full-angle consists of an ordered pair of lines land mand is denoted
by [l, m]. Two full-angles [l, m]and [u, v]are equal if there exists a rotation K
such that K(l)kuand K(m)kv.
The derivation steps are otherwise basically the same as for the area method. Baeta
and Quaresma (2013) demonstrate a short example of the method.
The benefit for using the full-angle method is to obtain even more “readable” proofs,
especially for those theorems which describe relations between circles and angles.
1.1.6.5. The Geometry Deductive Database method
Yet another approach towards axiomatic proofs is the Geometry Deductive Database
(GDD) method, introduced by Chou et al. (2000), investigated by Gao and Lin
(2004), and further refined by Ye et al. (2010b). This method works with a remark-
able size of geometry database containing such “typical tricks” which are usually
used in human proofs, mostly in textbooks. In this way the human thinking is
modelized as closely as it is required to automatically create simple chains of argu-
mentation.
This method is still in work-in-progress, but it is already capable of producing
visualized proofs for classroom use. In Sec. 1.2.5 the GDD method is demonstrated
in details by showing an example.
The main point of this method is to automatically produce proofs to provide the
students with a better understanding. Thus its final output is not necessarily a
textual step-by-step explanation, but possibly a sequence of diagrams or an inter-
active animation. Thus the GDD method can be considered a visual adaptation of
structured derivations (Peltomäki and Back (2009)).
1.1.6.6. The axiomatic way
As mentioned above, the pure axiomatic way for proving Euclidean theorems is much
harder to be automatized than using any of the already listed methods. One of the
main difficulties is to turn visually obvious facts into precise axiomatic statements.
There are more axiomatic systems which can be used to define plane geometry. The
most well known are Hilbert’s system (Hilbert (1899), containing 20 axioms) and
Tarski’s geometry (Schwabhäuser et al. (1983), with 10 axioms). Both systems have
already been used to axiomatically prove the most well known Euclidean theorems,
21
Chapter 1 Proofs in education
both manually and in an automatized way. However, the (semi-)automatized pro-
cess of the Euclidean theorems has just recently been started by Narboux and his
colleagues (Narboux (2007c)). Tarski’s system is investigated in details in Sec.1.2.4.
Here it is important to emphasize that
Tarski’s system has the unusual property that all sentences can be writ-
ten in universal-existential form. . . This form has all universal quantifiers
preceding any existential quantifiers, so that all sentences can be recast
in the form uv . . . ab . . . This fact allowed Tarski to prove that Eu-
clidean geometry is decidable: there exists an algorithm which can de-
termine the truth or falsity of any sentence. Tarski’s axiomatization is
also complete.
That is,
every sentence or its negation is a theorem provable from the axioms.
(Wikipedia (2014e))
1.1.6.7. Methods based on artificial intelligence
The very first method in attempting to implement automatized geometry theo-
rem proving was actually appeared in the 1950’s by Gelernter (1959), based on AI
approach. Later, from the end of the 70’s, based on Gelernter’s work a Prolog
implementation “GEOM” was published by Coelho and Pereira (1986).
In some sense, the GDD method can also be considered an AI based algorithm
(see page 26). Also some other systems like Chypre (Bernat (1996)), Cabri-Euclide
(Luengo (1997)) or Géométrix (see page 84) are members of this category.
1.1.6.8. Other methods
The list above contains only the most well-known methods. There are other ways
which are not widely used or known yet, including Kortenkamp’s statistical method
(see page 38), the areaCAD method (Robu (2007)), the mass point method (Zou
and Zhang (2011)), or Recio’s exact test method (Kovács et al. (2012)). This last
one is demonstrated in Chapter 2, Sec. 2.4.
1.1.7. The ADG supply
In this section in focus is what ADG currently supplies for classroom education,
namely the possibility of obtaining readable proofs from ADG systems.
As Recio and Vélez (1999) summarized, the mathematical side of the computer aided
proving had already been more or less well founded, ready to use and what is left,
an educational software tool is required to fill the gap:
22
1.1 Proof and proving in mathematics education
. . .the interaction of such a tool with our method could provide an intelli-
gent, interactive environment for learning Euclidean geometry. . . Maybe
this is too much for a future dream. . . But it is, anyhow, a promising
research, in our opinion.
Recio and Vélez here used the Gröbner basis method for the algebraic computations.
15 years after Recio’s and Vélez’s publication (and more than 25 years after Chou’s
revolutionary book) the speed of computers increased so much that a typical personal
computer can produce proofs for most Euclidean theorems in reasonable time. Thus
speed seems not an issue anymore—the algorithms in the background use heavy
computations which may yield thousands of derivation steps being generated within
a second.
The detailed output of the algebraic geometry method is, however, not really useful
for the educational approach. This method turns the geometric figure into equations
first, then the equations must be solved by a long derivation. It is not unusual that
the steps fill hundreds of pages (see Appendix A, Sec. A.1 for a 23 pages long
derivation for Desargues’s theorem). Since the derivation is purely algebraic, it tells
nothing practical about the reason why the geometric theorem is true. It does not
help understanding at all, only supports an extra step in the verification whether
the statement is true or false. For the same reason, teaching of argumentation is not
supported by the algebraic geometry method, either. As an immediate conclusion,
one may consider the algebraic method as an effective way for getting a yes/no
answer to check the truth of a statement, but not for getting the derivation for the
classroom.
Some of the other ATP methods focus much more on reasoning, but most of them
are not directly applicable in the classroom, either. Probably the most fruitful
approach is to lay down a suitable axiomatic system specially prepared for secondary
school use. Bertot et al. (2004) describe such a system based on the proof assistant
system Coq (Coq development team (2004)). In the Coq system a rigorous formal
argumentation is required to prove theorems, and like in real life, a set of predefined
definitions and lemmas are already available. The teacher is able to fine-tune existing
frameworks to define the appropriate theory which covers the classroom topics, or
even to create a new framework. It is also possible to do minor changes for the
individual classroom, thus teaching with Coq (or a similar axiomaic system) is in
some sense a faithful reflection of mathematical practice.
This is, however, still far from being convenient enough and hence it is not very
practical yet. Coq is definitely a formal system, and all attempts already made
to convert Euclidean geometry into a formal logic system lose significant prop-
erties of the Euclidean paradigm. There is a large intellectual bridge needed to
turn not rigorous but visually obvious argumentation steps into rigorous formal
steps, and as such, this cannot be expected neither from the student, nor from
the teacher. From the educational perspective, Coq can still be a useful sys-
tem for teaching argumentation, but—according to the opinion of the author of
23
Chapter 1 Proofs in education
this thesis—not for Euclidean geometry yet. Instead, teaching formal logic or ab-
stract algebra in such a way seems to be a much better fitting scenario. The web
page http://coq.inria.fr/cocorico/CoqInTheClassroom collects some related
attempts to bring Coq into the classroom.
Another issue with axiomatic based reasoning is speed. Without a help of a human,
Coq can still compute the validity of a statement whether it can be proven or
(otherwise) it can be denied. But the processing time for this computation is still
out of bounds from the approach to be feasible for classroom use. That is, Coq
(or being more general, the formal logic method itself) can also compute a yes/no
answer (like the algebraic geometry method), but it is much slower. (See Sec. 1.2.4
for more details.)
That is, in praxis the algebraic geometry method is still more useful, although it
can be used only for getting a yes/no answer about the truth of a given statement.
In Chapter 2 one may see that there is an extra benefit for using the algebraic
geometry method, namely that one can get some extra conditions when exactly the
statement is true. In other words, a student may ask a question in a DGS if the
given property is true in his or her construction, for example if three given lines
are always concurrent (since he or she already checked a number of cases visually).
In this case the ATP subsystem may answer “yes, always”, “no, never”, but also
“yes, under certain conditions”, by giving the conditions in a form for the student
to understand.
Since neither the algebraic, nor the axiomatic way is directly applicable in teaching
argumentation, the other methods (listed in Sec. 1.1.6) in-between may be possible
alternatives. By using the area method, the full-angle method or the GDD method
diagrammatical proofs can be produced like Wilson and Fleuriot (2005) propose: so-
called forward-chaining and backward-chaining proofs can be created (see Fig. 1.4)
by using the output of the full-angle method. In a later presentation Wilson and
Fleuriot (2006) remark:
“We found the forward-chaining diagrammatic proofs intuitive, but they
cannot prove hard theorems alone. . . [The] backward-chaining diagram-
matic proofs [are] less intuitive but they can be used to prove hard the-
orems.
The details of the derivation steps raise another question. Both the area and full
angle methods create the readable proofs by showing atomic steps. From the edu-
cational point of view this granularity is only acceptable on the lowest level, i. e. at
the introduction of the basic concepts. Even if the diagrams look convincing, it
seems difficult to use them when the theorem to be taught has an elegant and sim-
ple proof with some references to lemmas being easy to refer than having complex
proofs atomically.
Ideally for the classroom use, a proving method should be able to change granularity
on demand, and to hide some unwanted details without losing the essence of the
proof. For most proving methods it is a common problem that the proof may consist
24
1.1 Proof and proving in mathematics education
5
A Diagrammatic Forward-Chaining Proof
Sean Wilson and Jacques D. Fleuriot ARW-05 Geometry Explorer
6
A Diagrammatic Backward-Chaining Proof
Sean Wilson and Jacques D. Fleuriot ARW-05 Geometry Explorer
Figure 1.4. – Example for diagrammatic proofs
by Wilson and Fleuriot (2005). The idea was originally published by the Chinese
ADG experts in the GEX project, and also further developed to be a “single, but
dynamically changed diagram” in Ye et al. (2010a,b).
of too many steps. Even if each step can be understood at elementary or secondary
level, the high number of steps makes the output not useful in the education. Thus
it would be desirable to combine atomic steps to “well visible”, separatable parts,
to reduce the number of steps to help the student to get an easier overview of the
proof. The desirable number of steps is as minimal as possible, and later these steps
could be refined into more detailed ones on a thorough study.
This idea would support Buchberger’s “white box, black box” (WB/BB) principle
(Buchberger (1990)) which is a clear summary of deciding when to study a proof
(or in general, a subarea of mathematics) in all details. When starting to study
a subarea the student should learn some “specific insights and techniques”, even if
they seem to be a “torture”—here Buchberger’s example is teaching integral rules
at the introductory level. But later, when the subarea is “thoroughly understood”,
many of the used techniques become trivial to the student, and it is better to free the
mind for creative activity—here Buchberger’s example is to use a computer algebra
system (CAS) instead. In such cases some atomic steps can be combined and the
atomic content can be fully considered as a black box.
25
Chapter 1 Proofs in education
However Buchberger himself mentions geometrical theorem proving as a possible
subarea for blackboxing (in particular Wu’s method and the Gröbner basis method
are listed), white box study of the atomic steps seem to be problematic from the
mass education approach. For the algebraic methods one reason is the high number
of atomic steps which cannot be grouped into smaller amount of black boxes, and
cannot be connected with a visible geometrical meaning. For the area and the full
angle methods the atomic steps are easy, but there are sometimes too many of them,
and it is too difficult to consider a grouped collection of them as a separated item.
On the other hand, both the area and the full angle methods (and also the recently
introduced mass point method) require additional definitions which may be beyond
the secondary level, and their output differ from traditional textbook proofs. Thus,
at least from the classroom perspective, much more attention is given to the GDD
method. This approach is not so effective as the above ones (both in speed and the
applicable set of inputs, see Ye et al. (2010b)), but it indeed produces traditional
readable proofs. This method seems to be a good candidate to be a tool in the
long term to support argumentation, however, it is still subject of perfecting at the
moment and its full step-by-step algorithm is not published yet.
In fact the GDD method is some kind of imitation of human thinking. Here it must
emphasized that it is not straightforward how a computer based tool can mimic the
traditional way of teaching proofs. The Chinese ADG experts made great efforts to
bring the human intelligence into a computer software as much as it is technically
possible. Ye et al. (2010b) remark, when pointing out the importance of intelligence
and heuristics to create an automatic visual proof with the GDD method:
In our opinion, human traditional proofs of geometry theorems require
enormous amounts of human intelligence. Even more intelligence is re-
quired for adding auxiliary elements.8Thus heuristics for adding auxil-
iary elements are necessary.
Finally, Ye et al. (2010b) acknowledge that “the success in using the traditional
methods for automated proving geometry theorems is very limited”. Only a relatively
small set of theorems can be proven in such a way.
In sum it is in fact impossible to select the best one of the available proving methods
for the whole Euclidean geometry—all methods have their strengths and weaknesses:
Algebraic methods are fast, but do not produce readable proofs.
Axiomatic methods are slow and their derivation are usually too precise for
the classroom.
“Readable” methods produce proofs by using non-classical geometric defini-
tions and do not work for many theorems. The best such method (GDD)
seems programmatically rather an algorithm using AI than a “simple” ADG
algorithm.
8Auxiliary elements are such new non-trivial objects added to the construction which help in
continuing the proof. One can call them “tricks” as well.
26
1.1 Proof and proving in mathematics education
Maybe this is the main reason why the Chinese ADG experts lead by Chou, Gao
and others, decided to use all major methods in their long term running project
“Geometry Expert” (GEX). In the latest versions of their software all prominent
methods can be used as candidates for proving methods (Ye et al. (2011)). In
Sec. 1.2.5 an overview of the GEX project is given.
Although the GEX tool is still rather a research software than an educational ap-
plication for direct classroom use, it is important to highlight its GDD method as a
possible step forward to teach argumentation in secondary schools. Ye et al. report
its limited usability from the researcher’s point of view, not the practical classroom
use which may be satisfactory already with the current achievements since just a
very limited set of the Euclidean geometry can be discussed on secondary level.
It is also needed to discuss if the newly available technology is helpful in promoting
the teaching of proofs at all. Despite the technical opportunities, the teacher may
still stop using computers if technology cannot add enough extra features to the
traditional teaching methods. Ye et al. emphasize that their “goal [was] to make it
easier for the user to read the proof of a geometry theorem with various dynamic
visual effects that the computer display and the mouse can offer”. But in fact
in the classroom the teacher can do similar steps on the blackboard as well by
continuously changing the figure with the chalk and the sponge. What is more,
personal communication with the teacher during the proof may be desirable for
more students than to use the computer individually but impersonally. Here it is
emphasized that the ADG supply is just one side of the coin, the other side is the
educational demand (see our final diagram on the gap between those in Fig. 1.37).
That is, the teacher’s presentation (including the students’ immediate feedback as
part of the presentation), like an interactive theater play, is probably onefold and
unrepeatable, however, the computer can also explain the details interactively over
and over again.
Although Recio and Vélez (1999) implicitly assumed the importance of teaching
Euclidean geometry in the modern era, it is still not straightforward how exactly it
could be supported by utilizing computers. In the time of writing their publication
the success story of DGS was just at its beginning. There might be other disciplines
of mathematics (like e. g. algebraic derivations, see Peltomäki and Back (2009))
which fit teaching proofs much better than geometry when computers are used. On
the other hand, experimenting with geometry objects seems a natural way to start
thinking about mathematics when utilizing a computer.
It seems that Euclidean geometry has been living its renaissance in the classroom
in the recent years, probably because of success of DGS tools. But the link is
still missing between conjecture and proof, specifically between DGS and ATP. In
this section a list of the technical barriers was made. However, to fill the gap, the
question is usually not really technical anymore, but educational.
27
Chapter 1 Proofs in education
1.1.8. The educational demand
In this section the focus is on the educational demand, that is the other side of the
gap is investigated. In the introduction of the section de Villiers’ model is discussed,
and then possible student activities are considered to follow the model. Activities
are typeset in bold face, and they will also be referenced in the forthcoming sections
in this chapter.
Boero (1999) describes a step-by-step research model of mathematics, consisting of
steps production of a conjecture formulation of a statement exploration of the
conjecture building a deductive chain organization of a proof formal proof.
For classroom application this model has been simplified by Ufer and Heinze (2009)
to steps find a conjecture generate a proof idea formal proof.
De Villiers gives a refined model (de Villiers (1999)) of his approach (de Villiers
(1990)) on the description how proofs can support students to understand math-
ematical concepts. He suggests the following steps in problem solving towards a
proof:
1. Introduction, prerequisites. The students should understand the topic, the
involved objects and they have a closer look of the applicable techniques.
2. Discovery. The students can use the related tools on their own and get com-
fortable enough with the topic as to allow the formulation of conjectures and
guesses. Not only classroom work may be done in this step, but homeworking
is also counted here.
3. Verification (testing). The students (with or without the help of the teacher)
make as many tests as required for being convinced about the conjectured
properties.
4. Intellectual challenge. The students collect and attempt to assemble as many
related pieces of information as possible to prepare for the systematic proof in
the next step.
5. Systematization (i. e., “the proof”). The students construct the actual solution
of the given problem. They try to present a clear and rigorous reasoning to
provide a satisfactory proof.
Following Hanna and Jahnke (1996) the preliminary preparation of an applicable
empirical theory and an appropriate framework are also put into Step 1 (“introduc-
tion, prerequisites”). This step may require much more time and experience than
one can expect since an approximate plan (a syllabus) is required to organize the
theory into smaller sections.
When using a proof assistant software (like Coq) the teacher needs to create these
sections in advance: these sections will be called a per theory framework (see
Tab.1.2) in this chapter. A per theory framework reflects the mathematical practice
well, and allows to explore the theory in smaller amount of theories which are easier
28
1.1 Proof and proving in mathematics education
to understand. In other words, students may require a certain amount of “rest time”
between “doses” of the newly explored theory. But after this “rest time”, i. e. during
the next class all the previously communicated information is assumed to be known.
This construction strategy should be kept in mind when a computer software is
planned to be used in the classroom. A research study on such a framework is
Mariotti (2000)’s experiment in Cabri, but general support for creating a complete
framework is not known among DGS tools at the moment. Some software tools,
however, support redefining or fine-tuning the default toolset on a “per file” basis,
for example GeoGebra offers user defined tools and toolsets to broaden or tighten
the default toolbar.
Steps 12345
Activity
Introduction
Discovery
Verification
Challenge
Systematization
1 Per theory framework X
2 Experiments X
3 Controlled discovery with questions X
4 Uncontrolled discovery (automatized) X
5 Level 1–6 verifications X X
6 Collecting relationships X X
7 Obtaining readable proofs X
8 Confirmation X
Table 1.2. – Possible ways for computer supported proving in education
according to de Villiers’ model
On the other hand, to get familiar with the involved mathematical objects and to
visualize their properties, using a DGS can be fruitful. Here the word experiments
(see Tab. 1.2) will be used to describe a wide range of actions including “trying
out” some features of a software tool (for example, simply drawing certain geometry
objects with no further defined task), “playing” with the software, “drawing” some
interesting figures: in most cases with seemingly no concrete educational aim. Also
a teacher can give a dynamic geometry applet to his or her pupils with no special
instructions, just asking them to “check out” the construction.
Technically, Step 1 (“introduction, prerequisites”) can already be a special case
of Step 2 (“discovery”), but from the teacher’s point of view the preparation for
Step 2 may be more difficult. First of all, it can be challenging to estimate the
required time on the student’s side to make enough experiments—too many or too
few can also be a problem. Since it usually takes much more time to create a quality
29
Chapter 1 Proofs in education
DGS material than to use it in the classroom or for homework, it seems sensible
to provide appropriate questions (see Tab. 1.2) to leave the discovery practising to
the students. (GeoGebraTube already supports the concept of providing questions
putting before and after the applet materials. Material shown in Fig. 1.3 (page
18) contains such texts inside the applet which is not the recommended way in
GeoGebra.) Finding the relationship on their own is a very important source of
mathematical pleasure. For the teacher, of course, the truth of a statement in
theory is obvious. But it is not always easy to keep a secret for teachers.
Erdős’s child prodigy student Pósa, being involved in the reform of the Hungarian
secondary mathematics teaching, emphasizes the importance of secret keeping. Since
1988 he has been organizing his own weekend maths camps with several groups
of 20–35 students. In a camp, students mostly work in groups of 2–4, but there
are also plenary sessions where they discuss solutions (Wikipedia (2014b)). The
basic (and strictly adhered) rule in his camps that a solution cannot be uncovered
publicly before the plenary sessions. As a result, all participants experience the
joy of discovery, including the long (and sometimes really difficult) way to reach it
(Pósa, 2001, own translation):
[Children usually] do not understand why I do not reveal the solution or
at least why I do not help, since in school their teachers are so helpful. . .
Then after a while they taste the struggle and joy of thinking with their
own head, they catch a glimpse of searching a way, to find it and reaching
the finish. . . how it is when you can freely think, with a risk that you
lose yourself, but also with a chance of something unusual, individual,
astounding and new. There is always a moment when they do not allow
me to help anymore.
Since Step 2 (“discovery”) and Step 3 (“verification (testing)”) can be considered to
be well organized in small groups or even individually, after a proper introduction
it seems beneficial using computers here. Surprisingly enough, even discoveries can
be automatized (see Tab.1.2) , i. e. a computer can automatically find interesting
objects in a finished construction, or give a hint to finalize a semi-finished one. In
fact, Recio and Vélez (1999) outline such a system which may be indeed a great help
in discovery (see also Recio and Dalzotto (2009) and Losada et al. (2010)).
Considering Step 3, there may be various meanings of “verification” (see Tab.1.2),
so that it requires more investigation:
1. Computers can visualize a single occurrence (a special case) of a mathe-
matical truth when the usual construction (by utilizing a compass and a ruler,
for example) is too slow or not interesting anymore. For example, parallelism
in the midline theorem can be quickly sketched up and checked visually. (See
Fig. 1.5 on page 32 for a possible way.)
2. Computers can also give numerical verification of a statement. For example,
in the midline theorem, parallelism is in fact difficult to measure precisely, so
that a DGS can do some numerical computations to support the check. Here
30
1.1 Proof and proving in mathematics education
one must note that it may not be straightforward to compute the answer
correctly since numerical errors may be introduced. (See Fig. 1.6 on page 33
for Abánades’ example for an illustration.)
3. A DGS can give support to check not only one single occurence of a math-
ematical truth, but in general it shows a number of occurences. When the
so-called free objects are dragged by the student in the construction, all de-
pendent objects are recomputed and redrawn. Hence the student can visually
verify the truth of the statement by checking many different positions of
the appropriate objects.
4. The student may ask for extra verification from the DGS. For example, a
green light icon may be shown when the statement is true for the inputs, and
a red light icon in the opposite case. The student only has to concentrate on
watching the colors while he or she drags the free objects randomly. This idea
can be further developed to create a “map” of green/red positions: Losada
(2014) lists several examples including the Voronoi diagram, the Mandelbrot
set and locus visualizations. (See also http://tube.geogebra.org/student/
m40167 and Fig. 1.7: the Mandelbrot set can be explored by “painting” the
complex plane with 3 different colors.)
5. The student may even ask to get a statistical result for using random inputs for
the free objects. Then the DGS creates statistics by checking the statement
for the random inputs. Here numerical errors may interfere again.
6. A DGS can use ATP techniques to decide if the statement is true in general.
ATP support can also refine the hypotheses by excluding some special cases
when the statement is not true, for example when the student constructs
Euler’s line the computer may draw attention to regular triangles which do
not have one.
These different meanings will be called levels of verification and they will be used
in the following sections in the thesis. For Level 1 verification it is possible to use
almost any kind of graphics software, but for Level 2 there will be some computations
required. Here computer algebra systems can also help, even if only simple or no
graphical output is provided. Different DGS may implement different sets of the
higher levels of verification (see Sec.1.2 for a detailed comparison). Anyway, Level
6 makes a fundamental difference, and as such, it can be identified as the startpoint
of the long awaited link between DGS and ATP.
One could recall Lin et al. (2012)’s remark about the “robust misconception” of
many students that conjectures are proofs in Sec.1.1.4 (see page 13). This lays the
foundation of the importance for supporting Level 6 verifications, but a DGS should
draw attention to the philosophical difference. A positive result for a Level 5 or lower
verification can never be the “sure event” since all (infinitely many) tests cannot be
computed. An essential property of mathematics that by using some other ways
than testing, one can indeed have an overview of all cases, and this different way is
proving.
31
Chapter 1 Proofs in education
A B C D E
1=(A1+B1)/2 =(A1+C1)/2
2↓ ↓
0 1 2 3 4 5
0
1
2
3
4
5
6
Figure 1.5. – Poor man’s verification of the midline theorem
in a spreadsheet application (see Example 26 on page 134 for a detailed
description). Here LibreOffice 3.5 is used, but any other spreadsheet software
should work. The coordinates of A,Band Cmust be inserted into cells A1,A2,
B1,B2,C1 and C2 first. Then midpoint formulas must be put into cells D1 and
E1 and copied to D2 and E2 by using the fill handle. Now the whole spreadsheet
has to be marked and the Chart icon must be clicked. By choosing the Chart Type
“XY (Scatter)” and subtype “Points and Lines”, enabling option “Sort by X
values”, setting “Data series in rows” at Data Range, disabling “Display Legend”
at Chart Elements (and optionally enable “X axis” at Display Grids as well) one
gets the following figure by setting A= (1,2),B= (4,3),C= (3,5). As a result
the second and fourth segments of the polyline will be parallel. One can change
the input coordinates multiple times to verify the parallelism of BC and DE.
It has to be emphasized that mathematics differs from other sciences in this sense.
Physics, for example, can never be sure that the law of gravity will be valid for-
ever. Of course, the idea of gravity (with mathematics in the background) can be
everlasting (actually, it is). Other sciences suffer from the same problem. Although
each science has its role and importance, the strength of mathematics is its eternal
assertions about the world of ideas, and this property should be at least highlighted
in the classroom as well.
However not highlighted yet enough, the presence of numerical errors can be cru-
cial in many levels of verification. These problems can be worked around by using
arbitrary precision floating point arithmetics, or integer arithmetics, or symbolic
computations. There are professional software systems (namely, CAS) which pro-
vide advanced tools (including a programming language) for defining mathematical
problems and to solve them efficiently (see Chapter2, Sec. 2.2.1.3 for some possible
systems). On the other hand, to use such tools the user also has to be educated at
a higher level in both mathematics and computer science to formalize the problem
precisely enough.
32
1.1 Proof and proving in mathematics education
Figure 1.6. – Abánades’ example to easily reproduce a numerical error
in a basic GeoGebra construction. Here Band Cwere originally set to (4,0) and
(3,3), respectively. Dis the orthocenter of triangle ABC, Boolean value gis
defined to check whether AB CD. By changing Band Cto (40000,0) and
(30000,30000), respectively, there is no numerical error yet (that is, gis “true”),
but when dragging Cone will get flipping values for g: sometimes it is “false”,
sometimes it is “true”. One can easily conclude that this type of problem can be
eliminated only when an ATP is used, or if arbitrary precision computations are
performed.
Step 2 (“discovery”) and Step 3 (“verification (testing)”) are, in fact, technically
quite close to each other. When discovering new facts in mathematics one needs
to verify whether the collected information is correct. Thus, within certain limits,
a DGS tool for automatic discovery will likely use lower or higher level verification
tools to provide information for the student. For example, checking the parallelism
in the Level 1 example can be a later step than trying to discover if there is some
kind of relationship between the appropriate lines at all. Such kind of relationships
(see Tab. 1.2) can be collected automatically by simply selecting the triangle and
some (or even all) other objects.
This kind of approach can also be fruitful at Step 4 (“intellectual challenge”). Even
if the computer cannot create a readable or spectacular proof (see Tab.1.2), it can
still collect some possibly related facts which may help the student to create the
rigorous proof. For example, to prove Thales’ (circle) theorem (see Example 42 on
page 149, i. e., if B,Dand Eare points on a circle where the line DE is a diameter
of the circle, then the angle DBEis a right angle), assuming that Ais the center of
the circle it can be an important consideration to draw segment AB and remark that
AD =AE =AB (which will help to find equal angles, e. g. DAB=ABD, and
so on). A computer can collect such pieces of information without any systematic
order, which means that these pieces like pieces of a jigsaw puzzle may be helpful,
33
Chapter 1 Proofs in education
Figure 1.7. – Painting the Mandelbrot Set.
Shared by Dan Piercy on GeoGebraTube. Purple points are probable members of
the Mandelbrot set, black ones are probably outside of it. Blue points are
uncertain: they are near the edge of set. Columns of the spreadsheet on the right
show the elements of the sequence zn=z2
n1+z1where z1corresponds one of the
pixels of the paintbrush. (z1is an element of the Mandelbrot set if and only if
{zn}is bounded.)
but may also be useless if not all pieces are collected or the student alone cannot
build them up into a rigorous proof. (Such an approach is suggested by Magajna
(2011).) As a consequence, a computer may help in Step 4, but the final “intellectual
challenge” has to be done by the student more or less alone.
It is important to highlight that for Step 5 (“systematization”) it seems crucial
for the student to learn argumentation in a community, conducted by a teacher
(as discussed on page 11). Despite this “human aspect”, in some sense a computer
could still confirm (see Tab.1.2) or disconfirm a formal proof. Even so, as discussed
earlier, this approach can hardly be an acceptable way in secondary education where
formal thinking of students is not mature enough yet for using rigorous software
systems efficiently. On the other hand, as one will see later in Sec. 1.2.4, using a
formal system will lose the elegance (and in most cases, also the simplicity) of classic
geometry proofs.
1.1.9. Conclusion
Finally the results of the previous section are summarized. Tab. 1.2 shows a list of
possible activities for using computers to support the education process of proving:
1. As an introduction,
a) a per theory framework could be built by the teacher, and
34
1.2 Proving with computer support
b) playground experiments could also be given.
2. Discovery could be supported by activities like
a) controlled discovery with planned questions,
b) uncontrolled discovery which could be automatized by the computer,
and
c) collecting relationships.
3. Verification (testing) can be achieved via verification steps, that is
visualizing a single occurrence,
numerical computation of a single occurrence,
visualizing different positions of the objects,
extra verifications by using e. g. a color map,
automated statistics about several occurrences, and
using ATP.
4. Intellectual challenge may also be supported by collecting relationships.
5. Systematization could be helped by
a) applying verification steps,
b) obtaining readable proofs, and
c) confirmation of a formulized statement.
In the next section several computer software packages are investigated how they
support these activities.
1.2. Proving with computer support
As mentioned previously, there are several computer software packages which al-
ready support proving. These are, however, in many cases rather research tools
than educational software.
In this section the following tools will be discussed: Cinderella, GCLC,GeoProof,
Coq, GEX and JGEX and GeoGebra 4.4. They are freely available for download,
and some of them are also open-sourced. They will be analyzed according to the
collected possible activities in Sec. 1.1.9.
The common example here will be the secondary school theorem “diagonals of a
parallelogram bisect each other” (see Example 28 on page 136). This is simple
enough to get a quick overview of each software, but complex enough to analyze the
35
Chapter 1 Proofs in education
possibility of classroom use of the given software. Only one example is, of course, too
little for evaluation, and in some sense our analysis can be considered subjective since
the evaluation is based not on user statistics. Instead, this analysis wants to focus
on the available technology, and to emphasize the supported activities according to
Tab. 1.2. The results are shown in Tab. 1.3.
Software
Activity
Cinderella
GCLC
GeoProof
Coq
GEX and JGEX
GeoGebra 4.4
1 Per theory framework X
2 Experiments X X X X
3 Controlled discovery with questions X X
4 Uncontrolled discovery (automatized)
5 Verifications:
1 single occurrence
2 numerical check
3 different positions
4 extra verification
5 statistics
6 ATP
X
X
X
X
X
X
X
X
X X
X
X
X
X
X
X
X
X
6 Collecting relationships X X X
7 Obtaining readable proofs X X
8 Confirmation X
Table 1.3. – Activities supported by various computer software packages
This theorem will be formulated in the following subsections in different ways for
the various software packages because of two reasons:
It is important to demonstrate that the same theorem can be written in mul-
tiple equivalent forms, and this will be natural also for the students (who are,
of course, not experts of automated theorem proving), so they will simply use
one suitable interpretation during the classroom time, maybe independently
from the teacher’s hints. In fact, an educational software should be prepared
for a variety of equivalent inputs, and it should handle in the best case all,
but at least most of the different interpretations. It will be shown in the
next subsections that it is a really difficult problem to teach the computer
to understand many different interpretations and convert the human input to
processable data.
As such, many software packages are simply not (or not yet) prepared for such
36
1.2 Proving with computer support
a diversity. Therefore one needs to be careful in the formulation to enter the
expected input in many cases.
Free availability of a software package seems to be very important in long term ed-
ucational use. Even more, being open sourced is a higher level safety for availability
for the long term since the missing or erroneous parts of the package can be added
or updated later by other developers as well. On one hand, van der Hoeven’s points
out (van der Hoeven (2003)) on the importance of using free software in science:
As a mathematician, I am deeply convinced that only free programs
are acceptable from a scientific point of view. I see two main reasons for
this:
A result computed by a “mathematical” system, whose source code
is not public, can not be accepted as part of a mathematical proof.
Just as a mathematician should be able to build theorems on top of
other theorems, it should be possible to freely modify and release
algorithms of mathematical software.
[...] Then it is clear too that such software should be diffused in a way
which is compatible with the requirements of science: public availability,
reproducibility and free usability.
Parisse, inventor of the Giac CAS stresses the same idea on evaluating closed
source algorithms concerning the computation of Gröbner bases (Kovács and Parisse
(2015)):
. . .a computer assisted mathematical proof can not be performed with
a closed-source software without a certification step. Therefore the rele-
vant timings for comparison with closed-source pieces of software is the
probabilistic check”,
that is, it should be considered as a Level 5 verification (see page 30). Thus proofs
generated by closed source software packages cannot always be considered as reliable
results on a general basis, and as such, their scientific and educational validity are
questionable.
Although these arguments are not widely accepted as scientific facts, for pragmat-
ical and financial reasons also schools often choose free pieces of software for the
classroom and homework. There are also scientific publications about case studies
and know-how of using open educational resources like OECD (2007) (available in 5
languages). More specifically, the PLUME (https://www.projet-plume.org/en/
project) and swMath (http://swmath.org) projects refer to a number of resources
of free mathematics software. Also the MathLibre (http://www.mathlibre.org)
project, a successor of the KNOPPIX/Math (Hamada and KNOPPIX/Math com-
mitters (2009)) system, offers more than 100 free mathematical software systems
available for free download as ISO DVD images.
37
Chapter 1 Proofs in education
1.2.1. Cinderella
Cinderella (Kortenkamp (1999)) can be freely downloaded from the web page
http://cinderella.de/files/release/. Here version 2.8 (build 1685 of
2013/09/19) is discussed. The software is developed by Jürgen Richten-Gebert and
Ulrich Kortenkamp since 1996.
Cinderella supports several user interface languages.9It is very straightforward to
create an Euclidean construction without knowing any details about the software or
reading the documentation by using the verbose toolbar. This may be important
for students. On the other hand, defining a segment or a line (by dragging the
startpoint to the endpoint) may be challenging. Also finding proof-related tools are
difficult or even impossible for a new-comer.
Documentation by Richter-Gebert et al. (2011) includes helpful step-by-step in-
structions about Pappus’ theorem which uncovers how Cinderella can help to prove
theorems. First, to construct a parallelogram one needs to add three free points
by using the mouse (A,Band C), then draw two segments (aand b) by dragging
the mouse. The next step is drawing two parallel lines (cand d) by dragging the
segments to the appropriate point. Intersection point of these two lines gives point
D. Now let us define segment eas AC.
To prove that the diagonals bisect each other the user has to open the Information
Window (shown as Cinderella Console) in the Views menu. When creating point E
as the midpoint of segment described by endpoints Band D, Cinderella prints “E”
lies on “e” in the Information Window. As the documentation outlines,
You may wonder how this “theorem proving” works. Cinderella does not
use symbolic methods to create a formal proof, but a technique called
“randomized theorem checking. First the conjecture. . . is generated.
Then the configuration is moved into many different positions, and for
each of these it is checked whether the conjecture holds. It may sound
ridiculous, but generating enough (!) random (!) examples in which the
theorem holds is at least as convincing as a computer-generated symbolic
proof. Cinderella uses this method over and over to keep its own data
structures clean and consistent.
The applied method is detailed in Kortenkamp (1999). However this method can
be improved to obtain a mathematically strict proof, in Cinderella (at least philo-
sophically) this result can be considered as a Level 5 verification (see Sec. 1.1.8),
even if practically there is no chance of getting false statements. (See more on this
in section 9.3.3 “A killer example” in Kortenkamp’s dissertation.)
Cinderella, as seen above, can also be used for collecting relationships, not only
simple experiments empowered by defining custom tools. Also controlled dis-
covery is supported by exporting a construction into HTML format and show the
9One may need to set LC_ALL=en_US.utf8 on a Linux system to run the English version properly
if other language is set as default.
38
1.2 Proving with computer support
Figure 1.8. – Cinderella 2.8
construction as a Java applet embedded into a web page, hence later extra questions
can be inserted in the HTML file. Tab.1.3 shows the supported activities in a short
form.
1.2.2. GCLC
A completely different approach is GCLC10 (Janičić (2010)) developed by Predrag
Janičić and his colleagues since 1996. For historical reasons it focuses rather on
being a command language driven visualization tool than a graphical user interface.
Its ATP capabilities were added later than tools for professional typesetting of
mathematical figures.
In Fig. 1.9 a fully working, so-called GC language program is shown on the left.
One has to define the dimension (that is, the width and length) of the construction
(“dim”), the points with coordinates, and the lines align to A,Band B,C, respec-
tively. Then parallel lines pand qthrough Aand Care defined, respectively, and
their intersection point Dis also constructed. The cmark_b,cmark_t,drawsegment
(and later drawdashsegment) statements are used only for the final formatting of
the construction. Finally lines AC and BD and their intersection Eare constructed.
10GCLC is an acronym for Geometry Constructions language to L
A
T
E
X Converter.
39
Chapter 1 Proofs in education
Figure 1.9. – WinGCLC 9.0.
Here the Windows version of GCLC is shown which provides a convenient user
interface.
This example is taken from an example shipped with WinGCLC as
file thm_0110_Parallelogram2.gcl in the wingclc\samples\samples_prover\-
GoranPredovicCollection folder, but here the last line was enabled by removing
the %character from the beginning to activate theorem proving. In fact, both of the
last two lines have a similar effect: they ask GCLC for proving AE =EC.
Before clicking on the Build Picture/Animation icon (the 10th on top) the user
should set the used ATP method to work with. Basically, three methods are sup-
ported, in order of appearance in the toolbar (11th, 12th and 13th): the area method,
Wu’s method and the Gröbner basis method. Their output for our statement is as
follows:
The theorem prover based on the area method used.
Number of elimination proof steps: 48
Number of geometric proof steps: 109
Number of algebraic proof steps: 375
Total number of proof steps: 532
Time spent by the prover: 0.018 seconds
40
1.2 Proving with computer support
The conjecture successfully proved.
----------------------------
The theorem prover based on the Wu’s method used.
The largest polynomial obtained during the proof process contains 6 terms.
Time spent by the prover: 0.001 seconds
The conjecture successfully proved.
----------------------------
The theorem prover based on the Groebner bases method used.
The largest polynomial obtained during the proof process contains 4 terms.
Time spent by the prover: 0.001 seconds
The conjecture successfully proved.
----------------------------
The user can, in addition, request the detailed output of the proof. It is generated
in L
A
T
EX format into an external file. The output of the Gröbner basis method can
be seen in the following 5 pages.
This proof can be considered as a relatively short proof.11 However, for educational
use this is still too long, and it requires basic analytical computations and the notion
of Gröbner basis which is not covered by the secondary school curriculum. Albeit
GCLC can give more elegant short proofs by using the area method and Tab. 1.3
reports that GCLC is capable of producing readable proofs, they are not really
useful in the classroom, especially not for mass education.
Janičić and Petrović continued the GCLC project by rewriting the main logic
and making it open source under the name OpenGeoProver (Petrović and Janićič
(2012)). Currently it can use Wu’s method, the area method (Desfontaines (2012))
and there are plans to implement the full angle method (Baeta and Quaresma
(2013)), the mass point method and the Gröbner basis method as well.
11By contrast, in OpenGeoProver (which has a very similar logic in the background) Desargues’s
theorem is proven in 23 pages, and the 9 points circle theorem requires 59 pages described in
details by Wu’s method (see Appendix A, Sec. A.1).
41
GCLC Prover Output for conjecture
“thm-0110-Parallelogram2”
Groebner bases method used
March 4, 2014
1 Construction and prover internal state
Construction commands:
Point A
Point B
Point C
Line ab:A B
Line bc:B C
Parallel, p:A bc
Parallel, q:C ab
Intersection of lines, D:p q
Line ac:A C
Line bd:B D
Intersection of lines, E:ac bd
Coordinates assigned to the points:
A= (0,0)
B= (u1,0)
C= (u2, u3)
D= (x2, u3)
E= (x4, x3)
1
Chapter 1 Proofs in education
42
Conjecture(s):
1. Given conjecture
GCLC code:
same_length A E E C
Expression:
AE
=EC
2 Resolving constructed lines
ab 3A, B ; line is horizontal (i.e., y(A) = y(B))
bc 3B, C
p3A, D
q3C, D ; line is horizontal (i.e., y(C) = y(D))
ac 3A, C, E
bd 3B, D, E
3 Creating polynomials from hypotheses
Point A
no condition
Point B
no condition
Point C
no condition
Line ab:A B
point Ais on the line (A,B)
no condition
point Bis on the line (A,B)
no condition
Line bc:B C
point Bis on the line (B,C)
no condition
point Cis on the line (B,C)
no condition
2
1.2 Proving with computer support
43
Parallel, p:A bc
Line (A,D) parallel with line (B,C)
p1=u3x2+ (u3u2+u3u1)
Parallel, q:C ab
Line (C,D) parallel with line (A,B)
— true by the construction
Intersection of lines, D:p q
point Dis on the line (A,D)
no condition
point Dis on the line (C,D)
no condition
Line ac:A C
point Ais on the line (A,C)
no condition
point Cis on the line (A,C)
no condition
Line bd:B D
point Bis on the line (B,D)
no condition
point Dis on the line (B,D)
no condition
Intersection of lines, E:ac bd
point Eis on the line (A,C)
p2=u3x4+u2x3
point Eis on the line (B,D)
p3=u3x4+x3x2u1x3+u3u1
4 Creating polynomial from the conjecture
Processing given conjecture(s).
Segment [A,E] equal size as segment [E,C]
p4= 2u2x4+ 2u3x3+ (u2
3u2
2)
Conjecture 1:
p5= 2u2x4+ 2u3x3+ (u2
3u2
2)
3
Chapter 1 Proofs in education
44
5 Invoking the theorem prover
The used proving method is Buchberger’s method.
Input polynomial system is:
p0=u3x2+ (u3u2+u3u1)
p1=u3x4+u2x3
p2=u3x4+x3x2u1x3+u3u1
5.1 Iteration 1
Current set is S1=
p0=u3x2+ (u3u2+u3u1)
p1=u3x4+u2x3
p2=u3x4+x3x2u1x3+u3u1
1. Creating S-polynomial from the pair (p0, p1).
Skipping pair p0and p1because gcd of their leading monoms is zero.
2. Creating S-polynomial from the pair (p0, p2).
Skipping pair p0and p2because gcd of their leading monoms is zero.
3. Creating S-polynomial from the pair (p1, p2).
Forming S-pol of p1and p2:
p12 =u3x3x2+ (u3u2u3u1)x3+u2
3u1
S-pol added.
5.2 Iteration 2
Current set is S2=
p0=u3x2+ (u3u2+u3u1)
p1=u3x4+u2x3
p2=u3x4+x3x2u1x3+u3u1
p3=2u2
3u1x3+u3
3u1
1. Creating S-polynomial from the pair (p0, p3).
Skipping pair p0and p3because gcd of their leading monoms is zero.
2. Creating S-polynomial from the pair (p1, p3).
Skipping pair p1and p3because gcd of their leading monoms is zero.
3. Creating S-polynomial from the pair (p2, p3).
Skipping pair p2and p3because gcd of their leading monoms is zero.
4
1.2 Proving with computer support
45
5.3 Groebner Basis
Groebner basis has 4 polynomials:
p0=u3x2+ (u3u2+u3u1)
p1=u3x4+u2x3
p2=u3x4+x3x2u1x3+u3u1
p3=2u2
3u1x3+u3
3u1
Groebner basis succesfully computed.
6 Reducing Polynomial Conjecture
Reducing with polynomial p1, the result is:
p21 = (2u2
32u2
2)x3+ (u3
3+u3u2
2)
Reducing with polynomial p3, the result is:
p22 = 0
Conclusion is reduced to zero.
7 Prover report
Status: The conjecture has been proved.
Space Complexity: The biggest polynomial obtained during pro of process
contained 4 terms.
Time Complexity: Time spent by the prover is 0.001 seconds.There are no
ndg conditions.
5
Chapter 1 Proofs in education
46
1.2 Proving with computer support
1.2.3. GeoProof
GeoProof (Narboux (2007b,a)) is a DGS written by Julien Narboux and some con-
tributors (including former developer Nicolas Francois). It supports proving Eu-
clidean geometry theorems by either computing proofs algebraically (using Wu’s
method or the Gröbner basis method) with an internal subsytem, or by outsourcing
the proof to Coq (by using two possible methods, one of them is the area method).
GeoProof has been developed actively until the beginning of 2010’s, but currently
it is no longer maintained due to Narboux’s changed approach for using a different
user interface. Narboux, Yves Bertot and Bertot’s PhD student Tuan Minh Pham
started to implement a prototype by using GeoGebra for the user interface instead
of GeoProof (Pham et al. (2011)). Nevertheless, GeoProof can still be compiled for
a modern Linux system and the official Linux versions of Coq are still prepared to
communicate with GeoProof.
GeoProof draws an emphasis on experimenting. To draw a construction with
GeoProof is quite easy with the help of the toolbar. (To save space, in Fig. 1.10 the
toolboxes on the right have been collapsed.) Here one needs to define the example
parallelogram by lines. After creating all required objects (including Eas midpoint
of the virtual segment BD) one could verify if points A,Eand Care collinear by
using the first tool in the bottom row of the toolbar. Surprisingly enough, GeoProof
gives the wrong answer here. The reason is that the version of GeoProof which was
compiled from its source code for this dissertation uses the default floating point
arithmetic which is actually inaccurate for proofs. (Instead, much better results can
be obtained by using the creal library as it is suggested in the documentation of
GeoProof.)
By using the 8th icon in the first row in the toolbar and right-clicking on the nu-
merical computation report we can access the Automatic theorem proving window
(Fig.1.11) which converts the construction and the checked statement to a computer
interpretable format. (The expression “numerical computation” may be misleading
here since one will actually obtain a non-numerical result at the end. This approach
will also be followed by us in Chapter2, Sec. 2.2.3.)
Here one can notice that the hypothesis looks much more difficult than the original
statement:
1. There are many parentheses used which may be required for the correct syntax.
2. Conditions are joined by using /\ (which stands for , i. e. conjunction).
3. There are technically added points Line_3_b, and Line_4_b, they lie on par-
allels CD and AD, respectively; GeoProof introduces these points for its
own work for setting up the hypotheses properly. Point Dis also defined
by collinearity with the help of the technically added points.
4. Negations are added to exclude non-degenerate cases in advance, that is those
cases do not matter where (here ~is the negation operator):
47
Chapter 1 Proofs in education
Figure 1.10. – Verification with GeoProof 0.5beta
a) points Aand B, or Band Care the same; in short negated form: A6=B
and B6=C,
b) point Cdiffers from Line_3_b, and Ddiffers from Line_4_b, these mean
the parallel lines have positive distance in-between,
c) the final negation defines that the parallelogram is non-degenerate,
i. e. AB and CD are not the same line.
5. Eitself is defined as a statement (“is_midpoint”).
Unfortunately, the conclusion here is not what one expects, so that conclusion must
be typed manually: collinear(A,E,C). (The applicable check commands in the
conclusion can be listed by using the Help button on the bottom.) Now one can
choose the method to be used (here Wu’s method will not work for some reason),
and click on Start searching for a proof. After some little time the text The theorem
is true appears in green.
However GeoProof is mainly a software prototype, its strength is to emphasize
the importance of proper handling of the so-called degeneracy or non-degeneracy
conditions (NDG). As discussed later, many geometry theorems will fail in their
48
1.2 Proving with computer support
Figure 1.11. – Proving with GeoProof
general form because in classic geometry it is already assumed that theorems are
about non-degenerate triangles, for example. Here GeoProof automatically assumed
many trivially assumed facts—later it will be shown that in most cases for statements
about triangles it is enough to ensure that the free points are not collinear (which
here means that the ABC4is non-degenerate).
Tab. 1.3 summarizes the features of GeoProof. It is important that GeoProof can
communicate with Coq by sending a purely formal version of the hypotheses and
the conclusion to it (Narboux (2006)), however the latest version of GeoProof seems
to have some minor technical problems to support this. So, instead of investigating
this approach for proving, a different way will be followed to learn the basics of Coq.
1.2.4. Coq
This section is a long analysis of the discussed parallelogram theorem when it is
processed in Coq. The length and complexity of this section is intentional: there
is no easy way when Euclidean geometry is precisely discussed with the classical
axiomatic methods.
According to Wikipedia (2014a),
49
Chapter 1 Proofs in education
. . .Coq is an interactive theorem prover. It allows the expression of math-
ematical assertions, mechanically checks proofs of these assertions, helps
to find formal proofs, and extracts a certified program from the con-
structive proof of its formal specification. Coq works within the theory
of the calculus of inductive constructions, a derivative of the calculus
of constructions. Coq is not an automated theorem prover but includes
automatic theorem proving tactics and various decision procedures. . . It
is developed in France, in the πr2team of the PPS laboratory, jointly
operated by INRIA, École Polytechnique, Paris-Sud 11 University, Paris
Diderot University and CNRS. . . The project manager of Coq is Hugo
Herbelin.
Since Coq is a robust system, here we will concentrate only on proving our example
theorem in a formal system. To show the difficulty of this approach, we chose
Tarski’s axiomatic system being fully described in the monograph Schwabhäuser
et al. (1983) and implemented by Narboux (2007c); Narboux and Braun (2013) in
Coq. The most remarkable feature in Coq is that the teacher can build up an
own theoretical framework, and then it is possible to particularize the theory into
lessons. The same approach is followed by Tarski and his colleagues (like in many
mathematical books), and it is completely reflected by the Coq implementation by
Narboux and Braun.
First we emphasize that Tarski’s system, despite being a simple one, is still too
complicated to be discussed in the classroom at secondary level. There are 10
axioms in this system—Tarski originally proposed 20 of them in the 1950’s.
50
1.2 Proving with computer support
Require Export Classical.
Class Tarski := {
Tpoint :Type;
Bet :Tpoint Tpoint Tpoint Prop;
Cong :Tpoint Tpoint Tpoint Tpoint Prop;
between_identity :forall A B,Bet A B A A=B;
cong_pseudo_reflexivity :forall A B :Tpoint,Cong A B B A;
cong_identity :forall A B C :Tpoint,Cong A B C C A=B;
cong_inner_transitivity :forall A B C D E F :Tpoint,
Cong A B C D Cong A B E F Cong C D E F;
inner_pasch :forall A B C P Q :Tpoint,
Bet A P C Bet B Q C
exists x,Bet P x B Bet Q x A;
euclid :forall A B C D T :Tpoint,
Bet A D T Bet B D C A<>D
exists x,exists y,
Bet A B x Bet A C y Bet x T y;
five_segments :forall A AB BC CD D’ : Tpoint,
Cong A B AB
Cong B C BC
Cong A D AD
Cong B D BD
Bet A B C Bet ABCA<> BCong C D CD’;
segment_construction :forall A B C D :Tpoint,
exists E:Tpoint,Bet A B E Cong B E C D;
lower_dim :exists A,exists B,exists C, ~ (Bet A B C Bet B C A Bet C A B);
upper_dim :forall A B C P Q :Tpoint,
P<> QCong A P A Q Cong B P B Q Cong C P C Q
(Bet A B C Bet B C A Bet C A B)
}.
Figure 1.12. – Tarski’s axiomatic system described by Coq commands
Fig. 1.12 shows the Coq implementation of the axiomatic system programmed by
Narboux. Let us try to interpret this program code as mathematical definitions.
For simplicity, here we will use Narboux’s example files published on his web site.
The code shown here is the “translation” of the first chapter of Schwabhäuser et al.
(1983) to Coq, axioms A1A10, but in a modified order. Basically, Tpoint is the
point object in the Euclidean space E.Bet and Cong are properties, or in other
words, possible subsets of E3and E4. In a nutshell, Bet is the “between” relation,
Bet A B C holds if and only if Bis between Aand Con the same line, and Cong
is some kind of “congruence”: Cong A B C D holds if and only if the segments AB
and CD are of equal length. (In fact congruency means that a segment can be
transformed into the other by an isometry. This can be easily generalized for more
51
Chapter 1 Proofs in education
points than two to obtain the appropriate relation for triangles as well, for example.)
The axioms here have readable names instead of numbers. For example,
inner_pasch is called A7 in the monograph and listed as
Bapc Bbqc → ∃x(Bpxb Bqxa).
A hardcopy from the monograph Schwabhäuser et al. (1983).
Figure 1.13. – The Pasch axiom (A7) in Tarski’s system
Fig. 1.13 explains this axiom: (we denote the point objects by lowercased letters
to follow Tarski) in general if lines ap and bq have an intersection point c, then
there exists an intersection point xof lines aq and bp. Surprisingly enough, these 10
axioms cover the essence of the Euclidean geometry.
Now we are ready to do some basic experiments with Coq. For the very start we
have to download Narboux’s Coq package for the Tarski geometry, compile it, and
start Coq (or more precisely, the Coq IDE) in the downloaded folder (under Linux).
Now we can simply type the program code from Fig. 1.14 into the Coq IDE and use
the 3rd and 4th tools to “do” or “undo” a step: Coq will interpret the commands
in a step-by-step mode: the steps already done are shown in green background, and
Coq sends the user some messages on the bottom-right. (Here we show a slightly
modified version of Narboux’s implementation for a better explanation.)
52
1.2 Proving with computer support
Figure 1.14. – The Coq IDE (version 8.3pl4)
with the beginning of implementation of Chapter 2 in Schwabhäuser et al. (1983),
by Narboux.
These first four commands, ended by a “. character, are technical ones to load the
required Coq modules and start the work. Next, “Lemma” simply claims what we
want to prove by the help of Coq, and “Proof” states, as usual in mathematics, that
we actually start the proof (basically, it is just a protocol here), see Fig. 1.15. Now
the top-right subwindow is also used for maintaining a to-do list for the time of the
proving. This subwindow will be continuously changed in each step of “thinking”
when parts of the so-called goals will be resolved.
53
Chapter 1 Proofs in education
Figure 1.15. – Starting a proof with Coq
Transcribing Coq’s Lemma back into a mathematical statement is usally not difficult:
here the lemma named cong_reflexity claims that for all Aand Bpoints Cong A
B A B holds. In other words, length of AB equals to AB. Albeit this is, of course,
trivially true in Euclidean geometry, it is not straightforward in formal logic to be
so. We still need this lemma to be proven since for later lemmas it will be a crucial
step to use this fact.
The proving process reflects the work of a mathematician. Like every kind of work in
real life, it consists of different states, including the beginning of the work, several
intermediate states, and finally the end state. Inside each step we can check the
status of the proof in the top-right subwindow inside the Coq IDE. The intros
command is usually the first step for us to start to work: it simply rewrites the goal
to a more readable format (Fig. 1.16): on the top there are the hypotheses already
known, and below them, having a horizontal line above each, the consequences (or
“to-dos”) to be shown (here there is only one consequence yet).
54
1.2 Proving with computer support
Figure 1.16. – Rewriting the goal in Coq
Now let us start by executing “apply (cong_inner_transitivity B A). Our to-
do list is changed as seen in Fig.1.17.
Figure 1.17. – Applying an axiom with a hint in Coq
What happened here? We try to find sufficient conditions to prove the only
subgoal Cong A B A B from the initial status. Now if we could use axiom
55
Chapter 1 Proofs in education
cong_inner_transitivity in the special case C:= A0, D := B0, E := A0, F := B0,
then the possible truth of Cong A B A’ B’ (stands for Cong A B C D) and Cong A
B A’ B’ (stands for Cong A B E F) would imply Cong A’ B’ A’ B’ (stands for
Cong C D E F). Coq could automatically use cong_inner_transitivity by rec-
ognizing that Cong C D E F should match the pattern Cong A B A B, so it will
automatically find C:= A, D := B, E := A, F := B, but it still requires a hint for
some A:=? and B:=?.
By appending parameters B A to cong_inner_transitivity we give a hint to Coq
that the substitution should be A:= B, B := A. Of course, we can give another
hint, for example A A or A B. Later we would see that B A is a good choice, but the
others are not.
Now we have two subgoals. They are, however, the same, but we can prove each
one by one, at least for this basic example. cong_pseudo_reflexivity can help us
to continue since it ensures that for all A, B Cong A B B A holds. Now Coq has
no other option than to match the pattern from the (first) subgoal Cong B A A B
to Cong A B B A from the axiom which cannot be other than A:= B, B := A.
That is why Coq here does not require any parameters, but after activating the step
apply cong_pseudo_reflexivity it simply removes the (first) subgoal since it is
no longer a to-do (Fig. 1.18).
Figure 1.18. – Applying an axiom automatically in Coq
56
1.2 Proving with computer support
Figure 1.19. – No more subgoals to prove: the proof has been completed
Repetition of apply cong_pseudo_reflexivity does the same for the second sub-
goal (which became the first and only one), and then (Fig.1.19) we get the message
Proof completed. It is okay to say Qed now since our reasoning found valid by
Coq (Fig.1.20): since our steps resolved all subgoals, our reasoning found to be valid
by Coq and Lemma “cong_reflexivity” can be stored as a valid statement having
already an acceptable proof.
57
Chapter 1 Proofs in education
Figure 1.20. – Coq’s (here temporary) database has been extended by a valid proof
This introductory proof will help us to understand the proof for the parallelogram
theorem which is much more complicated. Before continuing it is useful to take a
look on the table of contents of the monograph to get an overview of the structure
of the theory built into lessons (Tab. 1.4). Here we already discussed the library
tarski_axioms (in Fig. 1.12); cong_reflexivity is a part of library cong. The
parallelogram theorem is, fortunately, proven in chapter 7 by using various lemmas
as prerequisites, mainly from chapters 4 or 6. Since the chapters are built on each
other, it will be convenient to simply use library out_lines which already contains
all required lemmas.
58
1.2 Proving with computer support
Chapter
Name in the
monograph
(in German)
Library names
in Coq
Topics (translation
from German)
0Einleitung Introduction
1
Das Tarskische
Axiomensystem,
kartesiche Räume
tarski_axioms Tarski’s axiomatic
system, Cartesian spaces
2Folgerungen aus A1 bis
A5 cong Consequences of A1A5
3Einfache Sätze über die
Zwischenbeziehung bet Basic theorems about Bet
4
Einfache Sätze über
Kongruenz und
Zwischenbeziehung
cong_bet, col Basic theorems about
Cong and Bet
5
Konnexität der
Zwischenbeziehung und
Streckenvergleich
bet_le Relationship of Bet and
equality of segments
6Halbgeraden und
Geraden out_lines Rays and lines
7Punktspiegelungen midpoint Point mirrorings
8Rechte Winkel orthogonality Right angles
9Halbebenen und Ebenen,
Unterräume plane Halfplanes and planes,
subspaces
10 Geradenspiegelungen line_reflexivity Line mirrorings
11
Kongruenz und
Größenvergleich von
Winkeln, Kongruenzsätze,
Orthogonalität für
Unterräume
angles
Congruence and
comparison of angles,
congruence theorems,
ortogonality for subspaces
12 Parallelität parallel Parallelism
Table 1.4. – Structure of the monograph and its implementation
(the first chapters only, being already implemented in Coq)
Our theorem is numbered as Lemma 7.21 in both the monograph and Coq. In fact
we need some extra definitions from chapter 7 (for example, the notion of midpoint)
and also Lemma 7.20 to prove the theorem. Thus, to focus on the parallelogram
theorem we refer to the Coq code of the primary definitions and Lemma 7.20 in
Appendix B, Sec.B.1 and Sec. B.2. After loading these commands into the Coq IDE,
before starting to prove Lemma 7.21 we will see the initial state as in Fig.1.21. First
we can see the definitions including the Tpoint objects (i. e. A, B, C, D, P ∈ E)
and then hypotheses H, H0, H1, H2, H3and H4—they are named technically a bit
different, but otherwise each of them is a normal hypothesis. Below the horizontal
59
Chapter 1 Proofs in education
line there is the statement to show, consisting of two parts joined by conjunction.
Figure 1.21. – Coq IDE after loading primary definitions
for chapter 7 and proof for Lemma 7.20, at the point of starting to prove Lemma
7.21
It is remarkable how the monograph proves Lemma 7.21. The text is relatively short
and smart (Fig. 1.22, in fact only the second half of the hardcopy), unlike the Coq
implementation as follows, at least not for the first view for beginners.
60
1.2 Proving with computer support
Figure 1.22. – Schwabhäuser et al. (1983)’s proof for the parallelogram theorem
So we already started to type the proof of Lemma 7.21 line-by-line (see Appendix B,
Sec. B.3 as well), beginning with
Lemma l7_21 :forall A B C D P, ~ Col A B C B<>DCong A B C D
Cong B C D A Col A P C Col B P D is_midpoint P A C is_midpoint P B D.
In the monograph this is described as
¬Col abc b6=dab cd bc da Col apc Col bpd Mapc Mbpd.
Here Col stands for collinearity (and for Cong). Now the following 15 minor steps
are the proof itself:
1. Let us start the proof by showing a subgoal, namely that there exists a point P0
such that BD =DB, BP =DP 0, DP =BP 0(notion of Cong_3 is introduced
61
Chapter 1 Proofs in education
in chapter 2, its meaning in fact is that two triangles are congruent in the usual
sense, i.e. BD P 4
=DB P 04). The used Coq statement here is “assert”:
Proof.
intros.
assert (exists P’, Cong_3 B D P D B P’).
Now the facts to be proven change to
______________________________________(1/2)
exists P’ : Tpoint, Cong_3 B D P D B P’
______________________________________(2/2)
is_midpoint P A C /\ is_midpoint P B D
which mean now we have a new subgoal (1 of 2, shown as 1/2), and the former
subgoal has been renamed (2 of 2, shown as 2/2). Coq always works on the
first subgoal, but this behavior can be changed by using the number of the
subgoal appended by a semicolon and the command.
Now
eapply l4_14.
turns this new subgoal into two another subgoals by simply using Lemma 4.14
(see Fig. 1.23) to give two sufficient conditions instead of Cong_3 B D P D B
P’, namely Col B D P and Cong B D D B in this case:
______________________________________(1/3)
Col B D P
______________________________________(2/3)
Cong B D D B
______________________________________(3/3)
is_midpoint P A C /\ is_midpoint P B D
Next,
Col.
Cong.
will stepwisely resolve the first two subgoals, and also create hypothesis H5as
H5 : exists P’ : Tpoint, Cong_3 B D P D B P’
since the assertion itself has been resolved.
Here Col is a so-called tactic already written in the definition part earlier to
take care of finding Col B D P among the hypotheses (in Coq, it is H4), and
tactic Cong tries to find a suitable property of the congruences to apply (in
this simple case axiom cong_pseudo_reflexity can be used).
We want H5to be split into the point definition x : Tpoint and Cong_3
“user defined” relation by using command
62
1.2 Proving with computer support
Figure 1.23. – Some extra lemmas to prepare the proof of Lemma 7.21
63
Chapter 1 Proofs in education
induction H5.
Now this is our current status:
1 subgoal
MT : Tarski
A : Tpoint
B : Tpoint
C : Tpoint
D : Tpoint
P : Tpoint
H:~ColABC
H0:B<>D
H1:CongABCD
H2:CongBCDA
H3:ColAPC
H4:ColBPD
x : Tpoint
H5:Cong_3BDPDBx
______________________________________(1/1)
is_midpoint P A C /\ is_midpoint P B D
It is similar to the initial state, but we have two extra hypotheses (xand H5)
now.
2. Now we will show that D,Band xare collinear:
assert (Col D B x).
eapply l4_13.
2:apply H5.
Col.
Here we simply use Lemma 4.13 (see Fig. Fig. 1.23) to get two sufficient
subgoals Col ?1 ?2 ?3 and Cong_3 ?1 ?2 ?3 D B x instead of Col D B x.
Here ?1,?2 and ?3 are some objects, unknown yet, but they should match
some appropriate objects to continue. Clearly H5and a suitable Col hypoth-
esis (here H4again) will fit, thus we proved the assertion and it will be moved
to the hypotheses as H6: all proven subgoals can be accepted as hypotheses
when they are already proven.
3. To continue, we need to look for the definition of FSC which is the same as
definition 4.15 in the monograph (Fig. 1.23).
assert (FSC B D P A D B x C).
unfold FSC.
unfold Cong_3 in H5.
spliter.
repeat split;try Cong.
Col.
64
1.2 Proving with computer support
The command unfold will rewrite FSC. . . by using the long definition
which is Col B D P Cong_3 B D P D B x Cong B A D C Cong D A
B C in this case. Also hypothesis H5will be rewritten by using the long defi-
nition of Cong_3.
The command spliter then turns H5(which is a conjunction of three rela-
tions) into three different hypotheses (here H5,H7and H8will be the new
hypotheses, but just temporarily for this assertion).
Now repeat split; try Cong will try to rewrite the current (first) subgoal
by using the long definitions and also resolve such parts of the conjuction
which can be identified among the hypotheses. After this step the subgoal is
a simple Col B D P which will be resolved by Col.
Finally the temporary hypotheses H5,H7and H8will be removed and put
back in their original short “user defined” form, and also the assertion will be
listed as H7.
4. assert (FSC B D P C D B x A).
unfold FSC.
unfold Cong_3 in H5.
spliter.
repeat split;try assumption.
Col.
Cong.
This assertion is very similar to the previous one, and its proof is almost the
same. Here try assumption helps to find any fitting hypotheses. H8will
show this assertion after these steps.
5. assert (Cong P A x C).
eapply l4_16.
apply H7.
assumption.
In this assertion we use Lemma 4.16 (Fig.1.23). Our assertion can be changed
to the sufficient subgoals FSC ?1 ?2 P A ?3 ?4 x C and ?1 <> ?2. Now H7
will resolve the first one and H0resolves the second one (but here we simply
wrote assumption). Now our assertion will be added to the hypotheses as H9.
6. assert (Cong P C x A).
eapply l4_16.
apply H8.
assumption.
These steps are definitely the same as for the previous assertion. Cong P C x
Ais added as H10 now.
7. Now we are ready to prove that AP C4
=CxA4:
65
Chapter 1 Proofs in education
assert (Cong_3 A P C C x A).
unfold Cong_3.
repeat split;try Cong.
The assertion is added as H11.
8. Now we prove subgoal Col C x A:
assert (Col C x A).
eapply l4_13.
2:apply H11.
assumption.
The assertion is moved to the hypotheses as H12.
9. Now it is time to show that P=P0(= x). Following the proof in the mono-
graph (Fig. 1.22) we need Theorem 6.21 which stands for the unicity of line
intersection and formalized in Coq as follows:
Theorem l6_21 :forall A B C D P Q,
~Col A B C C<>DCol A B P Col A B Q Col C D P Col C D Q
P=Q.
In English this simply means that if there are two intersection points P, Q of
segments AB and CD (which have general positions, i. e. degenerated positions
are excluded), then P=Qmust hold. Our assertion and its proof is:
assert (P=x).
unfold FSC in .
spliter.
eapply (l6_21 A C B D); Col.
subst x.
First we unfold the definition of FSC in all hypotheses and split the con-
junctions to separated hypotheses. Then we apply Theorem 6.21 by aligning
A:= A, B := C, C := B, D := Dand searching for matching patterns
among the hypotheses. To verify Coq let us check our current status:
2 subgoals
MT : Tarski
A : Tpoint
B : Tpoint
C : Tpoint
D : Tpoint
P : Tpoint
H:~ColABC
H0:B<>D
H1:CongABCD
H2:CongBCDA
H3:ColAPC
H4:ColBPD
66
1.2 Proving with computer support
x : Tpoint
H5:Cong_3BDPDBx
H6:ColDBx
H7:ColBDP
H16 : Cong_3 B D P D B x
H17 : Cong B A D C
H18 : Cong D A B C
H8:ColBDP
H13 : Cong_3 B D P D B x
H14 : Cong B C D A
H15 : Cong D C B A
H9:CongPAxC
H10 : Cong P C x A
H11 : Cong_3 A P C C x A
H12 : Col C x A
______________________________________(1/2)
P=x
______________________________________(2/2)
is_midpoint P A C /\ is_midpoint P B D
Clearly, we search for P:= P, Q := xmatches to apply Theorem 6.21. So we
have the following information after renaming the variables in Theorem 6.21
for our needs:
forall A C B D P x, ˜ Col A C B -> B<>D -> Col A C P ->
Col A C x -> Col B D P -> Col B D x -> P=x.
Obviously, if we can find hypotheses or suitable lemmas to show the validity of
the premises, then we can resolve the consequence (i. e., the assertion subgoal
P = x).
Now
a) ˜ Col A C B holds due to Hand some properties of Col,
b) B<>D holds due to H0,
c) Col A C P is because of H3and some properties of Col,
d) Col A C x is because of H12 and some properties of Col,
e) Col B D P is because of H7(or H8which is the same),
f) Col B D x holds because of H6and some properties of Col.
So we can move P = x to the hypotheses list, but we also change the occurences
of xto Pto get the status
1 subgoal
MT : Tarski
A : Tpoint
B : Tpoint
C : Tpoint
D : Tpoint
P : Tpoint
67
Chapter 1 Proofs in education
H:~ColABC
H0:B<>D
H1:CongABCD
H2:CongBCDA
H3:ColAPC
H4:ColBPD
H5:Cong_3BDPDBP
H6:ColDBP
H7:FSCBDPADBPC
H8:FSCBDPCDBPA
H9:CongPAPC
H10 : Cong P C P A
H11 : Cong_3 A P C C P A
H12 : Col C P A
______________________________________(1/1)
is_midpoint P A C /\ is_midpoint P B D
10. The next step is to use Lemma 7.20:
assert (C=Ais_midpoint P C A).
eapply l7_20.
assumption.
assumption.
Now we have H13 as the proved assertion.
11. We use Lemma 7.20 again and get H14:
assert (B=Dis_midpoint P B D).
eapply l7_20.
assumption.
unfold FSC,Cong_3 in .
spliter.
Cong.
12. We do not need more assertions. At this point we simply unfold all user
definitions until only the axiom relations are shown (except for the Col “user
defined” relations) and also split conjunctions into different hypotheses. This
will result in 30 (2 plus 28) hypotheses:
unfold is_midpoint,FSC,Cong_3 in .
spliter.
13. Now we have H0 : B <> D and H14 : B = D Bet B P D Cong B P
P D which tell remarkable information about Band D. By typing
induction H14.
the first part of the conjunction will be temporarily assumed, but when enter-
ing
contradiction.
68
1.2 Proving with computer support
we can see that H14 will be immediately changed to Bet B P D Cong B P
P D since the hypotheses should not be contradictory. Now we can use
spliter.
to turn the conjuction form H14 into two hypotheses. At this point we have
31 hypotheses as a total:
1 subgoal
MT : Tarski
A : Tpoint
B : Tpoint
C : Tpoint
D : Tpoint
P : Tpoint
H:~ColABC
H0:B<>D
H1:CongABCD
H2:CongBCDA
H3:ColAPC
H4:ColBPD
H5:CongBDDB
H27 : Cong B P D P
H28 : Cong D P B P
H6:ColDBP
H7:ColBDP
H22 : Cong B D D B
H25 : Cong B P D P
H26 : Cong D P B P
H23 : Cong B A D C
H24 : Cong D A B C
H8:ColBDP
H17 : Cong B D D B
H20 : Cong B P D P
H21 : Cong D P B P
H18 : Cong B C D A
H19 : Cong D C B A
H9:CongPAPC
H10 : Cong P C P A
H11 : Cong A P C P
H15 : Cong A C C A
H16 : Cong P C P A
H12 : Col C P A
H13:C=A\/BetCPA/\CongCPPA
H14 : Bet B P D
H29 : Cong B P P D
______________________________________(1/1)
(Bet A P C /\ Cong A P P C) /\
BetBPD/\CongBPPD
14. Now let us consider our only subgoal which is a conjunction of 4 relations. H13
is a disjunction of C = A and a conjunction, and this latter is very similar to
69
Chapter 1 Proofs in education
the first two elements of the subgoal. On the other hand, H14 and H29 are the
same as the 3rd and the 4th elements of the subgoal.
This is why we will focus on H13 and try to remove the first element of the
disjunction. For this we will assume that C=Aand then get a contradiction,
so we have to remove it from the disjunction and this will prove the subgoal:
induction H13.
subst C.
apply False_ind.
apply H.
apply col_trivial_3.
Here induction starts a temporary train of thought by leaving only C=A
in H13. Then Cis substituted everywhere in the status list. Now we try to
find a contradiction by adding the subgoal False with the command apply
False_ind. In this temporary system apply H causes the subgoal to change
to Col A B A (which is the negation of H), this simply means if we can prove
Col A B A then it is a sufficient reason to prove the previous subgoal (False).
Since Col A B A always holds, we found a contradiction and we can go back
to H13 to change it to Bet C P A Cong C P P A.
15. What is left, just some technical steps:
repeat split;try Cong.
apply between_symmetry.
spliter.
assumption.
We simply use splitting, some congruence lemmas and finally the
between_symmetry property (from chapter 3). Coq will resolve all remain-
ing subgoals and finally we get
Proof completed.
As shown, the rigorous formal proof of the parallelogram theorem is extraordinary
complex and difficult (not only for students), and its classroom use is contraindi-
cated. Despite this, the following educational remarks can be concluded:
1. Coq implementation of mathematical monographs can be a trustworthy re-
flection of mathematical thinking, and as such, it can be a perfect model of
validating mathematical proofs. However from the educational perspective it
is yet inconvenient, technically it is possible to define a per theory frame-
work, and also to confirm if a proof is valid.
2. Euclidean geometry is too complex for formal investigation in the classroom.
(There are, however, other approaches than Tarski’s geometry. See Bertot
et al. (2004) for another suggestion.)
70
1.2 Proving with computer support
3. Translating native language reasoning into a language accepted by a computer
can also be difficult: here we used an arsenal of Coq commands. It would be
more favorable to allow natural language reasoning, including national lan-
guages as well. Also using speech recognition might be a research topic. Com-
bining speech recognition and a DGS on a touchscreen to detect geometrical
objects precisely, might also help converting human reasoning into a Coq-like
language. At the end, students’ argumentation could be verifiable by the com-
puter. However, this idea may require several programming challenges, and
its increment in the education process is still questionable.
4. Despite the validity of the proof in this example will be computed quickly,
one can ask for more automation (after some more programming) for the
expense of processing time and other resources. This means Coq can find
proofs automatically but not always quickly enough. For Tarski’s system it
is theoretically proven that all proofs can be found algorithmically, thus only
time and memory can limit the success of the searching process. This is, of
course, good news for having a Level 6 verifier, but practically this approach
is significantly slower than the other methods, and not really useful for non-
simple theorems. (More on this topic can be read in Boutry et al. (2014).)
Coq’s educational features are listed in Tab.1.3.
1.2.5. GEX and JGEX
The Chinese ATP experts produced several research and education tools for com-
puter based mathematics teaching during the last 30 years, and as such, there is
an indisputable knowledge and experience in the software packages they already
developed (see Wu (1978); Chou (1987); Chou et al. (1996, 2000); Gao and Lin
(2004); Ye et al. (2010a,b, 2011); Zou and Zhang (2011); Chen et al. (2014)). On
the other hand, much of their effort is not well known in the Western countries,
despite that their work is highly appreciated by leader ATP scientists in Europe
and in the United States as well.
Geometry Expert (GEX) is one of the available tools of the Chinese ATP devel-
opments, being runnable in English as well. (Some of the newest tools including
MMP/Geometer have only Chinese versions.) It is a combination of a DGS and an
ATP, thus the user can create dynamic figures (to experiment and verify) and
then produce proofs in the same software.
71
Chapter 1 Proofs in education
Figure 1.24. – Windows version of Geometry Expert (GEX), DGS facility
Fig. 1.24 shows a typical screenshot of GEX. The user needs some ingenuity to find
the correct way to construct the required figure—this can be done by using both the
left toolbar and the Draw menu, however, the guiding texts on the bottom-left will
help to learn the details. At the same time the Script Manager window is shown
to list the steps being already constructed. To obtain the final construction for the
parallelogram theorem one can use the menu item Draw Intersection of two
Plines to create point Dand then the appropriate item for E. Finally, Draw
Select Conclusion Midpoint sets the thesis to be shown.12
Now the user can switch to the ATP window in menu Window Show GEX Prover.
Now a new window is popped up which has an own menu system. Under Prove
Get From Graphic Editor the user can copy the definition steps of the figure and
convert it automatically to a program code similar to the GC language:
EXAMPLE thm
HYPOTHESES:
POINT A;
POINT B;
POINT C;
INTERSECTION_PP D A B C C B A;
INTERSECTION_LL E A C D B;
SHOW: MIDPOINT E D B.
12Due to some character encoding issues the “” signs are shown as “iÉ” on the screen. The same
problem will be for “” which is shown as “iÏ”, and “k” which is “iΔ, as seen in the figures.
72
1.2 Proving with computer support
Figure 1.25. – Geometry Expert (GEX), ATP facility
By pressing the Prove button the actively set prover method will start trying to
prove the statement. (By default the GDD method (see Sec. 1.1.6.5) is used, but
GEX is capable of using the area method, Wu’s method, the Gröbner method, the
full angle method and the vector method as well, 6 different methods as a total.)
The result is shown in Fig. 1.25. Now one can find a traditional-like reasoning by
folding the thesis out in Step 1 into other steps:
1. Eis a midpoint of DB, because E,Dand Bare collinear (it is a hypothesis)
and ED =EB (see Step 2 for a reason).
2. ED =BD since CED4
=AEB4(see Step 3 for a reason).
3. CED4
=AEB4because
CD =AB (see Step 4 why),
EC D=EAB(see Step 5 why) and
73
Chapter 1 Proofs in education
CED=AEB(which is obvious).
4. CD =AB because CAD4
=ACB4(see Step 6 why).
5. EC D=EABbecause of CD kAB (which is a hypothesis).
6. CAD4
=ACB4, because
CA =AC (obviously),
ACD=CAB(see Step 7 for a reason), and
CAD=ACB(see Step 8 why).
7. ACD=CABbecause of CD kAB (which is a hypothesis).
8. CAD=ACBsince AD kBC (which is another hypothesis).
A visual illustration of this proof was created in Fig. 1.26 to show the structure of
this reasoning. One can think of improving the output of GEX for a direct classroom
scenario:
When requesting a readable proof, first only Step 1 and its child H are shown
as “the proof” since the arguments in Step 1 may be enough for some students
to be convinced.
On the other hand, some students may require explanation for understanding
the fact ED =BD. For them, the computer based tool can unhide Step 2 for
the argument CED4
=AEB4. If the student is convinced, then no more
explanation is needed.
However, some students may require even more explanation. For them, Step
3 will also be shown with facts CD =AB,ECD=EABand CED=
AEB. For some students this granularity of the proof is already acceptable.
For those who are still not satisfied, the computer can tell that CD =AB is
obvious, and on demand it can show explanations of Step 4 and 5.
And so on, finally, for the most unbeliever students all steps will be unfold.
In such a way the granularity of the proof can be fine tuned individually by the
student. Such an approach may be a step forward which also harmonizes with
Buchberger (1990).
74
1.2 Proving with computer support
Figure 1.26. – Hierarchy graph of a GDD proof.
Numbers in yellow circles are steps, “H” stands for “hypothesis”, “O” for “obvious
fact”.
Unfortunately the GDD method cannot be used for a wide range of Euclidean the-
orems, but in secondary schools most of the curriculum theorems can be covered
by it. Despite Gao and Lin (2004) reported relatively slow results for the GDD
method 10 years ago, today’s computers seem to be fast enough to produce these
readable proofs very quickly. The proof, however, can be longer than results of
other methods. For example, the shortest output in GEX will be produced by the
area method and the vector method for the parallelogram theorem. Here the area
method is in focus (since the vector method produces essentially the same proof in
this case):
-DE/BE
because DE/BE = (-S(DCA)) / S(CBA)
= (-S(DCA)) / -S(CBA)
because S(DCA) = (-S(CBA)^{2}) / (-S(CBA))
= S(CBA)^{2} / -S(CBA)(-S(CBA))
Eliminating the common factors: (S(CBA))^{2}
= 1
Even if this is shorter than the GDD method, one needs to define the function S
(which is a special detail of the area method theory, namely the signed area)—in
general non-traditional new notions of the area method are more technical than
visual. Not only more explanation is needed to provide a real understanding for
75
Chapter 1 Proofs in education
the proof, but the geometrical meaning is hidden with a semi-algebraic derivation.
In fact by allowing signed quantities with the use of semi-algebraic derivations we
have a more general system than the algebraic ones, but this generalization does not
actually ease the reasoning. Although it must be acknowledged that the area method
can indeed produce beautiful (and short) proofs for a wide range of theorems, in
this case at least the GDD method wins for the educational power.
As expected, Wu’s method and the Gröbner basis method will also result in a suc-
cessful run, but (like for GCLC and OpenGeoProver) the produced outputs are
useless for classroom purposes. The full angle method cannot prove the parallelo-
gram theorem.
Ye et al. (2010a,b) is a detailed report about the availability of the enhanced version
of GEX, namely JGEX (“Java Geometry Expert”) which is a rewritten (and in some
sense, restructured) version of GEX in Java. It has been being developed since 2004
at Wichita State University in the United States by Shang-Ching Chou, Xiao-Shan
Gao and Zhang Ye. JGEX comes with a more elegant look and feel (Fig. 1.27),
including colorful icons and a detailed web based documentation.
Figure 1.27. – Look and feel in JGEX
version 0.80 (March 2011)
JGEX can already visualize the readable proofs in an animated way, and what is
more, it can detect relationships as well by using the GDD method.
There are several changes in the user interface, however. To draw the parallelogram
in our sample theorem, one can more intuitively use the toolbar than in GEX. When
76
1.2 Proving with computer support
constructing the parallelogram, its diagonals and their intersection point, the user
can click the Fix tab on the bottom, and now it is possible to see all derived facts
concerning the figure. Here one can find facts about not only the expected midpoint
property of E, but about other objects including lines, parallel lines, congruent
segments and angles, similar and congruent triangles, and ratio segments (Fig.1.28).
Figure 1.28. – The list of automatically derived facts in JGEX
Now let us select Prove To Prove. . . Midpoint and for “Set One” select points
E,Aand C. JGEX will immediately report that the midpoint property of E(with
respect to AC) is true. Now one can select Prove Prove to generate a similar
proof like above GEX did, but here the list looks much more user friendly and the
steps are colorfully visualized with animations for each step (Fig. 1.29). (Unlike in
GEX here another—but logically equivalent—statement has been proved. In JGEX,
however, there is an extra step in the proof of the parallelogram theorem.)
77
Chapter 1 Proofs in education
Figure 1.29. – Screenshot of an animated step of the automatic proof in JGEX
about the parallelogram theorem. In Step 7 the meaning of fact ACD4
=CAB4
is explained by rotating the pink triangle from the green one into the white one
(around E). The GDD method has a database of 46 rules for describing usual
human argumentation ideas—here rule #26 was used for step 7. The full angle
method (which is also supported in JGEX) has only 29 rules, but its output
usually differs from traditional geometry textbook proofs.
Tab. 1.3 summarizes GEX’s and JGEX’s features.
1.2.6. GeoGebra 4.4
GeoGebra is well known for experimenting with mathematical objects. In this final
part it is demonstrated how the parallelogram theorem can be entered in GeoGebra
4.4.13
13At the most time of writing this dissertation 4.4 was the latest version of GeoGebra. Mean-
while, GeoGebra 5 has been released in September 2014, which has already support for various
new techniques, being implemented by the supplementary work for this thesis. Thus, it is
straightforward to show the analysis of GeoGebra 4.4 here to demonstrate the old behavior in
GeoGebra. The new techniques are presented in Chapter2.
78
1.2 Proving with computer support
In Fig. 1.30 the construction is drawn by creating free points A,Band C, then
segments a,b, and two parallel lines c,dare drawn to get Das their intersection.
Segments e,fare defined as segments AC and BD. Now Eis the intersection of e
and f, and Fis the midpoint of BD. (Label of Fwas moved away to show the two
last definitions.) Now coordinates of Eand Fcan be dynamically verified in the
Algebra View (on the left). When using the Relation Tool in the toolbar, the user
can select points Eand Fdirectly to check a single configuration about the truth
of the equality.
Figure 1.30. – Constructing and analyzing the parallelogram theorem in GeoGebra
version 4.4
It is also possible to create a colorful Level 4 verification (Fig. 1.31) by adding
Dynamic Colors to the object “isEqualE F ” (which is defined by the “E?
=FBoolean
Value expression). In case the dragged points cause a situation when E6=Fthis
object will be shown in red (which should not ever be the case normally). This kind
of verification may also be extended by following the idea of Losada (2014) as shown
in Fig. 1.32.
79
Chapter 1 Proofs in education
Figure 1.31. – Defining an RGB color value based on an expression in GeoGebra.
Here the output value of expression E?
=Fis converted into 0 or 1. An RGB color
consists of three components described with a real number between 0 and 1.
Figure 1.32. – Painting the map of statement truth in GeoGebra.
Here free point Chas dynamic colors depending on the output value of expression
E?
=F, and Trace On is checked. When Aand Bare fixed, its visibly important
for Cthat it should not lie on line AB, otherwise the statement will be false.
The user can also do some verification by using the built-in CAS in GeoGebra by
checking the coordinate equality (Fig.1.33) in the CAS View (available in the View
80
1.2 Proving with computer support
menu). This computation, however, can be continued by putting the output of the
last two expressions into E0and F0, and then either computing Distance[E’,F’]
(which yields 0) or E’==F’ (which yields “true”). Unfortunately, these computations
must be done without any dynamic interconnection to the Graphics View (this is
the default view on the right in Fig.1.30).
Figure 1.33. – Using the built-in CAS for analytical computations
81
Chapter 1 Proofs in education
As already discussed in Sec. 1.1.5, GeoGebra can export a worksheet to GeoGe-
braTube to support controlled discovery.
Tab. 1.3 summarizes the prover features of GeoGebra 4.4.
1.2.7. Other software packages
The above listed software is just a selected set of the available applications on the
market. To highlight specific details of other available software packages various
other applications might be mentioned which are not freely available for the pub-
lic, thus, their use in mass education seems questionable, even if many schools or
even countries pay a license fee for a short or long term use. Among many others,
the application shown in Fig. 1.34 is a remarkable approach to bind geometry and
algebraic expressions together (cf. Fig. 1.33).
Figure 1.34. Geometry Expressions 3.1
available at www.geometryexpressions.com (2014), is capable of computing
parametrized algebraic expressions of the object sizes of the input construction.
Here AB is automatically set to d0and AC to d1. Hence when asking the
application to compute the length of EC symbolically, the correct answer d1/2is
shown. (Here the 30 days evaluation version was used for taking a screenshot.)
Geometry Expressions, however, focuses on formulas, not proofs.
Yet another set of applications are not or no longer available for public download,
because of lack of maintenance or due to the state of the software is yet a proto-
type. An especially interesting prototype is shown in Fig.1.35. Another remarkable
prototype is demonstrated in Fig. 1.36.
82
1.2 Proving with computer support
Figure 1.35. GDI-Discovery (Botana and Valcarce (2002))
points out that if ABCD is not necessarily a parallelogram, then the necessary
conditions for its diagonals to bisect each other is exactly that DA kBC and
DC kBA, that is ABCD is yet only a parallelogram.
83
Chapter 1 Proofs in education
Figure 1.36. – Géométrix 4.0 (2014) by Jacques Gressier.
A demo version is available for download at
http://geometrix.free.fr/site/logiciels.php. The original language of the
application is French, but Spanish and Italian translations also exist (here the
Italian version is shown). Géométrix is a DGS having extra features for building
up a proof from goals (on the top-right) and known facts (on the top-left). The
student can choose statements from a large set of available relations and by using
drag-and-drop and mouse click the proof can be built. The huge number of
possibilities, however, makes theorem proving a difficult adventure in Géométrix
for the time being: it seems impossible to find the path for a correct proof of the
parallelogram theorem among the hundreds of automatically recognized relations.
Some remarkable DGS or ATP software were not listed either, because the same
functionality was found in other, above listed software, and the importance and the
reputation of the non-listed software seemed to be lower than for the others.
Although this dissertation tried to be objective as much as possible, this list is
probably still somewhat subjective.
84
1.2 Proving with computer support
1.2.8. Conclusion
In the above I listed several software packages to investigate the current state of
the art in possible activities in teaching proofs. Now I consider some kind of final
evaluation if these packages are indeed helpful in the classroom use.
For a per theory framework (see Sec.1.1.8 and Tab.1.2), among the listed systems
(see Tab. 1.3), only Coq was proven to be an existing prototype, but in classroom
deployment it is hardly useful for geometry teaching due to its difficult syntax and
cumbersome input. The main problem here is that rigorosity is implicitly or explic-
itly exiled in the classroom teaching for being simple or just for convenience. As
Adler (1958) remarks,
One of the main defects in the traditional Euclidean proof is its almost
complete disregard of such notions as the two sides of a line and the
interior of an angle. Without clarification of these ideas, absurd conse-
quences result.
But when defining these notions rigorously, as Ye et al. (2010b) point out, one
necessarily needs to create a complex reasoning system. Thus, in my opinion, a
remarkable amount of further work is required on both the theoretical side and
the implementation to take classroom use of such tools into consideration. On the
other hand, traditional classroom teaching is very well referenced in the literature
for suggesting various frameworks for different kinds of student groups. Thus, in my
opinion, focus on such a research on the computer support has no real function at
the moment.
Experiments are very well supported in various software packages. Here my opin-
ion is that the current technology is good enough for the classroom use. Also many
materials are already available as examples for controlled discovery with ques-
tions as learning resources on the Internet, and no particular effort is needed for
extra implementation support. In turn, there are no references about uncontrolled
discovery yet, and it may require further research from the educational point of
view, both from the mathematical limits and the effect on discovery learning.
Today the greatest emphasis should be, not in my opinion only but confirming Lin
et al. (2012) too, on distinguishing verification and proof. A remarkable effort
has already been made to create readable proofs automatically and using them
in the classroom directly. However, the educational demand is not unequivocal in
this question. It may probably be more beneficial to focus on developing useful
verification tools in a DGS than reveal a step-by-step proof “too quickly”. It seems
also reasonable to extend such a verification tool with at least minimal ATP features
to make it possible to tell if a statement is indeed true under certain conditions. As
a final result, a DGS could automatically formalize a valid theorem without showing
its “textbook proof”.
Also collecting relationships may be a useful feature in a DGS. This can still
leave some challenges to the student (at least to ignore the unwanted or consider
85
Chapter 1 Proofs in education
the interesting results of such a search), but may also help for those who cannot find
correlations easily on their own.
Among the listed software packages JGEX is clearly a very good candidate to sup-
port these educational aims. In my opinion, however, it offers too much function-
ality: for many students it may be too complex for using it as an educational tool.
JGEX is, in addition, a very good example to support multiple ways for entering a
geometry statement since it has a large set of built-in ATP tools in the background
for proving. This multiplies the various ways of explaining a problem (similarly to
GeoGebra) which makes the software foolproof. On the other hand, I do not find
the way easy enough to enter the thesis of the statement: the hypotheses can indeed
be drawn easily, but the thesis must be formulated via the menu system by using
multiple level of options. Here GeoProof can be an example for a simple toolbar.
By focusing on the mass education, I highlight the importance of the KISS principle
here. KISS, an abbreviation for “keep it simple and straightforward” is a design
principle to create an education tool as easy to use as it is possible (see Hohenwarter
(2006); Preiner (2008)). In my opinion, GeoGebra is one example for this approach,
including its simple icons and intuitive tools, the traditional (but minimal) menu
system, and the internationalization support for 62 languages.
Finally, though confirmation of a student created proof is supported in both Coq
and Géométrix, in my opinion these methods are not really mature for classroom
deployment yet. In turn, traditional ways of creating and validating proofs are, in
my opinion, still important.
Per theory framework 99K Frameworks for advanced users
Experiments in some DGS
Controlled discovery in some DGS
Uncontrolled discovery
Level 1–6 verifications Algebraic proofs: yes/no answers
Collecting relationships in some DGS
Obtaining readable proofs 99K Readable for mathematicians
Confirmation 99K Frameworks for advanced users
Educational demand ADG supply
Figure 1.37. – The gap between the educational demand and the ADG supply
To extend my conclusion here I add a final remark from a recent talk by William
M. Farmer, “Can computer proving replace traditional proving?”. The question was
raised at the Conference on Intelligent Computer Mathematics 2014.14 Farmer listed
5 purposes of proving:
discovery of new logical consequences,
communication of established logical consequences,
14CICM 2014, Notion of Proof, 8 July 2014, University of Coimbra, Portugal
86
1.2 Proving with computer support
certification of the truth of logical consequences,
learning mathematics,
artistic expression in mathematics.
Concerning “replacing”, Farmer means that
. . .computer proving in its current form cannot entirely replace tradi-
tional proving, but computer proving will in time, with suitable advances
in mechanized mathematics, replace traditional proving just as text edit-
ing on a computer has replaced typing on a typewriter.
To focus on educational aspects, here I highlight Farmer’s opinion on the current
state of computer aided communication,learning and artistic expression and the
suggested ways of further improvement:
1. Contemporary formal proofs often do not communicate mathematical ideas as
effectively as informal proofs, because reasoning is done at too low of a level
and there are too many uninteresting details. What is needed: support for
transforming a formal proof into a readily understandable exposition of the
proof.
2. Computer proving offers students a way to do proving in an interactive envi-
ronment with explicit “rules of the game”. Computer proving can transform
how students learn mathematics by enabling them to learn mathematics by
doing mathematics. What is needed: more promotion of this approach and
better interactive proving environments for students.
3. Since computer proving focuses on syntactic manipulation, artist expression is
much more difficult in computing proving than in traditional proving. What
is needed: support for making computing proving look more like traditional
proving.
My conclusions more or less overlap Farmer’s beliefs: his 1st and 3rd suggestions are
about improving readable proofs, and his 2nd ideas support per theory frameworks.
87
2. Implementation in GeoGebra
“What is truth?” Pilate asked.
— John 18:38
In this chapter the theorem proving subsystem of GeoGebra is demonstrated mainly
from the mathematical point of view, and the related computer science questions
are discussed.
First the need of a general portfolio prover is described. Two new GeoGebra com-
mands are introduced and explained, and also how they are integrated into Geo-
Gebra. Also the Relation Tool, their primary graphical user interface is demon-
strated. Then a detailed explanation follows by describing the most effectively used
algebraic method, emphasizing its basics by the terms of undergraduate level math-
ematics. An enhanced algorithm is discussed for getting sufficient conditions for
stating a theorem automatically inside GeoGebra.
After then a summary of a recent method related to the algebraic method is shown,
which is even more effective in some simple situations. Then the GeoGebra Java
implementation is shown for all used methods in outlined form. Last, a detailed
benchmark is presented about how the various methods perform.
2.1. Rationale behind improving GeoGebra
In Chapter1, Sec. 1.2.8 we concluded that the greatest educational emphasis should
be put on distinguishing verification and proof. There are several software tools
which support this concept more or less, but we found the lack of an existing appli-
cation with the following properties:
contains statement verification integrated in a DGS tool,
can distinguish verification and proof,
can formulate a conjecture and then a valid theorem,
is easy-to-use in the classroom.
In Sec. 2.2 we focus on both the graphical user interface (GUI) design and the
underlying computation backend. First we investigate the computational details and
in Sec. 2.2.3 we introduce GeoGebra’s GUI for the end users.
89
Chapter 2 Implementation in GeoGebra
It is important to mention that we concluded that JGEX1met many requirements
to be a good candidate in the classroom. But JGEX is rather a research tool
for a minor audience with a relatively small user community. Also it is not open
source, thus it is unfortunately not possible to continue improving it externally
and contributing additional source code for any further enhancements. That is, our
work is necessarily a kind of new application or an improvement for an existing open
source tool. Considering the difficulty of developing a new system from scratch, it
seems practically infeasible to create a useful system in the boundaries of a PhD
thesis. Thus we chose the second option: the improvements should be added to an
existing open source DGS.
When considering existing DGS software, the main limitation of choice was to use an
existing system with a stable user community and mature codebase. The most well
known system which meets these criteria is the platform independent open-sourced
DGS “GeoGebra” without any doubt: it is used world-wide, translated to more than
60 languages (see http://wiki.geogebra.org/en/Translation:Status for recent
statistics), and has millions of users including students and teachers (see Fig. 2.1).
By obtaining OpenHub’s analysis at https://www.openhub.net/p/geogebra (as
of May 2015), it is reported that GeoGebra has a very high activity and
has had 31,279 commits made by 71 contributors representing 1,310,764 lines
of code,
is mostly written in Java with an average number of source code comments,
has a well established, mature codebase maintained by a large development
team with stable Y-O-Y commits,2
took an estimated 375 years of effort (COCOMO model) starting with its first
commit in November, 2005 ending with its most recent commit 15 hours ago.
Although these numbers may be inaccurate (for example, GeoGebra was actually
started in 2001 and there are more than 40,000 commits in its official version control
database at https://dev.geogebra.org/trac/timeline since 2005), the magni-
tude and success of the project is obvious. Also GeoGebra won several educa-
tional awards (see http://en.wikipedia.org/wiki/GeoGebra#Awards for a list),
and lastly, it was supported by the Google Summer of Code project in 2010, 2011,
2012 (and also in 2015)—according to https://www.google-melange.com/gsoc/
org/list/public/google/gsoc2015 the only supported projects in 2015 were Moo-
dle,Sugar Labs and Tux4Kids in the category “education”, and projects R, Sage and
Scilab in “mathematics” (out of 137 projects overall).
On the other hand, at the beginning of this PhD work in 2011 there was no open
source software package for supporting elementary geometry proofs, thus we needed
1In this chapter we will refer to several software packages which were already mentioned and cited
in Chapter 1.
2Explanation from OpenHub: “Over the last twelve months, GeoGebra has not seen any change
in activity. This may be a good sign, and an indication that development is continuing at the
same pace and not dropping off.
90
2.2 The portfolio prover
Figure 2.1. – Google Trends on GeoGebra.
Periodical changes show correlation between utilizing activity and school holidays.
(See http://www.google.com/trends/explore#q=GeoGebra for a recent graph.)
to think of an internal ATP module in GeoGebra, assuming that most of the com-
putations can be done internally, or by outsourcing some heavy computations to
external software packages. Later, in 2012 we contacted the developers of the de-
buting OpenGeoProver software to collaborate, but finally we learned that the best
way for the joint work is to still compute some of the calculations on GeoGebra’s
side, and outsource just a part of the work to OpenGeoProver. In sum, our general
approach is a much more long term plan than all other existing applications already
have, and by focusing on communication and cooperation with a large community
of DGS users, a more reliable basis for an educational software can be expected.
2.2. The portfolio prover
The idea of using multiple methods in the same application for theorem proving
is already well-known in many existing software tools including GCLC, GeoProof
or JGEX. We also use this concept for similar reasons: each method has strengths
and weaknesses. In addition, we add some extra intelligence to select one or more
from the available methods. The tool which implements that technology is called
portfolio prover.
We planned to separate the computation backend and the GUI. Historically, the
computation backend was designed much earlier (since 2011) than the GUI (since
2013) to ensure that GeoGebra can surely compute the required calculations in a
reasonable time. This time plan also helped to have a much more elaborated result
in the GUI, which is, for the student users, even more important. This is why this
chapter is divided into technical sections, and not organized from the educational
point of view—GUI related questions are discussed in Sec. 2.2.3.
We need to highlight that “proving” in this chapter will be something different than
used in education. Here “proving” and “proof” will not be “readable proof”, but a
Level 6 verification instead (see Chapter1, Sec. 1.1.8). In other words, we use only
the yes/no output of a machine generated proof; the rest (the proof itself, which can
consist of many pages of algebraic derivation) will be simply ignored. One would
91
Chapter 2 Implementation in GeoGebra
insist why we call this computation “proving” and not “verification”. The answer is:
this the official definition of what we will do, and in fact (since there is a philosophical
difference between Level 6 and lower level verifications) in the mathematical sense
it is indeed a proof—but the details are not shown on purpose to help the student
by not confusing him or her with an unreadable derivation for a human.
Has any benefit of knowing just the truth of a statement, but not its proof? For
a mathematician: without any doubt—there are several recently proven theorems
(including Fermat’s last theorem, Wiles (1995)) which have exceptionally compli-
cated proofs, thus it is cannot be expected that most mathematicians could ever
understand the full background of them. But for students it can also be desirable to
obtain a conjecture by utilizing a computer and then continue with a self assembled
proof.
The theoretical and practical background of geometrical theorem proving applied in
GeoGebra has its roots in the pioneer work of Chou, Wu and Buchberger, and many
others. Chou (1987) is considered as the first exhaustive explanation of the algebraic
method which was based on Wu’s elimination algorithm (Wu (1978)). Kapur, Buch-
berger and his research team, including Kutzler and Stifter, used similar approaches
with success (Kapur (1986); Kutzler and Stifter (1986); Buchberger (1988)). This
lead to many successful and usable pieces of computer software, discussed in details
in Chapter 1, Sec. 1.2.
None of the discussed software packages use portfolio-based algorithm selection
which is, however, a common practice in solving hard problems. In other research
fields of mathematics and computer science a well-known example is SATzilla which
uses several different algorithms in the background and tries to use the best fitting
one to solve the given problem (Nikolić et al. (2009)).
In GeoGebra we use a similar approach. The are more reasons why we chose this
technique. Historically, the biggest influence on our work was initiated by the Span-
ish school of applied algebraic geometry, lead by professors Tomás Recio and Fran-
cisco Botana, and their strong belief in the Gröbner basis approach. A Spanish
student, Sergio Arbeo won a Google scholarship in 2010 to implement locus equa-
tion computations for GeoGebra. His work was greatly supported by Botana and
his research team. The “Spanish way”, based on Gröbner basis computation, was
undoubtly a feasible possibility for the theorem proving system in GeoGebra, too,
since Botana had already been working with many computer algebra systems as
helper systems for theorem proving, and himself was a co-inventor of the Discover
DGS (Botana and Valcarce (2002), see Chapter 1, Fig. 1.35) and LAD, an Internet
based ATP framework (Botana (2007); Botana et al. (2011)). But Recio came up
with another idea in 2011, namely to not use the heavy computations for many
theorems, but another technology with arbitrary integer arithmetic which seemed
to be useful for classroom use as well with low-end machines.
Meanwhile, the Serbian school, lead by Predrag Janičić, was also showing interest
in porting their own invented technology from GCLC via a new open source Java
92
2.2 The portfolio prover
library OpenGeoProver (see Chapter1, Sec. 1.2.2). Other researchers also contacted
the GeoGebra Team about implementing their algorithm with GeoGebra. The in-
ternational interest to have an official prover subsystem in GeoGebra lead to have
not only one approach in the planned system, but to allow different methods to be
used for the computation. The decision to be “really open”, started a fruitful com-
munication and healthy competition to have a well working geometry prover system
for the mathematics education.
GeoGebra itself implements two basic approaches, namely Botana’s and Recio’s
methods. For Botana’s method, there is an internal way to compute Gröbner ba-
sis with the embedded computer algebra system (currently Giac, Parisse (2013)),
and there is a way to outsource the computations to an external system (currently
Singular, Decker et al. (2012)). There is also an interconnection application pro-
gramming interface (API) for OpenGeoProver and a command line driven interface
to choose from the offered services and configure them. On the other hand, Geo-
Gebra itself has a decision mechanism to choose the best fitting algorithm, however,
this mechanism is in a very early state.
OpenGeoProver, at the moment, has the ability to solve problems by using Wu’s
method which is a classic approach in theorem proving. This sub-engine, and the
OpenGeoProver system itself was programmed by Ivan Petrović, PhD student of
University of Belgrade. In addition, OpenGeoProver has a second sub-engine for the
area method, programmed by Damien Desfontaines (Desfontaines (2012)), student
of ENS Paris that time. Also his work was supported by the Google Summer of
Code program in 2012.
Summarizing the available technologies, GeoGebra can use the following approaches
for solving problems in theorem proving:
Botana3/Singular: using Gröbner bases with the outsourced CAS Singular
Botana/Giac: using Gröbner bases with the embedded CAS Giac
Recio: using arbitrary integer arithmetic
OGP/Wu: using Wu’s method from the embedded library OpenGeoProver
OGP/Area: using the area method from OpenGeoProver
In the following sections we will introduce the Gröbner basis method and compare
its practical complexity with Wu’s method by using benchmarking experiments. We
will not show Wu’s method in details—it can be found in the literature (Cox et al.,
1991, Chapter 6, §5). In later sections we show how the general algebraic approach
can be turned into a computationally simplified way by using Recio’s method. We
will not deal with the area method, either, we refer to Janičić et al. (2012) instead.
3Other software packages call definitely the same approach the Gröbner basis method. In the
technical documentation of GeoGebra, including its source code we call it Botana’s method
to emphasize the importance of Botana’s approach by using different software packages for
DGS and ATP, and if required, other bridging technologies like a web server or a third party
computation engine (see Botana et al. (2011)).
93
Chapter 2 Implementation in GeoGebra
2.2.1. The algebraic approach: benefits and limitations
At the moment, the algebraic approach seems to be the most elaborated and mature
theory to get a yes/no answer for an elementary geometry question. Theorems in
elementary geometry can be described very well by using polynomial equations of
analytic geometry. A well known approach to solve complex polynomial equations
symbolically is to use the theory of Gröbner bases. Here symbolical approach is an
important issue, since numerical methods may be inaccurate and thus cannot be
considered acceptable in the sense of getting yes/no answers.
Here we must acknowledge that our method will deal only with such geometry prob-
lems which can be turned into polynomial equation systems. This is not the case for
many problems discussed in the secondary school, including exponentional or loga-
rithmical equations. Even worse, inequalities (i. e. expressions like a < b) cannot be
converted into equations by GeoGebra currently, however, there is theoretical back-
ground to do that by using the cylindrical algebraic decomposition (CAD) method
(see Collins (1975)). Maybe in the future this kind of extension will be added, how-
ever, its practical complexity is much higher than for the currently used methods
(see Robu (2007)). According to the o-minimal theory and Wilkie’s theorem (Wilkie
(1996)) there is a hope to handle CAD and exponential equations in the future.4
Unfortunately, the general layout of some theorems may require inequalities. Such
an example is Napoleon’s theorem which states that if equilateral triangles are con-
structed on the sides of any triangle, either all outward, or all inward, the centres
of those equilateral triangles themselves form an equilateral triangle. Here, unfortu-
nately, we cannot define “outward” or “inward” by adding a helper inequality since
it is unsupported in the algebraic approach at the moment. The same problem ap-
pears in much simpler theorems which are about only one of the angle bisectors—we
cannot simply mark only one bisector, but we need to work with both at the same
time. Napoleon’s theorem (Fig. 2.2) can be, however, formulated by using rota-
tions5since the theorem is valid for both outward and inward (Fig. 2.3) triangles.
(Rotations are not completely implemented in GeoGebra’s prover subsytem yet.)
4At the time of finishing this dissertation in 2015 there are a number of related ar-
ticles listed at http://www.journals.elsevier.com/journal-of-symbolic-computation/
recent-articles/ which will be published in the near future in the Journal of Symbolic Com-
putation, including titles Constructing a single cell in cylindrical algebraic decomposition,On
the complexity of the F5 Gröbner basis algorithm,Synthesis of list algorithms by mechanical
proving,Learning-assisted theorem proving with millions of lemmas,The classification of real
singularities using Singular Part I: Splitting Lemma and simple singularities. Also these recent
titles show the importance, difficulty and actuality of the topics of this section.
5Let coordinates of triange ABC be A= (a1, a2),B= (b1, b2)and C= (c1, c2). Now center Fof
equilateral triangle constructed on side AB can be computed by rotating point Baround point A
by 30 degrees clockwise to B0and scaling AB0to AF with a factor of 1/3. This step is actually
done by computing
AF =cos(30o)sin(30o)
sin(30o) cos(30o)·
AB ·1
3= 1
2
1
23
1
23
1
2!·
AB.
Since it is impossible to directly use 3in the algebraic approach, we need to fall back to use
94
2.2 The portfolio prover
Figure 2.2. – Napoleon’s theorem (outward case)
Figure 2.3. – Napoleon’s theorem (inward case)
The other limitation is that GeoGebra can start proving only such statements which
are constructive. That is, the user needs to draw a construction first to explain what
statement is to be checked or proven. In fact, this limitation helps to avoid some
extreme situations where complex coordinates are allowed in statements, but these
statements actually fail in real geometry. See more on this in Sturmfels (1989),
some tconstant for which t2= 3 and work with t=±3at the same time. Actually, the positive
case will describe the “outward” theorem, and the negative one the “inward” statement. Now
we obtain F=a1+b1+b2a2
t
2,a2+b2+a1b1
t
2. Also by using a similar computation for point D
we conclude that
F D =a1+c1+a22b2+c2
t
2,c2a2+2b1a1c1
t
2and its length is the square root
of 1
3(a2
1+a2
2+b2
1+b2
2+c2
1+c2
2a1b1a1c1a2b2a2c2b1c1b2c2)+ 1
t(a1(b2c2)+ b1(c2
a2)+c1(a2b2)). The first element of this sum is invariant of cycling points ABCA,
and the second element can be written as 1
t·
a1b1c1
a2b2c2
1 1 1
which is also invariant of cycling.
Thus F D =DE =E F , that is, triangle DEF is equilateral. Note that we heavily used that
cosine and sine of 30oare algebraic numbers.
95
Chapter 2 Implementation in GeoGebra
Conti and Traverso (2001), Recio and Botana (2004) and Kovács (2014b).
At the moment, the prover subsystem in GeoGebra can handle most geometrical op-
erations and relations taught in secondary school: point and line equality,midpoint
of a segment,intersection,parallelism,perpendicularity,collinearity,concurrency,
concircularity. Basically, the Euclidean construction system is fully covered, how-
ever not all GeoGebra tools are translated into the prover machine yet. This simply
means that sometimes we need to create the construction by substituting a Geo-
Gebra tool with one or more equivalent or similar ones.
Statements which require a non-Euclidean construction cannot be stated. For ex-
ample, Morley’s theorem (which requires trisecting angles) cannot be constructed
via Euclidean steps, thus it cannot be formulated and sent to the prover subsystem,
either. Therefore GeoGebra cannot help in symbolical checking of this theorem—
even if algebraically it would not be a problem to handle the situation. This issue
could be resolved later by allowing use of algebraic expressions in the prover input.
To prove geometry problems, that is, we need to manipulate on algebraic equation
systems, usually in many variables, which is a difficult problem in general.
2.2.1.1. Which computer algebra system to choose?
There are numerous references how to manipulate a symbolic equation system. The
most obvious breakthrough for automatizing equation system solving symbolically
was Bruno Buchberger’s 1965 PhD thesis (Buchberger (1965)) on Gröbner bases
and the finite algorithm for generating the solutions. Despite to have other methods
for solving this kind of problem, the Buchberger algorithm is considered as the
most popular way for solving equation systems symbolically. Here we use the word
“solving”, although actually we will not be interested in the exact solutions but
rather other properties of the equation system, for example its solvability.
Buchberger’s original algorithm is finite, but not very fast for many inputs. In fact,
the problem itself is a difficult problem in complexity theory, and this means there
will always be examples which cannot be computed “fast enough”. On the other
hand, there are many implementations of the Buchberger algorithm with several
improvements and speedups. To solve an equation system efficiently, is in fact, a
complete research field for several years already. One example of the importance of
this question is that Smale’s 17th problem, “solving polynomial equations in poly-
nomial time in the average case”, is listed as one of the most difficult mathemati-
cal problems of the 21st century (Beltrán and Pardo (2009); Cucker and Bürgisser
(2011)).
This simply explains why GeoGebra does not have an own implementation for the
Buchberger algorithm. There are experts who already worked several years on per-
fecting their own algorithms and handle several special cases to offer the output
for the user as fast as possible. Thus GeoGebra should rather use one existing
96
2.2 The portfolio prover
implementation by embedding it, our to outsource the computation to a specific
system.
There are big differences between the several implementations. Easy questions are
usually answerred quickly by all implementations, but hard questions may cause
several magnitudes between the computation time in the various pieces of software.
During the preparation step for creating Botana’s prover in GeoGebra, we carefully
tested several open source implementations with such inputs which can be expected
normal questions during the classroom use.
We can make a priority list for the practical point of view for the computer algebra
system to use:
Be fast enough for secondary school geometry problems. The crucial timeout
in the classroom is 5 seconds, over this time most students lose their interest
and cannot wait and concentrate any longer.
Be embeddable in GeoGebra both in desktop and the tablet versions.
Be maintained by a community and also maintainable in long term. The
GeoGebra Team has an experience mainly in the Java programming language,
but most candidates of CAS are written in a different programming language
which can be not well supported in the next years.
We will see in Sec. 2.2.1.3 that we need to make some compromises, because no
candidate can fulfill all requirements.
2.2.1.2. The tests
In 2011 first we created 9 tests in elementary geometry and converted them into
algebraic equation systems at Kovács (2012a), and ran manual benchmarking to
have an impression of the magnitudes of the speed of the different implementations.
Later, to be able to get more precise results, we created Kovács (2013b) to make
it possible to test the same inputs with many implementations at the same time
automatically on a virtual server.
Our test suite contains the following elementary geometry theorems:
1. Thales’ (circle) theorem.
2. Bisectors of a triangle are concurrent.
3. Altitudes of a triangle are concurrent.
4. Medians of a triangle are concurrent.
5. Euler’s line.
6. Nine-point circle.
7. Angle bisector theorem.
97
Chapter 2 Implementation in GeoGebra
8. Simson line.
9. Pappus’ hexagon theorem.
The last two theorems were proven computationally much more difficult than the
former ones, thus finally we added two extra tests for these two last ones with a
simplified algebraic background. For simplicity we will refer these tests by using
their first words, namely “Thales”, “Bisectors”, “Altitudes”, “Medians”, “Euler”,
“Nine”, “Angle”, “Simson”, “Pappus”—and “Simson-R” and “Pappus-R” for the
reduced theorems.
In Sec. 2.3 we will give a detailed explanation how a geometry theorem can be
turned into an equation system. Kovács (2012a) shows the detailed mathematical
background and Appendix C, Sec. C.1 lists the corresponding equation system for
each test. The equation systems and the benchmarking system (written in PHP
and Linux shell scripts) itself can also be found in a ready-to-use format in Kovács
(2013a).
2.2.1.3. The candidates
The reader may have some experience in various computer algebra systems which
have different user interface and command line syntax. Wikipedia (2013c) gives a
list of about 30 different computer algebra software, of which many are free software.
GeoGebra itself has a built-in but minimal computer algebra system which is, how-
ever, not really capable of difficult algebraic computations in several variables. In-
stead, GeoGebra has been using embedded systems for many typical tasks, including
equation solving. In Fig. 2.4 we summarize the various CAS which were used in dif-
ferent GeoGebra versions. Decisions to change an embedded CAS to a different one
were because of the growing demands of the GeoGebra community to use more gen-
eral, robust or faster computations inside GeoGebra. Fig. 2.4 does not show some
other systems which were candidates to be other embedded systems. Such systems
were
Maxima (Maxima (2013)) and
JAS (Kredel (2008))
which were published only in test development versions of GeoGebra and not released
publicly. See more on the released embedded systems
JSCL in Jolly and Kredel (2008),
Jasymca in Dersch (2009) ,
JAMA in Wikipedia (2013b),
YaCAS/Mathpiper in Pinkus and Winitzki (2002) and Kosan (2011),
Reduce in Hearn (2004) and
98
2.2 The portfolio prover
Figure 2.4. – History of embedded CAS in GeoGebra.
Red bars show active development; orange extensions show end user activity
between two release announcements.
Giac in Parisse (2013).
The first attempts to implement theorem proving in GeoGebra were done in 2012 by
using Reduce, but these attempts were preceded by Arbeo’s locus equation project
in 2010 (see page 92). Arbeo used JAS version 1, but finally the LocusEquation
command was not included in the final release of GeoGebra 4.0 in 2011 due to lack of
maturity and stability (and JAS was not embedded in GeoGebra 4.0 for this reason).
In 2012 Arbeo decided to rewrite his implementation using the embedded system
Reduce to avoid adding an extra layer into GeoGebra 4.2 (thus JAS was still not
used in this release, either). Concerning our theorem proving project, the question
was basically that Reduce could also be capable of computing Gröbner bases for
geometry theorem proving in general, or not. If not, what other options could we
have?
The possible candidates were definitely
1. to embed
a) Reduce or
b) JAS (its version 2 was preferred due to its better speed),
2. or to outsource the computations to a standalone CAS.
We wanted to avoid embedding another full computer algebra system to minimize
size (and as such, the download time) and complexity, so we wanted to prefer the first
option. For the second option, we considered open source systems Maxima, Singular
(Decker et al. (2012)), the CoCoAlib framework (Abbott and Bigatti (2013)) and
Giac.
99
Chapter 2 Implementation in GeoGebra
Unfortunately the CoCoAlib framework was accidentally left from the first tests
despite that this system had a very good reputation in Gröbner basis computation
already. But later it turned out that Giac is shipped in two different versions: with
CoCoAlib and without it. Thus our final tests already included the benchmarking
for the CoCoAlib as well (via Giac).
A detailed analysis (see Tab. 2.1) showed that Maxima is far the slowest in solving
algebraic equation systems for theorem proving problems. JAS was able to compute
many tests, but Reduce was faster in most cases.6However, for the more difficult
tests, Reduce was still too slow. With no doubt Singular won all tests with signif-
icantly less time spent in the computations. Thus our decision was to use Singular
remotely from GeoGebra, preferred as a web service, since we did not want to add
yet another computer algebra system than Reduce into the installation package.
We decided this step before changing the embedded CAS in GeoGebra to Giac—the
decision was done in January 2012 and the change in March 2013.
Test Maxima JAS 2 Reduce Singular CoCoA Giac
Thales 0.2 0.46 0.11 0.00 0.08 0.03
Altitudes 0.29 0.51 0.11 0.00 0.29 0.03
Medians 0.4 0.65 0.12 0.00 0.14 0.09
Bisectors 0.42 0.5 0.1 0.00 0.09 0.01
Euler 1.66 0.2 0.01 0.14 0.01
Nine 1.19 1.5 0.11 0.01 0.13 0.01
Angle 36.08 1.74 0.75 0.01 0.31 0.04
Simson
Pappus 3.37 0.5 9.28 4.9
Simson-R 5.77 6.07 0.07 0.87 0.15
Pappus-R 2.33 2.18 0.02 0.34 0.4
Average 6 .43 1 .85 1 .08 0 .06 1.17 0 .57
Average* 56 .43 7 .85 14 .41 6 .06 7.17 6 .56
Table 2.1. – Output of Gröbner basis benchmarking
in seconds on an Intel Xeon CPU E3-1220 V2 @ 3.10GHz running Ubuntu Linux
11.10 in VirtualBox 4.2.10 on an Ubuntu 12.04.1 host. Timeout is 60 seconds,
timed out tests are shown with empty cells. Average* shows the average by
computing 60 seconds computation time for tests being timed out. The test
“Simson” failed for each computer algebra system. The background reason of this
problem will be explained in Sec. 2.3.5.3. Singular solved the first four tests below
0.01—the benchmarking system was unable to measure timing under this
precision. The CoCoA column shows the results of CoCoAlib via Giac.
6Here for testing we used the PSL version which stands for Portable Standard LISP. Reduce can
be run on different LISP dialects. PSL seemed to be the fastest one, this is why we used it for the
reference. Unfortunately in GeoGebra this dialect cannot be used due to technological issues.
In sum, worse performance could be expected in our case when using Reduce in GeoGebra.
100
2.2 The portfolio prover
The availability of Giac introduced a new situation in 2013. It seemed a perfect
candidate to be used as an embedded system, but it could not outperform Singu-
lar. Giac was definitely faster than Reduce for the more difficult tests even with-
out Giac’s optionally embedded CoCoAlib, so lead GeoGebra developer Michael
Borcherds suggested that Giac should be used as the definitive CAS in GeoGebra
for all purposes.
Here we need to emphasize that another issue played an important role for choosing
the best fitting CAS for the new versions of GeoGebra. From the technical point of
view, GeoGebra is a Java application which requires an underlying system, the Java
Virtual Machine (JVM), installed on each computer which runs GeoGebra. JVM
seemed to be a long term technology for desktop computers since its start in 1995
until the acquisition of Sun Microsystems by Oracle Corporation in 2010. Oracle
had a slightly different vision concerning Java (Wikipedia (2015e)):
Sun’s vice-president Rich Green said that Sun’s ideal role with regard to
Java was as an “evangelist”. Following Oracle Corporation’s acquisition
of Sun Microsystems in 2009-2010, Oracle has described itself as the
“steward of Java technology with a relentless commitment to fostering a
community of participation and transparency”.
On the other hand, “this did not prevent Oracle from filing a lawsuit against Google
shortly after that for using Java inside the Android SDK”. Among other issues, this
shift resulted in changes in confidence of the community in free availability of the
Java technology for the long term. Visible consequences are that the Java technology
is not supported by Apple since end of 20107and Google Chrome dropped Java
applet support (among other related technologies) since end of 2014.8
Instead, more important focus for software development is on JavaScript which has
been supported in all modern web browser applications, and as such, it is available
not only on desktop computers, but on tablets and mobile phones for the last years
(Ancsin et al. (2013)). Thus also the GeoGebra Team considered to convert Geo-
Gebra (as a Java application) to be a JavaScript program. Initial attempts were
started by Gábor Ancsin in this direction in 2009 and the GeoGebra source code
was officially reorganized to support both major platforms desktop and web in 2011,
after successful utilization of the Google Web Toolkit (GWT, Dewsbury (2007)).
This shift required compilation of the embedded CAS from Java to JavaScript, too.
Although we could compile Reduce by using GWT into JavaScript by using two steps
(we needed to compile the underlying LISP framework to Java first, then the result
had to be compiled again to JavaScript), its performance as a web application was
poor (Kovács and Parisse (2015)). By contrast, Giac could be compiled from C++
into Javascript directly by using the emscripten compiler (Zakai (2013)). Thus,
Giac performs very well both in Java (via the Java Native Interface technology
7http://www.cnet.com/news/apple-not-committing-to-java-support- in-mac-os-x-10-7/
8http://blog.chromium.org/2014/11/the-final-countdown-for-npapi.html
101
Chapter 2 Implementation in GeoGebra
(Oracle Corporation (2013)), JNI) and also in JavaScript, however its speed in a
web browser may be at most 10 times slower than in native mode. For our typical
use in GeoGebra this is still acceptable, since the response time for the theorem
proving problem solving is still under 1 second in most cases.
Summarizing the above, Giac became the best choice for the embedded version in
GeoGebra for offline use of the theorem prover, and Singular was proven to be
the best performing symbolical equation system solver which can answer difficult
questions as well. But to use Singular, the user needs online Internet connection.
Although nowadays this is no longer a problem in most classrooms, for better porta-
bility Giac is used by default in GeoGebra 5 also for theorem proving.
2.2.1.4. Singular WebService9
Singular is mostly written in C++. Embedding it into GeoGebra would be theoret-
ically possible. GeoGebra is shipped as two kinds of main but completely different
platforms: the classical, desktop based version, running in a JVM can include em-
bedded systems written in different languages than Java. The standard technology
here is JNI. Unfortunately, the Java standard is no longer well supported in the
recent mobile devices including tablets and smartphones.
This is why GeoGebra has been moving towards a new platform, HTML5, since it is
the de facto standard of many of the present developments world-wide. The HTML5
based web version of GeoGebra (Ancsin et al. (2013)) may also include a compiled
version of Singular via a C++ to JavaScript or C++ to Native Client compiler.
This kind of embedding has already been succeeded with the Giac CAS, also being
written in C++. See Kovács and Parisse (2013) for more details. Despite the
theoretical possibility, for size and simplicity reasons using Singular from GeoGebra
was definitely planned and implemented as an external service. According to site
documentation,10 the minimal Windows installer of Singular 3.1.6 is of size 36 MB
which is about four times bigger than GeoGebra itself. For comparison, Giac can
be compressed to fit in 4 MB as a native library and in 7 MB as JavaScript code.
On the other hand, Giac is rather a general purpose CAS and it does not implement
one of the fast algorithms that used in this dissertation in Sec. 2.3.7.1.11
As a conclusion, we decided to use an outsourced solution by installing a Singular
9This subsection (with minor differences) has already been published as a part of Botana and
Kovács (2014), Section 2.
10http://www.singular.uni-kl.de/index.php/singular-download/
install-windows-single-file.html
11Since Singular is a modular system, it would still be possible to create an embedded minimal
version of it and load the Singular kernel only for basic computations. Then, if additional
functionality is needed, those could be loaded on demand. The compiled version of a minimal
Singular executable is about 5 MB which must contain the GMP library (http://gmplib.org,
500 kB compiled) as well to use arbitrary precision arithmetic. The detailed inevstigation of
this way of using Singular may be subject of future work.
102
2.2 The portfolio prover
instance on a machine accessible via Internet (Botana et al. (2012b)). Our demon-
strational public server (also used in GeoGebra 5 by default when Singular support is
switched on) is currently at singularws.idm.jku.at, what is more, its full software
content is also available for downloading in Kovács (2012d) (375 MB .zip file). Thus
a teacher has two options: he/she either uses our default public server, or has the op-
portunity to download the ISO image of SingularWS, install it into VirtualBox and
set the remote machine to the locally installed Singular web service (SingularWS) in-
stance. This latter option gives more flexibility for heavy computations. A detailed
documentation of this technical process can be read in Kovács (2012c) and Kovács
(2012b). The end user (the student or the system administrator of the classroom)
needs to add the command line argument --SingularWS=remoteURL:http://...
when using GeoGebra as in the second option; here ... is the IP address (or fully
qualified domain name) of the SingularWS instance.
Besides the ISO image, a port of SingularWS for ARM architecture can also be down-
loaded.12 This image (3 GB .zip file), specifically tailored for the low-cost Raspberry
Pi computer, uses Singular through its embedding in Sage. Although computation
times will rise by a factor of ten, this solution could be well suited for wireless use
at schools with no Internet access and heavy budget constraints. By switching Sin-
gularWS caching13 on with command line argument --SingularWS=caching:true
in GeoGebra, the teacher can pre-generate the heavy computations for the local
SingularWS instance before the classroom showtime and the students will use the
pre-computed results on their workstations in an immediate time. In this case it is
suggested that using such teaching materials where the free points are constrainted
to a reduced set than the whole Euclidean plane, for example to grid points (in
GeoGebra Options Point Capturing Fixed to Grid).
Communication with Singular is possible via a simple HTTP connection string
(Fig. 2.5) which starts some simple PHP scripts in the background. The design
of communication is created to be as simple as possible to have a working prototype
within a short timeframe. We found, however, that this solution is robust enough
for the current user community and the required computations of GeoGebra. Future
work will consist of changing the HTTP/PHP interface to a more standard com-
pliant one (for example to SOAP, the Simple Object Access Protocol, and SCSCP,
the Symbolic Computation Software Composability Protocol). Also the input and
output format (which is plain text at the moment) can be extended to MathML or
OpenMath later, however, GeoGebra requires only a low level communication with
SingularWS, that is, this minimalistic approach is satisfactory for now.
For example, the HTTP request http://singularws.idm.jku.at/?c=s&p=ring%
20R=0,(x,y),dp;ideal%20I=x^2,x;groebner(I); asks SingularWS to process the
following Singular commands (“c=s”): create the polynomial ring Rin variables
12http://193.146.36.205/pi_SingularWS_Sage5.8.img.zip
13According to Wikipedia (2015a), “in computing, a cache is a component that stores data so
future requests for that data can be served faster; the data stored in a cache might be the
results of an earlier computation”.
103
Chapter 2 Implementation in GeoGebra
Figure 2.5. – GeoGebra communicates with SingularWS via the HTTP protocol.
Caching layer software Varnish can also be inserted to speed up classroom usage
when the same queries may be sent by more students, but only one computation
is preferred for all of them. Newest version of SingularWS itself can maintain
caching without any extra software required.
xand yover the rational numbers (“p=ring␣R=0,(x,y)”), and then define the
ideal I=hx2, xi(“ideal␣I=x^2,x;”), then finally print the Gröbner basis of I
(“groebner(I);”) with respect to reverse lexicographical ordering, i. e. x<y(“dp”,
this is actually defined previously). (%20 encodes the “space” character, that is
.)14 The PHP wrapper rewrites the client side Singular query to a Unix shell
command which will be directly forwarded to Singular, by starting the computations
inside the timeout15 environment: for each HTTP request a separated Unix process.
The output of the computations will be returned as a single text after all unnecessary
extra comments of Singular (beginning with // characters) are filtered out: in this
example case the text _[1]=x > will be the output (i. e., the Gröbner basis is the
one element set of x).
The timeout environment and the caching facility helps the SingularWS server not
running out of resources when unusually heavy load occurs. The timeout parameter
(the number of seconds to wait before killing the computation, 30 default) can be fine
tuned in the configuration file in SingularWS. Since our demo server is a virtualized
one (with 1 GB RAM and 1 CPU @ 3 GHz installed), in case of extremely heavy
loads its resources can even be increased. Also virtual disk capacity can be increased
when the cache is growing too quickly: now outputs for the requests of the last 5 days
are preserved. In the future we may also limit the number of concurrent processes
either on operating system or application level.
14See a detailed explanation of the meaning of these computations in Sec. 2.3.
15timeout is a standard Unix command written by Pádraig Brady and maintained by the Free
Software Foundation.
104
2.2 The portfolio prover
For GeoGebra, in many cases, the computation time is below 10 milliseconds, and
the communication (assuming acceptable Internet bandwidth between the student
machine and the public Internet network of Johannes Kepler University of Linz,
where the server takes place) is below 40 milliseconds. As a result, GeoGebra with
SingularWS computes a wide range of geometry problems below 50 milliseconds. On
the other hand, this technology offers new perspectives in real time locus or enve-
lope equation computations, especially when lots of such consecutive computations
are needed. http://ggb1.idm.jku.at/~kovzol/data/locusequ/singularws.ogv
shows a short introductory video on using the LocusEquation command16 in Geo-
Gebra 5 communicating with a locally installed SingularWS instance via the HTTP
protocol.
We needed to restrict the Singular command set to prohibit harmful access to the
SingularWS instance. Thus we made some internal modifications17 on Singular to
run it in sandboxed mode by using the command line option --no-shell. This
mode will be available in Singular 3.1.7. (SingularWS currently uses version 3.1.6.)
2.2.2. New commands in GeoGebra: Prove and ProveDetails
One of the most important design principles in GeoGebra is to keep things as simple
as possible (by following the KISS principle, see page 86). This is why we planned to
introduce the Prove command to be very easy to use, and as an extra command for
the advanced users, we created ProveDetails. Basically, mathematical relations
are usually checked with GeoGebra visually (Level 1 verification, see page 28) or by
checking a Boolean relation (Level 2 verification, i. e. numerically). An example for
a Boolean expression can be to create a construction with several points and lines,
and checking if the lines l1and l2are perpendicular, the user should enter l1l2;
now GeoGebra will store this as an expression which can be true or false, depending
on the current configuration of l1and l2. The value of the expression is dynamic: if
the construction objects change (Level 3 verification), then this expression will be
recomputed. (See Fig. 1.30 and Fig. 1.31 for the former example on page 78.)
The Prove command works very similarly. If the user realizes that l1and l2seem
to be always perpendicular, GeoGebra could be asked if this is really the case by
entering Prove[l1l2](Level 6 verification). Now GeoGebra may give answers
“yes”, “no” or “undefined”, depending on it finds a machine generated proof for the
question, or the question turns to be false, or GeoGebra cannot find a way to decide
the question.
Most users will be satisfied with this. But, unfortunately, elementary geometry is
usually more complicated than it seems. Many statements are “almost always true”,
i. e. true under certain general conditions only. For example, a large set of theorems
16http://wiki.geogebra.org/en/LocusEquation_Command
17https://github.com/kovzol/Sources/commits?author=kovzol
105
Chapter 2 Implementation in GeoGebra
about triangles cannot even be formulated if we do not assume that the triangle is
non-degenerate, i. e. their vertices are not lying on the same line. In many schools,
this question is not discussed at all, but in some classes (including those which
are specialized in mathematics) it is very natural to ask the question of the excep-
tional cases. For these users (including students and teachers) we introduced the
ProveDetails command as well. Its input is the same as for the Prove command,
but the output is a list:
1. A list with one element: {true}, if the statement is always true. An example
for this is the midline theorem (see page 134).
2. A list with more elements, containing the Boolean value true and another list
for the degeneracy conditions, if the statement is true under certain conditions,
e. g. {true, {”AreCollinear[A,B,C],AreEqual[C,D]”}}. This means that if all of
the conditions are false, then the statement will be true. For such a statement
a straightforward example is the bisection of the diagonals of a parallelogram
which was discussed in Chapter1, Sec.1.2, here the only degeneracy condition
is “A,Band Care collinear” (see Fig. 1.31 on page 80 and Example 28 on
page 136). That is, GeoGebra will return {true,{”AreCollinear[A,B,C]”}} in
this example.
3. A list {true,{". . ."}}, if the statement is true under certain conditions, but
these conditions cannot be translated to human readable form for some rea-
sons. We will show some such kind of conditions later in Example 43 on page
150.
4. A list with one element: {false}, if the statement is not “generally true”, that
is the previous cases do not include it. An example for such a statement is
that for arbitrary two free points Aand Bthey are equal. Note that this
statement can still be true “sometimes”: if Aand Baccidentally coincide.
This is, however, a very rare situation.
We can even introduce the notion of “always false” statement when consid-
ering the following example: Let point Abe arbitrary, and let point Bbe a
translation of Awith a constant non-zero vector. Now the statement A=B
is always false. GeoGebra does not distinguish “always false” cases from “gen-
erally false” ones.
5. An empty list {} if GeoGebra cannot determine the answer because of lack of
resources, missing steps in the implementation or any other error.
While the categories “always false” and “always true” are obvious, that is “black
and white”, it is not straightforward to determine the border between them. Strictly
speaking, the theorem about the bisecting diagonals of the parallelogram (case 2 in
our list above) could be considered “false” if we do not add the non-degeneracy
condition. Also, we could say that two free points Aand Bcan be equal if they
coincide, that is, our example in case 4 could actually be considered “true” by think-
ing extremely. In the Gröbner basis method we explicitly define the falsity and the
106
2.2 The portfolio prover
truth related to the maximal amount of possible exceptions in the term of dimen-
sions (see Sec. 2.3.4), but this definition is different from GeoGebra’s classification
(see Tab. 2.2).
It is important to emphasize that different proving methods may have different
definitions for falsity and truth. For example, the Gröbner basis method defines
“always false”, “generally false”, “generally true”, “always true” and “other” classes.
We can consider the class “always false” as a special case of “generally false”, and
“always true” as a special case of “generally true”. But statements classified with
“other” are neither “generally false”, nor “generally true”: they are somewhere in-
between. For instance, let us consider the following
Example 1. Let cbe a circle with its center A= (0,0) and its circumpoint B=
(1,0). Let lbe a line that joins Aand B. Now let Cand Dthe intersection
points of cand l. Let us investigate the truth of statement “B=C. Clearly,
this statement is not always true: we can choose C= (1,0) and D= (1,0) as
a counterexample. Since there are two solutions for Cand D, statistically there
is 50% chance to choose good set C= (1,0) and D= (1,0), and also 50% to
choose the “bad one”. In this case the Gröbner basis approach will conclude that
this statement is neither true, nor false, so it is “other”. In other words, it can be
possible to find some additional conditions to make this statement true, for example
by adding the condition “the distance of Band Dis 2. That is, “other” statements
are actually interesting in the sense of discovery: to find extra conditions to make
a “not generally true” statement “true”. (In fact such conditions can be found
automatically by using algorithms which are not discussed in this dissertation, see
Recio and Dalzotto (2009) for details.)
“Harmonization” of the various methods is a crucial question in GeoGebra. That is,
we hope that the various mathematical methods do not output essentially different
results for the same statements, or if there is a contradiction, GeoGebra intelligently
works around the situation. This means that we expect that there are no results
which are “generally true” and “not generally true” at the same time when using
different methods for the same statement. If this expectation is not met, then
GeoGebra cannot be accepted as a reliable theorem prover system.
In case 2 (on page 106) we can suspect whether the output of the ProveDetails
command is universal enough to cover the outputs of the various methods achieving
the degeneracy conditions of a certain question. We will see in Sec. 2.3.5 that
mathematically speaking, it can be not general enough, but for the educational
use it will be sufficient. To be more precise, the general form of such an assumption
is
(¬C1,1∧ ¬C1,2. . . ∧ ¬C1,r1). . . (¬Cs,1∧ ¬Cs,2. . . ∧ ¬C1,rs)
i. e., a disjunction of negated conjunctions. GeoGebra will show only one member
of the disjunction (in many cases, the easiest one).
107
Chapter 2 Implementation in GeoGebra
Gröbner basis Wu’s Prove ProveDetails
always true true {true}
generally true {true,{degeneracy conditions}}
other –
false {false}generally false false
always false
(error/unknown) undefined {}
Table 2.2. – Translation of results of some proving methods to GeoGebra.
A description of the implementation of Wu’s method in OpenGeoProver can be
found at https://code.google.com/p/open-geo-prover/wiki/wu_method.
Remark 2.In Wu’s method and the area method there will always be only one
member of the disjunctions, i. e. the condition is simply ¬C1¬C2. . . ¬Cr. See
Cox et al. (1991) and Janičić et al. (2012) to read more on this.
2.2.3. The Relation Tool
From the educational point of view, these new commands, Prove and ProveDetails
are not really visual, since the output of both commands looks static. This means
that for a given construction both commands will compute some result, but after
dynamically changing the construction by dragging the free points, the outputs of
Prove and ProveDetails will remain the same. This is, although, mathematically
correct and transmits some kind of “theoretical stability”, it may not reflect the
importance of the result that we actually proved something for infinitely many
cases. The fast computation (i. e. that the result is shown almost immediately
on the screen) gives the feeling that something easy is in the background, so in sum
using these new commands can yield an opposite effect as expected. Finally, these
commands cannot be reached from the toolbar: the keyboard is required to enter
them. On the other hand, the output of the ProveDetails command can still be
inconvenient for many students since it is given in a list type object (which is not
visual enough). Needless to say: this is not what we call a successful deployment of
a newly introduced education tool.
Thus we found another way to bind the ATP results to the already existing user
interface well known by many users already. The link is the Relation Tool, already
shown in Fig.1.30 in Chapter1, Sec.1.2.6, which can be improved with non-numerical
checks. But in our new approach we have to be careful: many types of checks
cannot be done symbolically (not only those which are not algebraic), thus we still
need to enable numerical checks. Also it is important to not confuse old users who
already assume that a numerical check will be done (i. e. we should ensure backward
compatibility), and from the classroom perspective it is useful to get a lower level
verification impression first than quickly the perfect answer (cf. Pósa (2001)). (Here
108
2.2 The portfolio prover
GeoGebra uses Level 2.)
So, the idea we come up with is as follows:
1. Use the Relation Tool as previously (i. e., a numerical check is still computed),
but add an extra button “More. . .” on the right to the output statement if
the statement was found to be true numerically. (If the statement is not true
numerically, then this extra button is not shown.)
2. If the student clicks this button, GeoGebra computes the result for the state-
ment by using the Prove command internally. Now (see Tab.2.2) the answer
can be “true”, “false” or “undefined”:
a) In the “true” and “undefined” cases GeoGebra will compute the result
for the statement by using the ProveDetails command as second step.
Its output will be converted to a more user friendly format:
i. If the output is “{true}” and therefore there are no degeneracy condi-
tions, the Relation Tool appends “always true” to the statement.
ii. If the output is “{true,{. . .}}” and there is a list of readable conjuc-
tions found as non-degeneracy conditions, then the list displayed as
a sufficient condition for the statement.
iii. If the output is “{true,{. . .}}”, but non-degeneracy conditions were
found which are not human readable, then the statement is appended
with the message “under certain conditions.
iv. If the ProveDetails command returned “{}”, that is, it does not
give a useful answer,
A. but Prove returned true, then the statement is proven to be
“generally true”;
B. otherwise GeoGebra appends the text “possibly generally
true”.
v. If the ProveDetails command returns “{false}” and the Prove com-
mand returned true, then GeoGebra realizes that an internal error
occured since the result of the Prove and ProveDetails commands
are contradictory. This case should not happen.
b) In the “not generally true” case the Relation Tool appends “but not
generally true” to the statement.
Fig.2.6 explains this decision algorithm as a flowchart. We emphasize here that the
algorithm is a practical approach to optimize computations to quickly get a useful
report for the Relation Tool, based on the answers of the Prove and ProveDetails
commands.
We account for using the text “More. . .” on the button. Since we do not prove the
statement by providing the student with a derivation, we should not use the word
109
Chapter 2 Implementation in GeoGebra
Input:
statement
P ?
P := Prove[statement]
Output 2. (b):
not generally true
PD := ProveDetails[statement]
PD ?
P ?
Internal error
2. (a) v.
true
false
Output 2. (a) i.:
always true
{false} {true}
P ?
undefined
Output 2. (a) iv. A.:
generally true true
Output 2. (a) iv. B.:
possibly generally true
Does the
conjunction of the
non-degeneracy conditions contai n
only human readable
conditions?
Output 2. (a) ii.:
true under conjuction of
specified conditions
Output 2. (a) iii.:
true under
certain conditions
yes
no
Figure 2.6. – The Relation Tool algorithm as a flowchart.
Dashed lines show the default procession flow (that is, the “otherwise” cases).
“prove”. But we also do not want to diminish the importance of what we are doing
here, so a word which is not strong enough, e. g. “verify” or “check” would be too
less here. Also longer explanation like “checking symbolically” would make things
too complicated for the student.
Another important detail is that we make a difference between cases a) iii. and iv. A.
In the first case the student is informed that there should be conditions given, but
they are difficult to explain. In the second case it is not sure that there are any
conditions, that is the statement can be “always true” as well, but GeoGebra cannot
compute the detailed answer. Here the teacher may need to explain this situation.
Also an intentional decision is the wording for case a) iv. B. For the ‘too difficult’
constructions both the Prove and ProveDetails commands return undefined which
110
2.2 The portfolio prover
may mean that
1. one or more steps cannot be formulated, algebraized or processed by Geo-
Gebra, or
2. the computation was too difficult (more memory or CPU time would have
been needed).
Since the numerical verification about the truth of the statement in one particular
instance returned positive, it seems plausible that a symbolical computation with
more resources could certify the numerical computation as well. Also in the first
case there may be additional conditions found to make the conjecture generally
true. This is why we use the word “possibly” here. Of course this does not tell
any certainty about the truth of the statement.
Using the Relation Tool is convenient: the student does not require to use the Input
Bar to enter anything—only mouse clicks are sufficient for the investigation. We
will find some examples in Chapter3 where using the Input Bar could still be useful,
but in most cases the Relation Tool is a quick way for a Level 6 verification of the
statement.
Let us see examples for each case. In Fig. 2.7 the nine point circle theorem is shown.
Given the ABC triangle, we construct feet points of altitudes d,eand fas points
D,Eand F, respectively. Intersection point of dand eis G. Midpoints of AG,BG
and CG are H,Iand J, respectively. Finally, midpoints of sides a,band care K,
Land M, respectively. The statement is that points D, E,F,H,I,J,K,Land
Mlie on the same circle.
Figure 2.7. – The nine point circle theorem
111
Chapter 2 Implementation in GeoGebra
This statement can be formulated by various ways, for example one formalization is
to create circle gwhich is defined by circumference points K,Land M. In this case
the other six points should be checked if they are also elements of circle g. To get
the answer from GeoGebra the student needs to select the Relation Tool, then one
of the six points and finally the circle (or vice versa). GeoGebra will return answers
like in case a) ii., for example
It is generally true that:
Dlies on g
under the condition:
Band Care not equal
For points E,Fwe get similar conditions, and for H,Iand Jwe obtain that non-
degeneracy of triangle ABC is a sufficient condition for their belonging to circle g.
On the other hand it is also possible to ask alignment of points K,Land Mto
g, in this case the trivial answer “always true” will be returned (see case a) i.).
In fact in Fig. 2.7 point Kcoincides with point D, but actually the figure is not
general enough: accidentally (here intentionally) the triangle was constructed to be
isosceles. We can either ask if D=Kor b=cand GeoGebra returns they are “but
not generally” (case b)).
Another formalization of the nine point circle theorem by defining the circle with
circumference points D,Eand F. Surprisingly, the underlying algebraic problem is
completely different in this case and it requires more effective computations. Thus
in GeoGebra 5 by default we may not get a result other than “possibly generally
true” because of the computational complexity of the problems (case a) iv. B.).
On the other hand, when using SingularWS (instead of the default embedded Giac
system18 ), elegant lists of sufficient conditions can be obtained, for example
It is generally true that:
Hlies on g
under the condition:
aand bare not perpendicular and
aand care not perpendicular
18Another option is to change Giac’s timeout setting to more than the default 5 seconds. This
can be achieved by opening the CAS View (for example, in the Options menu), and then in
Options BAdvanced. . . BPreferences – CAS BCAS Timeout (in seconds) change the default
value to say 30 seconds. In addition, the user needs to start GeoGebra by using the command
line and add the option --prover=timeout:30 to allow the prover subsystem to spend more
time with computations than the default 5 seconds. See Appendix D for more details.
112
2.2 The portfolio prover
We can also think of using circumference points H,I,Jor even, for example, F,I,
Mwhen defining the circle. In this latter case we obtain, for example
It is generally true that:
Llies on g
under the condition:
aand bare not equal and
aand care not perpendicular and
band care not perpendicular
or
Under certain conditions:
Elies on g
This last result is as described in case a) iii.
Finally, when circle gis defined as the circumcircle of points D, E and Hthen the
statement Flies on gwill be “generally true” (case a) iv. A).
The examples discussed above are computationally more difficult cases than the
most typical classroom situations. In Chapter 3 we give some detailed examples to
use the Relation Tool in GeoGebra 5, in concrete classroom problems.
However the Relation Tool in GeoGebra 5 is already ready to use in the classroom
for helping the teaching process for proving, there are other possibilities for the fu-
ture to implement. In GeoGebra between two objects there may be more kind of
relationships: for example, two segments can be equal long and/or parallel indepen-
dently. Now the Relation Tool reports numerical checks for all possible relationships
in its output window. This idea could be further improved to collect relationships
among a wider set of objects than two, and investigate all possible combinations
of these objects to collect the relations (see also Chen et al. (2014)). For example,
the student could draw a triangle and its medians and select some (or eventually
all) objects in the figure. In this case GeoGebra could give a list of all relationships
among the selected objects, including the concurrency of the medians. Such a list
can be, however, quite long. Thus it would be important to make it possible to filter
out some trivial relations, or at least to show those first which seem to be interesting
enough.
2.2.4. Summary
Here we summarize the basic idea of this section by adding a hardcopy of Kovács
(2014a).
113
The portfolio prover in GeoGebra 5
Zolt´an Kov´acs
Johannes Kepler University, Department of Mathematics Education
Altenberger Strasse 54, A-4040 Linz, Austria
zoltan@geogebra.org
Abstract. GeoGebra is open source mathematics education software
being used in thousands of schools worldwide. Its forthcoming new ver-
sion 5 will support automatic geometry theorem proving by using var-
ious methods which are already well known, but not widely used in an
education software. GeoGebra’s new embedded prover system chooses
one of the available methods and translates the problem constructed by
the end user as the input for the selected method, similarly to portfolio
solvers. The applicable methods include Wu’s method, the Buchberger-
Kapur method, the Area method and Recio’s exact check method, some
of them as embedded algorithms, others as outsourced computations.
Since GeoGebra maintains the development in an open-sourced way by
collaborating with the OpenGeoProver, Singular and Giac projects as
well, further enhancements can be expected by a larger community, in-
cluding implementing other methods as well.
Keywords: GeoGebra, portfolio solver, computer algebra, computer
aided mathematics education, automated theorem proving
1 Introduction
GeoGebra [1] is educational mathematics software, with millions of users world-
wide. Its founder, Markus Hohenwarter broadened its software development into
an open source project in 2005. GeoGebra has many features (including dynamic
geometry, computer algebra, spreadsheets and function investigation), but it pri-
marily focuses on facilitating student experiments in Euclidean geometry, and
not on formal reasoning. Including automated deduction tools in GeoGebra could
bring a whole new range of teaching and learning scenarios. Since automated the-
orem proving (ATP) in geometry has reached a rather mature stage, some ATP
experts agreed on starting a project of incorporating and testing a number of
different automated provers for geometry in GeoGebra. This collaboration was
initiated by Tom´as Recio in 2010.
It must be emphasized that a number of software systems have been existing
for several years which focus on computer aided proving and dynamic geometry.
The most well known include GeoProof 1by Julien Narboux [2,3], GDI-Discovery
1http://home.gna.org/geoproof/
[4] by Jos´e Valcarce and Francisco Botana, the Geometry Expert2[5] by Shang-
Ching Chou, Xiao-Shan Gao and Zheng Ye, and GEOTHER [6] by Dongming
Wang. These (and some other) dynamic geometry systems (DGS) with ATP
features can efficiently prove many complex geometry theorems, but these ATP
features are not primarily designed for applications in education3. They are, in
many aspects, still in the prototype phase, not yet well distributed, maintained
or not fully operative.
On one hand, GeoGebra is the most widely used DGS in the mathemat-
ics education in the world. According to the webpage http://99webtools.
com/pagerank_tool.php in February 2014 Google PageRank for GeoGebra was
7. This number was the same as for Maple, less than for Mathematica (8),
and greater than for Cabri,Cinderella,The Geometer’s Sketchpad,DrGeo (6),
WIRIS,Geometry Expressions (5), Geometry Expert,kig and Live Geometry
(4).4Also GeoGebraTube, available at http://www.geogebratube.org, GeoGe-
bra’s primary repository for freely available teaching materials, is a dynamically
growing database with more than 90,000 of materials (as of June 2014).
On the other hand, a remarkable amount of work has already been con-
tributed to publicly available algorithms and their implementations. Meanwhile
also open-sourced ATP systems and test databases were introduced, including
OpenGeoProver (OGP) [7] and GeoThms [8], started and maintained by Predrag
Janiˇci´c, Pedro Quaresma and their colleagues. Collaborative work seemed to be
a very important step in widening the availability of ATP algorithms to be used
in education. We found that a primary problem is that scientific contributions to
DGS and ATP are isolated, and in an open-sourced system the existing efforts
could be summarized and continued.
In 2011 Narboux, Yves Bertot and his PhD student Tuan Minh Pham started
to change GeoProof’s user interface to GeoGebra [9], but they still used Coq [10]
as the external formal prover. However, a part of the GeoGebra Team, lead
by the author, advised by Hohenwarter, Recio and Botana, and supported by
Janiˇci´c, started to work on a different approach at the beginning of 2012—their
solution was to use both an embedded system in GeoGebra and also outsourced
computations. This prototype has already been published at the EACA 2012
[11, 12] and CADGME 2012 [13] conferences.
In this paper a general overview is given about the technical details of the
work of the GeoGebra developers related to this latter approach. In Section 2
arguments for the structural decisions are shown. In Section 3 the design of
the portfolio prover is demonstrated. Section 4 shows some examples how the
2http://www.mmrc.iss.ac.cn/gex/
3One example of a system planned for teaching proofs interactively is Jacques
Gressier’s Geometrix, available at http://geometrix.free.fr.
4Similar statistics can be obtained from the Alexa web information company at
http://alexa.com: the February 2014 results are: 9475. Mathematica, 78826. Ge-
oGebra, 178487. Maple, 335343. WIRIS, 1288617. Cinderella, 2063304. Geometer’s
Sketchpad, 4425178. Geometry Expressions, 5295648. DrGeo, 13982880. Geometry
Expert. kig and Live Geometry could not be reliably measured since they are hosted
on KDE’s and Codeplex’s server (which are listed as 20989. and 2238. globally).
implemented system works. Section 5 discusses the possible ways of a future
enhancement of the joint work.
2 Open source collaboration
One of the most advanced pieces of software being available for free download
is the Java Geometry Expert (JGEX [14, 15]) developed by Chou, Gao and
Ye, but built upon the work of several other experts of the modern Chinese
computational mathematics. JGEX’s prover system contains multiple methods
to compute proofs of the input being constructed graphically or by a special
programmatical language. The available methods are the Gr¨obner basis method
(developed by Buchberger, Kapur [16] and others), Wu’s method [17], the Area
method [18] and the geometry deductive database (GDD) method [19].
JGEX gives the opportunity for the user to select from the existing methods
since in some circumstances any of them can fail: each has its strengths and
weaknesses. In GeoGebra’s portfolio prover (PP) we followed the same way, but
an automated selection will be used to minimize user interaction: we assume that
the user is a secondary school student who knows nothing about ATP. That is,
PP will work with default values which can be overridden by only expert users
via command line arguments5.
Unfortunately, the source code for JGEX is not available for free download-
ing, and also the GDD method (which probably has the most remarkable repu-
tation on educational use) is a kind of black box. GeoGebra’s long term success
in the classroom is not only that it is freely available for end users, but it is also
possible to be enhanced and bug-fixed—the open source development model is
a requirement for that.
We also wanted to leave the opportunity for other DGS to use the imple-
mented methods in other applications than GeoGebra as well. For such a war-
ranty we agreed starting a joint work with University of Belgrade on the OGP
system. In its first version OGP was capable only for computing geometry proofs
by using Wu’s method, but later we managed to get support from the Google
Summer of Code project for a summer stipend of a French university student,
Damien Desfontaines—he implemented the Area method in OGP in 2012 [20].
The OGP project was considered as a fruitful way for collaboration of other ex-
perts as well: the Mass point method and the Full angle method were started to
work on (an introductory report on the latter was already published by Quaresma
and Baeta in 2013 [21]).
Meanwhile, we also started to work on internal implementations of other
methods. The first internally implemented method was a new approach sug-
gested by Recio, to use exact coordinates and arbitrary integer arithmetics on
testing geometry statements to obtain yes/no proofs for a set of elementary
theorems. His algorithm [12] was implemented by the Austrian student Simon
5http://wiki.geogebra.org/en/Release_Notes_GeoGebra_5.0#New_Command_
Line_Arguments
Weitzhofer in 2012 and published in his master thesis [22] in 2013. A more tradi-
tional approach, namely the Buchberger-Kapur method (based on Gr¨obner basis
computation), was also implemented by the author, by using external computa-
tions for solving equation systems. This method was later extended to use the
Recio-V´elez algorithm [23] to obtain degeneracy conditions, and the algorithm
was later enhanced for better educational use.
The outsourced computations were achieved by using Singular [24] as an
external web service, running on a dedicated virtual server. This technology was
discussed by Botana and the author in the planning stage of GeoGebra’s ATP
capabilities. For this reason the applied method in GeoGebra is called “Botana’s
method” [11].
However in GeoGebra we already managed to make the prototype work,
many schools and students started to move from the desktop application to a
different technology: they preferred to use tablets and smartphones instead of
desktop PCs and laptops. Unfortunately, the Java technology and the outsourced
computations are not always applicable in the changed way of using computers
in the education. That is why we had to find even new technologies to support
the HTML5/JavaScript approach of application development, including offline
HTML5 applications as well [25]. Fortunately, the GeoGebra Team managed to
change the internal computer algebra system from Reduce [26] to Giac [27] which
was a step forward to support faster Gr¨obner basis computations, also available
in a web browser in offline mode on a tablet or a smartphone [28].
Now GeoGebra’s PP is much more than a prototype. It is fully documented
not only in its source code and the Developers’ Howto6but on GeoGebra’s Wiki
pages7, and a set of demonstrational examples is available on GeoGebraTube8.
It is an extensible system in both GeoGebra and OGP.
We would like to highlight that the success of GeoGebra’s PP is based def-
initely on its open-sourced roots. Without the existing knowledge in the im-
plementations of several modern algorithms in the used systems—especially in
Singular and Giac—GeoGebra would not have the chance to offer competitive
ATP features for the mathematics education. These systems have several years
of programmers’ experience and millions of lines of program code which could
not have been reimplemented from scratch within a reasonable time.
3 The design of PP
The design of PP in GeoGebra is shown in Fig. 1. On the top of the figure
GeoGebra’s user interface is demonstrated: the higher the action is drawn, the
easier communication for the user is assumed. Also in former versions of GeoGe-
bra the highest level action is to use the Relation Tool which purely decides if
6See http://dev.geogebra.org/trac/wiki/TheoremProving for more details. This
documentation includes detailed description of the applied methods and the sup-
ported constructions and statements for them.
7For an example, see http://wiki.geogebra.org/en/ProveDetails_Command.
8See http://www.geogebratube.org/student/b104296 for an example.
Outsourced computations
GeoGebra internal
computations
GeoGebra UI
Relation
Tool
Prove
Prove ProveDetails
ProveDetails ShowProof
ShowProof
FP arithmetics Portfolio
Prover
skills required
R-Prover B-Prover
Built-in CAS
Singular CAS Open-Geo-Prover
W A F M G
verification level
preference
Fig. 1. The design of GeoGebra’s portfolio prover
two geometrical objects have a relation like parallelism, perpendicularity, equal
length etc. Prior to GeoGebra 5 Relation Tool was using floating point (FP)
arithmetics to decide if a certain relation holds between the input objects. In
some cases, however, FP returns the inaccurate or wrong answer, thus the output
for Relation Tool is incorrect.
In such incorrect cases there is a need to increase the “verification level” of
the investigation which means we collect more or more trustworthy information
about the statement to decide. GeoGebra’s new command Prove gives an ATP
answer instead of FP arithmetics with the possible outputs “yes”, “no” or “un-
defined” (the last kind of output means that no trustworthy answer was found).
What is more, the new ProveDetails command can give more details on de-
generacy conditions, that is it can refine the statement by adding a sufficient
condition if needed. For the moment the ShowProof command is not yet im-
plemented just planned: when a “readable enough” proof is found by the ATP
subsystem, it could be shown to the student for ensuring complete certainty.
In the middle of Fig. 1 GeoGebra’s internal computations are shown. PP
optionally analyzes the look of the statement and tries to select the most fitting
method to work with. If no analysis is used (that is, in AUTO mode), then
a simple priority list of the methods is taken: at the moment for the Prove
command this is
Recio <Botana <Wu (OGP) <Area (OGP),
and for the ProveDetails command9:
Botana <Wu (OGP).
Recio’s method (R-Prover) is a quick method for proving statements concerning
points and lines in a triangle. Since it cannot be applied for constructions con-
taining conics, and for more than 3 free points it may be too slow, GeoGebra will
consider Botana’s method (B-Prover) as a fallback in such cases. At the moment
some construction types (including angle bisectors) are not yet implemented in
the B-Prover, thus in such cases GeoGebra will go ahead by using OGP’s Wu’s
method to obtain an ATP answer. If Wu’s method fails, GeoGebra resends the
statement to OGP by requesting the computation via the Area method—for ex-
ample, to prove Ceva’s theorem this will be the only working way at the moment
(see Section 4.3): GeoGebra cannot properly describe yet the thesis statement
for OGP’s Wu’s method to be suitable for processing, but there is an extra al-
gorithm implemented only in OGP’s Area method which accepts a wider set of
statements.
R-Prover uses arbitrary integer arithmetics internally, but B-Prover requires
computing solutions of a polynomial equation system for the Prove command
and elimination for the ProveDetails command. (In general, B-Prover requires
Gr¨obner basis computations.) Detailed investigation showed that it would be too
time consuming to implement an internal algorithm in GeoGebra to efficiently
9Degeneracy conditions can be obtained only by two methods at the moment.
compute polynomial based calculations, thus we use the Singular computer al-
gebra system (CAS) instead. After changing internal CAS of GeoGebra from
Reduce to Giac we found that Giac computed Gr¨obner bases surprisingly effi-
ciently, and its speed was comparable with Singular in many cases. Also Giac
can easily be used in a web browser as well since it is written in C++ and by uti-
lizing the emscripten [29] C++ to Javascript compiler (or Google’s NaCl C++
to Native Client compiler) the Gr¨obner basis computations are still acceptably
fast.10
In the bottom of Fig. 1 the externally used systems are shown. At the mo-
ment, these external systems cannot be used in HTML5 mode (including online
and offline modes)—we used the symbol “@” to mark those subsystems in PP
which are transparent for the technology change. Our future plans include com-
pile both Singular and OGP to be technology transparent.
OGP currently supports Wu’s method (W) and the Area method (A), and
is subject to be enhanced by additional ATP methods including the Full angle
method (F), the Mass point method (M) and the Gr¨obner basis method (G)—the
last is definitely the same as the internal B-Prover in GeoGebra.
At the top of Fig. 1 the Relation Tool is shown as the easiest way to start Ge-
oGebra’s PP. For users having advanced skills, PP is also available via GeoGebra
commands.
4 Examples
In this section four theorems are provided as shown in GeoGebra 5. Most of
them can be introduced in many secondary schools and thus they are examples
of possible classroom uses of GeoGebra’s PP. The first three examples run in
the desktop version, and the final example is shown in a web browser.
Despite the interesting part of the log messages are shown after these ex-
amples, they are not intended to be displayed neither for the students, nor the
teachers. Here they are printed for the researcher’s interest. Students and teach-
ers should be informed via GeoGebra’s user interface only—at the moment in
the Algebra View by getting the output of some GeoGebra commands, and in a
later GeoGebra version inside a dedicated popup window.
That is, the output of the Prove command is currently shown on the left
of the GeoGebra window (by default) among the Boolean Value entries (see the
top-left corner of Fig. 2, 3 and 4). The output of the ProveDetails command
is shown among the List entries (see the bottom-left corner of Fig. 5).
Fig. 2. Heights of a triangle are concurrent
4.1 Heights of a triangle are concurrent
Fig. 2 was created by using GeoGebra 4.9.257.011 by drawing a triangle with its
heights d,eand fand then the command Prove[AreConcurrent[d,e,f]] was
entered in the Input Bar (at the bottom). Here PP selects R-prover to compute
3+2
2tests for a trustworthy answer if the heights are always concurrent (not
considering some degenerate cases). The computation took 8 milliseconds on a
typical PC12:
12:32:26.218 DEBUG: geogebra.m.o$a.run[-1]: Using AUTO
12:32:26.218 DEBUG: geogebra.common.p.y.a[-1]: Using RECIOS_PROVER
12:32:26.219 DEBUG: geogebra.common.l.q.a.a[-1]: nr of tests: 10
12:32:26.224 DEBUG: geogebra.common.l.q.i.<init>[-1]: Benchmarking: 8 ms
12:32:26.224 DEBUG: geogebra.common.l.q.i.<init>[-1]: Statement is TRUE
4.2 Varignon’s theorem
Fig. 3 shows an arbitrary quadrilateral with the midpoints of its sides (E,F,G
and H). Now when considering the quadrilateral EF GH we can find that it is a
10 See http://test.geogebra.org/~kovzol/data/prove-provedetails-20140120/
for a recent report on benchmarking various theorems with the R-Prover based on
computations with Singular and Giac, and compared with OGP’s Wu’s method.
11 Beta versions of GeoGebra 5 are available at http://download.geogebra.org/
installers/5.0.
12 Java method names in the log are obfuscated to ensure faster results and a smaller
software package.
Fig. 3. Varignon’s theorem
parallelogram. To get an ATP yes/no answer to verify this we need the command
Prove[e==g], for example. Since R-Prover cannot deal with Pythagorean dis-
tances, B-Prover is selected by PP. The computation took 47 milliseconds on
a typical PC (which already contains the HTTP request to the external server
and also its background computation—here the uninteresting parts of the log
messages have been omitted and substituted by [...]):
12:56:23.790 DEBUG: geogebra.m.o$a.run[-1]: Using AUTO
12:56:23.790 DEBUG: geogebra.common.p.y.a[-1]: Using RECIOS_PROVER
12:56:23.791 DEBUG: geogebra.common.p.y.a[-1]: Using BOTANAS_PROVER
[...]
12:56:23.806 DEBUG: geogebra.common.p.y.b[-1]: Thesis reductio ad absurdum (denied statement):
12:56:23.806 DEBUG: geogebra.common.p.y.b[-1]: 9. -1+-1*v17*v16^2+-1*v17*v15^2+2*v17*v16*v14+
-1*v17*v14^2+2*v17*v15*v13+-1*v17*v13^2+v17*v12^2+v17*v11^2+-2*v17*v12*v10+v17*v10^2+
-2*v17*v11*v9+v17*v9^2
12:56:23.807 DEBUG: geogebra.common.l.q.n.a[-1]: ring r=(0,v1,v2,v3,v4,v5,v6,v7,v8),
(v9,v10,v11,v12,v13,v14,v15,v17,v16),dp;ideal i=2*v9+-1*v3+-1*v1,2*v10+-1*v4+-1*v2,
2*v11+-1*v5+-1*v3,2*v12+-1*v6+-1*v4,2*v13+-1*v7+-1*v5,2*v14+-1*v8+-1*v6,2*v15+-1*v7+-1*v1,
2*v16+-1*v8+-1*v2,-1+-1*v17*v16^2+-1*v17*v15^2+2*v17*v16*v14+-1*v17*v14^2+2*v17*v15*v13+
-1*v17*v13^2+v17*v12^2+v17*v11^2+-2*v17*v12*v10+v17*v10^2+-2*v17*v11*v9+v17*v9^2;
i=subst(i,v1,0,v2,0,v3,0,v4,1);groebner(i)!=1; -> singular
12:56:23.835 DEBUG: geogebra.common.l.q.n.a[-1]: singular -> 0
12:56:23.836 DEBUG: geogebra.common.l.q.i.<init>[-1]: Benchmarking: 47 ms
12:56:23.836 DEBUG: geogebra.common.l.q.i.<init>[-1]: Statement is TRUE
4.3 Ceva’s theorem
Triangle ABC and its arbitrary internal point Dwas constructed in Fig. 4. Now
intersection points of lines AD,BD,C D and the appropriate sides are E,F,
Fig. 4. Ceva’s theorem
G, respectively. Now let us define g=AG,h=GB,i=BE ,j=EC,k=C F ,
l=F A, then g/h ·i/j ·k/l = 1. Here OGP’s Area method is the only possible
way to get a useful ATP answer to decide the statement. To start PP we enter
Prove[g/h i/j k/l==1]. The result is computed in 4 milliseconds in OGP’s
area subsystem, but since other methods were also attempted to use, the total
time is 95 milliseconds spent in PP:
13:22:01.959 DEBUG: geogebra.m.o$a.run[-1]: Using AUTO
13:22:01.959 DEBUG: geogebra.common.p.y.a[-1]: Using RECIOS_PROVER
13:22:01.960 DEBUG: geogebra.common.p.y.a[-1]: Using BOTANAS_PROVER
[...] not fully implemented
13:22:01.966 DEBUG: geogebra.common.p.y.a[-1]: Using OPENGEOPROVER_WU
[...]
13:22:01.987 INFO: a.b.a.a.a[-1]: Reading input geometry problem...
13:22:01.999 DEBUG: a.b.g.a.e.a[-1]: Args before parsing : ((Segment[A, G] / Segment[G, B]
Segment[B, E] / Segment[E, C]) Segment[C, F] / Segment[F, A]),1
13:22:02.021 ERROR: a.b.a.a.c.e[-1]: Failed to convert statement - missing input argument
13:22:02.022 DEBUG: geogebra.common.p.y.b[-1]: Prover results
13:22:02.022 DEBUG: geogebra.common.p.y.b[-1]: success: false
13:22:02.022 DEBUG: geogebra.common.p.y.b[-1]: failureMessage: Failed in reading input
geometry theorem
13:22:02.022 DEBUG: geogebra.common.p.y.b[-1]: proverResult: null
13:22:02.023 DEBUG: geogebra.common.p.y.b[-1]: proverMessage: null
13:22:02.023 DEBUG: geogebra.common.p.y.b[-1]: time: null
13:22:02.023 DEBUG: geogebra.common.p.y.b[-1]: numTerms: null
13:22:02.024 DEBUG: geogebra.common.p.y.a[-1]: Using OPENGEOPROVER_AREA
[...]
13:22:02.026 INFO: a.b.a.a.a[-1]: Reading input geometry problem...
13:22:02.030 DEBUG: a.b.g.a.e.a[-1]: Args before parsing : ((Segment[A, G] / Segment[G, B]
Segment[B, E] / Segment[E, C]) Segment[C, F] / Segment[F, A]),1
13:22:02.037 INFO: a.b.a.a.d.e[-1]: Converting equal statement. Arguments :
13:22:02.037 INFO: a.b.a.a.d.e[-1]: ((Segment[A, G] / Segment[G, B] Segment[B, E] /
Segment[E, C]) Segment[C, F] / Segment[F, A])
13:22:02.037 INFO: a.b.a.a.d.e[-1]: 1
13:22:02.037 ERROR: a.b.a.a.d.e[-1]: A part of the equality is not the label of a known
construction - trying to parse it as an expression
13:22:02.046 INFO: a.b.a.a.a[-1]: Invoking prover method...
13:22:02.053 DEBUG: geogebra.common.p.y.b[-1]: Prover results
13:22:02.053 DEBUG: geogebra.common.p.y.b[-1]: success: true
13:22:02.053 DEBUG: geogebra.common.p.y.b[-1]: failureMessage: null
13:22:02.053 DEBUG: geogebra.common.p.y.b[-1]: proverResult: true
13:22:02.053 DEBUG: geogebra.common.p.y.b[-1]: proverMessage: null
13:22:02.053 DEBUG: geogebra.common.p.y.b[-1]: time: 0.004
13:22:02.053 DEBUG: geogebra.common.p.y.b[-1]: numTerms: 0
13:22:02.054 DEBUG: geogebra.common.l.q.i.<init>[-1]: Benchmarking: 95 ms
13:22:02.055 DEBUG: geogebra.common.l.q.i.<init>[-1]: Statement is TRUE
As seen, (after taking 1 ms in the R-Prover and realizing that it is not helpful)
B-Prover cannot process the construction since measuring segments are not yet
implemented for it. OGP’s Wu’s method is also unable to read the information
provided by GeoGebra, thus finally OGP’s Area method converts the statement
into an internal object, and then successfully processes it.
4.4 Thales’ circle theorem
Fig. 5. Thales’ circle theorem
Thales’ (circle) theorem states that in a given circle with center A, circum-
point Band diameter DE, lines BD and BE are perpendicular. In Fig. 5 we
use free points A,Band C(which is a technical point to define Dand Eas
intersection points of line AC and the circle). Let us denote BD by band BE
by d. Now GeoGebra command ProveDetails[bd] returns the output list
{true,{”AreEqual[A,C]”}} which has the following meaning:
the statement “bd” holds in general,
if A6=Cthen the statement surely holds.
Clearly, if A=C, points Dand Eare undefined, thus the statement has no
meaning. We emphasize here that Fig. 5 is created by running GeoGebra in a
web browser. Thus here the only possible method is B-Prover, and only with
the embedded CAS, Giac. In this example the construction is loaded from an
external file, thus the Javascript version of Giac (giac.js) must be preloaded
before any concrete computations in PP. This is the technical reason why we
can see that PP ran multiple times (first it reported “undefined” result in 18
ms, then another “undefined” in 3 ms, and the final computation took 2091
ms—“undefined” here is displayed as “Statement is null”).
14:31:25.918 DEBUG: ?: Using AUTO
14:31:25.918 DEBUG: ?: Using BOTANAS_PROVER
14:31:25.919 DEBUG: ?: Testing local CAS connection
14:31:25.928 DEBUG: ?: starting CAS
14:31:25.934 DEBUG: ?: Local CAS evaluates 1 to ?
14:31:25.935 DEBUG: ?: Benchmarking: 18 ms
14:31:25.936 DEBUG: ?: Statement is null
14:31:25.967 DEBUG: ?: Using AUTO
14:31:25.967 DEBUG: ?: Using BOTANAS_PROVER
14:31:25.968 DEBUG: ?: Testing local CAS connection
14:31:25.969 DEBUG: ?: Local CAS evaluates 1 to ?
14:31:25.971 DEBUG: ?: Benchmarking: 3 ms
14:31:25.971 DEBUG: ?: Statement is null
14:31:26.704 DEBUG: ?: giac.js loading success
14:31:27.273 DEBUG: ?: Using AUTO
14:31:27.274 DEBUG: ?: Using BOTANAS_PROVER
14:31:27.275 DEBUG: ?: Testing local CAS connection
14:31:27.275 DEBUG: ?: giac eval: 1
14:31:27.668 DEBUG: ?: giac input:1
14:31:27.673 DEBUG: ?: giac output:1
14:31:27.675 DEBUG: ?: Local CAS evaluates 1 to 1
[...]
14:31:27.719 DEBUG: ?: Thesis reductio ad absurdum (denied statement):
14:31:27.720 DEBUG: ?: 6. -1+-1*v12*v10*v8+-1*v12*v9*v7+v12*v10*v4+v12*v8*v4+
-1*v12*v4^2+v12*v9*v3+v12*v7*v3+-1*v12*v3^2
14:31:27.727 DEBUG: ?: Eliminating system in 10 variables (6 dependent)
[...]
14:31:27.817 INFO: ?: [eliminateFactorized] input to cas: [[containsvars(poly,varlist):=
{local ii; for (ii:=0; ii<size(varlist); ii++) { if (degree(poly,varlist[ii])>0)
{ return true } } return false}],[myeliminate(polylist,varlist):={local ii,jj,kk;
kk:=[]; jj:=gbasis(polylist,varlist,revlex); for (ii:=0; ii<size(jj); ii++) { if
(!containsvars(jj[ii],varlist)) { kk:=append(kk,jj[ii]) } } return kk }],[ff:=""],
[aa:=myeliminate([-1*v7*v6+v8*v5,-1*v8^2+-1*v7^2+v4^2+v3^2,-1*v9*v6+v10*v5,
-1*v10^2+-1*v9^2+v4^2+v3^2,-1+v11*v10^2+v11*v9^2+-2*v11*v10*v8+v11*v8^2+
-2*v11*v9*v7+v11*v7^2,-1+-1*v12*v10*v8+-1*v12*v9*v7+v12*v10*v4+v12*v8*v4+-1*v12*v4^2
+v12*v9*v3+v12*v7*v3+-1*v12*v3^2],[v7,v8,v9,v10,v11,v12])],[bb:=size(aa)],[for ii
from 0 to bb-1 do ff+=("["+(ii+1)+"]: [1]: _[1]=1");cc:=factors(aa[ii]);dd:=size(cc);
for jj from 0 to dd-1 by 2 do ff+=(" _["+(jj/2+2)+"]="+cc[jj]); od; ff+=(" [2]: "+
cc[1]);for kk from 1 to dd-1 by 2 do ff+=(","+cc[kk]);od;od],ff][6]
14:31:27.819 DEBUG: ?: giac eval: [[containsvars... [...]
[...]
14:31:27.902 DEBUG: ?: giac input:[[containsvars... [...]
14:31:29.316 DEBUG: ?: giac output:"[1]: [1]: _[1]=1 _[2]=v5 [2]: 1,1[2]: [1]: _[1]=1
_[2]=v6 [2]: 1,1
14:31:29.318 INFO: ?: [eliminateFactorized] output from cas: [1]: [1]: [...]
14:31:29.324 DEBUG: ?: Considering NDG 1...
14:31:29.329 DEBUG: ?: Trying to detect polynomial v5
14:31:29.349 DEBUG: ?: v5 means x-equality for [v1, v5]
14:31:29.350 DEBUG: ?: Not better than previous NDG score (Infinity), this is Infinity
14:31:29.350 DEBUG: ?: Considering NDG 2...
14:31:29.351 DEBUG: ?: Trying to detect polynomial v6
14:31:29.363 DEBUG: ?: v6 means y-equality for [v2, v6]
14:31:29.364 DEBUG: ?: Found a better NDG score (0.5) than Infinity
14:31:29.365 DEBUG: ?: Benchmarking: 2091 ms
14:31:29.365 DEBUG: ?: Statement is true
In the log we can see that Giac returns the elimination ideal for the Recio-V´elez
algorithm in the same way as Singular does.
5 Conclusion and future work
The DGS facility of GeoGebra is already well known in schools, but also ATP
functionality will be included in the forthcoming version 5. Its careful design in
the user interface and the applied methods using open source technology ensure,
in our opinion, a good start to offer useful new ways to teach and learn Euclidean
geometry.
There is, however, still lot of work to do. Other methods could be imple-
mented either in GeoGebra or OGP (or in even both), the current methods
could be parallelized and further improved. Also the outsourced computations
could be included in GeoGebra by using the newest compilers.
A completely open question is how readable proofs should be shown in Ge-
oGebra without confusing the students. The JGEX application has already many
promising ways which should be further discussed not only by ATP experts but
teachers as well, especially those who teach in secondary schools. After such a
consensus we would like to start to implement the ShowProof command in
GeoGebra.
We believe that GeoGebra (and also OGP) could be a common platform for
other ATP experts to join and since the source code is completely open to the
public, there is no technological obstacle to integrate the knowledge base into a
single application. A long term collaboration with experts from various countries
would be fruitful in each classroom since GeoGebra helps each student in his or
her native language to understand mathematics even more.
6 Acknowledgments
Ivan Petrovi´c, PhD student of University of Belgrade, primary author of OGP
had a great part in making OGP generally work. G´abor Ancsin was the leader
of the HTML5 based experiments in the GeoGebra Team. Michael Borcherds
and Zbynˇek Koneˇcn´y helped regularly to find and eliminate bugs during the
development. Last but not least, Bernard Parisse kindly helped in improving
Giac to be even more robust for Gr¨obner basis computations.
Bruno Buchberger kindly invited the author to present a preliminary version
of this paper at the RISC Theorema seminar on 9 April 2014. The slides for that
talk are available to download at http://ggb1.idm.jku.at/~kovzol/talks/
risc2014-2/.
References
1. Hohenwarter, M.: GeoGebra: Ein Softwaresystem f¨ur dynamische Geometrie und
Algebra der Ebene. Master’s thesis, Paris Lodron University, Salzburg, Austria
(2002) (In German.).
2. Narboux, J.: GeoProof, a user interface for formal proofs in geometry. In:
Mathematical User-Interfaces Workshop, Electronic Proceedings. Schloss Hagen-
berg, Linz, Austria (2007) http://www.activemath.org/workshops/MathUI/07/
proceedings/Narboux-Geoproof-MathUI07.html.
3. Narboux, J.: A graphical user interface for formal proofs in geometry. Journal of
Automated Reasoning 39 (2007) 161–180
4. Botana, F., Valcarce, J.: A dynamic-symbolic interface for geometric theorem
discovery. Computers and Education 38 (2002) 21–35
5. Ye, Z., Chou, S.C., Gao, X.S.: An introduction to Java Geometry Expert. In: Auto-
mated Deduction in Geometry, 7th International Workshop, ADG 2008, Shanghai,
China, September 22-24, 2008, Revised Papers, Lecture Notes in Computer Sci-
ence. Volume 6301. Springer-Verlag (2011) 189–195
6. Wang, D.: Geother 1.1: Handling and proving geometric theorems automatically.
In: Automated Deduction in Geometry, volume 2930 of Lecture Notes in Artificial
Intelligence, Springer-Verlag (2004) 194–215
7. Petrovi´c, I., Jani´ciˇc, P.: Integration of OpenGeoProver with GeoGebra (2012)
http://argo.matf.bg.ac.rs/events/2012/fatpa2012/slides/IvanPetrovic.
pdf.
8. Quaresma, P., Janiˇci´c, P.: GeoThms — a web system for Euclidean constructive
geometry. In: Electronic Notes in Theoretical Computer Science. Proceedings of
the 7th Workshop on User Interfaces for Theorem Provers (UITP 2006). Volume
174. (2007) 35–48
9. Pham, T.M., Bertot, Y., Narboux, J.: A Coq-based library for interactive and au-
tomated theorem proving in plane geometry. In Murgante, B., Gervasi, O., Iglesias,
A., Taniar, D., Apduhan, B., eds.: Computational Science and Its Applications –
ICCSA 2011. Volume 6785 of Lecture Notes in Computer Science. Springer Berlin
Heidelberg (2011) 368–383 http://dx.doi.org/10.1007/978-3- 642-21898- 9_32.
10. Wikipedia: Coq — Wikipedia, the free encyclopedia (2014) http://en.wikipedia.
org/w/index.php?title=Coq.
11. Botana, F., Kov´acs, Z., Weitzhofer, S.: Implementing theorem proving in GeoGebra
by using a Singular webservice. In: Proceedings EACA 2012, Libro de Res´umenes
del XIII Encuentro de ´
Algebra Computacional y Aplicaciones. Universidad de
Alcal´a (2012) 67–70
12. Kov´acs, S., Recio, T., Weitzhofer, S.: Implementing theorem proving in GeoGebra
by exact check of a statement in a bounded number of test cases. In: Proceedings
EACA 2012, Libro de Res´umenes del XIII Encuentro de ´
Algebra Computacional
y Aplicaciones. Universidad de Alcal´a (2012) 123–126
13. Petrovi´c, I., Kov´acs, Z., Weitzhofer, S., Hohenwarter, M., Janiˇci´c, P.: Extending
GeoGebra with automated theorem proving by using OpenGeoProver — presen-
tation at the CADGME 2012 conference in Novi Sad, Serbia. http://ggb1.idm.
jku.at/~kovzol/talks/cadgme12/06/06.pdf (2012)
14. Ye, Z., Chou, S., Gao, X.: Visually dynamic presentation of proofs in plane geom-
etry, part 1. Basic features and the manual input method. Journal of Automated
Reasoning 45 (2010) 213–241
15. Ye, Z., Chou, S., Gao, X.: Visually dynamic presentation of proofs in plane ge-
ometry, part 2. Automated generation of visually dynamic presentations with the
full-angle method and the deductive database method. Journal of Automated
Reasoning 45 (2010) 243–266
16. Kapur, D.: Using Gr¨obner bases to reason about geometry problems. Jour-
nal of Symbolic Computation 2(1986) 399–408 http://www.sciencedirect.com/
science/article/pii/S0747717186800074.
17. Wu, W.T.: On the decision problem and the mechanization of theorem proving in
elementary geometry. Scientia Sinica 21 (1978) 157–179
18. Janiˇci´c, P., Narboux, J., Quaresma, P.: The area method: a recapitulation. Journal
of Automated Reasoning 48 (2012) 489–532
19. Chou, S., Gao, X., Zhang, J.: A deductive database approach to automated geom-
etry theorem proving and discovering. J. Automated Reasoning 25 (2000) 219–246
20. Desfontaines, D.: Theorem proving in GeoGebra: Implementing the area
method into OpenGeoProver (internship report) (2012) http://www.eleves.ens.
fr/home/desfonta/InternshipReport.pdf.
21. Baeta, N., Quaresma, P.: The full angle method on the OpenGeoProver. (2013)
http://ceur-ws.org/Vol-1010/paper-08.pdf, submitted to THedu’13.
22. Weitzhofer, S.: Mechanic proving of theorems in plane geometry. Master’s thesis,
Johannes Kepler University, Linz, Austria (2013)
23. Recio, T., V´elez, M.: Automatic discovery of theorems in elementary geometry. J.
Autom. Reasoning 23 (1999) 63–82
24. Decker, W., Greuel, G.M., Pfister, G., Sch¨onemann, H.: Singular 3-1-6 — A com-
puter algebra system for polynomial computations. (2012) http://www.singular.
uni-kl.de.
25. Ancsin, G., Hohenwarter, M., Kov´acs, Z.: GeoGebra goes web. The Electronic
Journal of Mathematics and Technology 7(2013) 412–418
26. Hearn, A.C.: REDUCE User’s Manual Version 3.8 (2004) http://
reduce-algebra.com/docs/reduce.pdf.
27. Parisse, B.: Giac/Xcas, a free computer algebra system (2013) http://
www-fourier.ujf-grenoble.fr/~parisse/giac.html.
28. Kov´acs, Z., Parisse, B.: Giac and GeoGebra — improved Gr¨obner basis computa-
tions, Special semester on applications of algebra and number theory, workshop 3
on computer algebra and polynomials. https://www.ricam.oeaw.ac.at/specsem/
specsem2013/workshop3/slides/parisse-kovacs.pdf (2013)
29. Zakai, A.: Emscripten: An LLVM-to-JavaScript compiler. (2013) https://github.
com/kripken/emscripten/blob/master/docs/paper.pdf?raw=true.
2.3 The Gröbner basis method
2.3. The Gröbner basis method
In this section we give a general overview of Botana’s method (i. e., the Gröbner
basis method), implemented inside GeoGebra. We do not assume that the reader
has a deeper understanding of the underlying theory in mathematics, but some
elementary knowledge about logic and equations. We will not define the notion of
Gröbner bases in the first part of this section, but use some applications of it as
black boxes.
For simplicity we will focus on the used logic for the ProveDetails command first.
This is somewhat different from the algorithm used by the Prove command which is
described later. Our first approach will still give some understanding of the difficulty
of the applied theory and also the computation complexity.
2.3.1. Logical consequence
2.3.1.1. Definition and examples
We assume that we work in a number field. In the first examples it will be simpler
to think about R.
Definition 3. Let H1, H2, . . . , Hmbe statements depending on variables
v1, v2, . . . , vn. (We will call these statements hypotheses,premises or conditions.)
Let Tbe another statement depending on these variables. (We will call Tthesis
or conclusion.) If for all specializations of the variables into numbers when all of
the statements are true at the same time, Tis also true, then we call the thesis the
logical consequence of the statements and denote by H1, H2, . . . , HmT. (In short,
hypotheses H1, H2, . . . , Hmwill be called a system of conditions. In later sections
we will call a logical consequence a theorem, usually a geometry theorem.)
Example 4. H1:v= 1 v= 2,H2:v= 2 v= 3,T:v= 2. Here H1, H2T
because the only possibility for vto satisfy both H1and H2is v= 2, and this implies
T.
Example 5. H1:v= 1 v= 2,H2:v= 2 v= 3,T:v= 1. Now H1, H26⇒ T
because, as in the first example, the only possibility for vto satisfy both H1and H2
is v= 2, and Tis not true in this case.
Example 6. H1:v= 1 v= 2 v= 3,H2:v= 2 v= 3 v= 4,T:v= 2.
Again H1, H26⇒ Tbecause there are two possibilities for vto satisfy both H1and
H2:v= 2 or v= 3, and Tis true only in one case.
Example 7. H1:v= 1v= 2v= 3,H2:v= 2 v= 3v= 4,T:v= 2v= 3.
Now H1, H2Tbecause, as in the previous example, there are two possibilities for
vto satisfy both H1and H2:v= 2 or v= 3, and Tis true in both cases.
129
Chapter 2 Implementation in GeoGebra
Clearly, Example 6 can be extended in a different way to have a valid logical conse-
quence, namely as in
Example 8. H1:v= 1 v= 2 v= 3,H2:v= 2 v= 3 v= 4,H3:v2= 4,
T:v= 2. Here H1, H2Tbecause the only way for vto satisfy the hypotheses
is v= 2 only, and this implies T. In this example we could have written H3:v=
2v=2as well, assuming that our working domain is R.
Example 8 suggests an algebraic way to formalize our statements. E. g., hypotheses
of Example 4 can be rewritten into the following algebraic form: H1: (v1)·(v2) =
0,H2: (v2) ·(v3) = 0. We will find it convenient to formalize the thesis into a
similar form, too: T:v2=0.
Gröbner basis computation algorithms as external black boxes offer efficient ways
to compute solutions of (or more precisely, “manipulating on”) equation systems
with many variables and equations. It will be useful to turn a logical consequence
decision question into an equation solvability question to make it possible to get
automatic answers for questions in elementary geometry.
We will find useful to deny Definition 3 and introduce another concept:
Definition 9. Let Q= (H1, H2, . . . , Hm;T)be an ordered pair of some hypotheses
and a thesis. We call Qaquestion. If H1, H2, . . . , Hm6⇒ T, then we call Qalogical
non-consequence.
Definition 10. Let N= (H1, H2, . . . , Hm;T)be a logical non-consequence depend-
ing on v1, v2, . . . , vn. Let v0
1, v0
2, . . . , v0
nsuch variables for which H1, H2, . . . , Hmare
all true but Tis false. Then we call v0
1, v0
2, . . . , v0
nacounterexample for N.
Example 11. In Example 6 v0= 3 is a counterexample.
2.3.1.2. Rewriting a question into an equation system
We need two ideas to convert a question into an equation system:
we need to deny the thesis and
add its denied form to the hypotheses.
The validity of this method is a simple result of the reasoning method reductio ad
absurdum, namely
Theorem 12. Given a hypothesis Hand a thesis T,
HT
is valid if and only if
H, ¬T⇒ F
(where Fdenotes the false statement).
130
2.3 The Gröbner basis method
In other words, we will prove a theorem by denying the thesis and get a contradiction.
To deny an equation, we use Rabinowitsch’s trick (Rabinowitsch (1929)):
Theorem 13. Let fR. Then f6= 0 is valid if and only if there exists yRsuch
that y·f1=0.
Proof. Clearly, if f6= 0, choosing y= 1/f we get y·f1 = 0. On the other hand,
if f= 0,y·f1 = y·01=01 = 16= 0 for arbitrary choice of y.
Remark 14.We could have used any non-zero number instead of 1here. Also we
could use any number field instead of R. Later it will be crucial to change Rto C
for all theorems and corollaries because our computations require an algebraically
closed field. For simplicity we used Rhere, but from now on we deal with C.
Corollary 15. Let f(x)be a function in one variable over C. Then f(x)6= 0 is
valid if and only if there exists yCsuch that y·f(x)1=0.
In other words, the following set equation is valid:
{x|f(x)6= 0}={x| ∃ysuch that y·f(x)1=0}.
Corollary 16. Given hypotheses H1, H2, . . . , Hmand a thesis T,
H1, H2, . . . , HmT
is valid if and only if
H1, H2, . . . , Hm,¬T⇒ ∅.
Corollary 17. Let f(v1, v2, . . . , vn)be a function over Cn. Then f(v1, v2, . . . , vn)6=
0is valid if and only if there exists vn+1 Csuch that vn+1 ·f(v1, v2, . . . , vn)1 = 0.
Example 18. Now we can rewrite the algebraic form of Example 4 to an equation
system:
(v11) ·(v12) = 0,
(v12) ·(v13) = 0,
v2·(v12) 1 = 0
which leads to contradiction, and thus it means that Example 4 is indeed a logical
consequence.
Example 19. The same technique for Example 6 yields
(v11) ·(v12) ·(v13) = 0,
(v12) ·(v13) ·(v14) = 0,(2.3.1)
v2·(v12) 1 = 0
which leads to the solution v1= 3,v2= 1, thus Example 6 is indeed a logical
non-consequence. Here v0
1= 3 is a counterexample.
131
Chapter 2 Implementation in GeoGebra
These corollaries will help us to build geometry theorems into algebraic equation
systems. In the first part of the following sections, however, we will not deal with
the underlying algorithms which can manipluate on our equation systems in the
background. Basically we assume that the computation is outsourced to a black
box, that can automatically manipulate on the equation system in a reasonable
time: blackboxing a subproblem is a well known situation in mathematics.
As mentioned earlier, in our case we do not really need to solve any equation systems,
but to decide if there is a solution or not. Thus we simply conclude a yes/no answer
from the black box computation. Later we will learn that sometimes this approach
can be too rude for certain geometry theorems.
Example 20. The following CAS program will decide solvability of (2.3.1) by simply
solving it in Singular:
ring R=0,(v1,v2),dp;
ideal I=(v1-1)*(v1-2)*(v1-3),(v1-2)*(v1-3)*(v1-4),v2*(v1-2)-1;
groebner(I);
A similar piece of code in Giac:
gbasis([(v1-1)*(v1-2)*(v1-3),(v1-2)*(v1-3)*(v1-4),v2*(v1-2)-1],[v1,v2])
The outputs are
_[1]=v2-1
_[2]=v1-3
and
[v2-1,v1-3]
respectively, both are in harmony with Example 19.
Remark 21.Giac also has a more user friendly command to explicitly solve an
equation system:
solve([(v1-1)*(v1-2)*(v1-3),(v1-2)*(v1-3)*(v1-4),v2*(v1-2)-1],[v1,v2])
returns
list[[3,1]]
Remark 22.Singular operates with polynomial rings, e. g. it does the computations
in such “worlds” where the operations addition,subtraction and multiplication are
valid for polynomial elements. In the program code “0” means that the used co-
efficient constants are rationals numbers. dp” is an option for the black box on
how it should exactly order the monomials of a polynomial. This is not interesting
here yet, but will be important later in Sec. 2.3.5.4. We will, however, not change
this option (since it ensures the best result in speed), but set the variable ordering
instead to get the best fitting output.
132
2.3 The Gröbner basis method
We do not use the mathematical notion of ring and ideal in this PhD thesis, to
emphasize that our general approach can also be discussed without these definitions,
at least to demonstrate the general concept. Hereafter we call ideal theory the part
of mathematics which deals with those notions which are not discussed in this PhD
thesis, but important to get a deeper understanding of solving polynomial equation
systems. Since Singular deals with ideals of polynomial rings as terms for user input,
here we still give a short introduction.
Roughly speaking, an ideal is set of all polynomials which takes on the value zero
in case a given equation system holds. Here in Example 20 the ideal Icontains the
basis polynomials p1= (v11) ·(v12)·(v13),p2= (v12) ·(v13)·(v14) and
p3=v2·(v12)1, and all their possible polynomial combinations q1p1+q2p2+q3p3
where q1, q2and q3are polynomials in variables v1and v2with rational coefficients.
It is easy to see that Ican also be written as polynomial combinations of p0
1=v21
and p0
2=v13since p1= 0·p0
1+(v11)(v12) ·p0
2,p2= 0·p0
1+(v12)(v14) ·p0
2
and p3= 1 ·p0
1+v2·p0
2. Now we can say that we found another basis for Ithan
B1={p1, p2, p3}, namely B2={p0
1, p0
2}, i. e. the equation system {p0
1= 0, p0
2= 0}is
equivalent with the original system. Clearly, if the equation system is contradictory,
such a basis for Ican also be {1}since it describes the 1 = 0 equation as an
equivalent equation system. The groebner command in Singular (and gbasis in
Giac) will always compute the {1}basis in such cases, and this will be a sufficient
output for us to decide a geometry question, at least for the moment.
Nevertheless, we need to give a definition at least for the equivalence of equation
systems:
Definition 23. Let S1and S2be polynomial equation systems with complex coef-
ficients and variables v1, . . . , vn. We call S1and S2equivalent equation systems if
the solution sets V1Cnand V2Cn, respectively, are equal.
Remark 24.Here complex coefficients can be changed to rational numbers in our
particular topic about automated deduction in geometry. Also we can use integers
instead of rationals without loss of generality. In the next sections we will always
use integer coefficients for simplicity. (This has also been fruitful in low level imple-
mentation in GeoGebra as well.) Later, in Sec. 2.3.7.1 we will extend the rational
coefficients to a superset of Q.
Remark 25.Precisely speaking, our definition for the equation system equivalence
is not the same as in ideal theory since we cannot explicitly handle multiple roots.
For example, the systems S1={v= 0}and S2={v2= 0}are equivalent here, but
not in ideal theory. The notion of equation system equivalence is, actually, more
strict in ideal theory. For the geometry theorem application, however, multiplicity
is not important (and studying ideal theory there may be a need to handle this
situation by computing the radical of an ideal, actually). On the other hand, both
Singular and Giac assume the ideal theory definition, thus they will return their
output that way if we ask for an equivalent equation system of the input. But since
133
Chapter 2 Implementation in GeoGebra
our definition is more permissive, we will still get an equivalent system (according
to our definition) from both CAS, so this is not an issue anyway.
2.3.2. Structure of geometry theorems
Example 26. The midline theorem claims that cutting along the midline of a tri-
angle creates a segment that is parallel to the base and half as long. In this example
we will deal with the first part of the thesis, namely that a midline itself is parallel
to the base.
Figure 2.8. – Midline theorem
In Fig.2.8 we set up three free points with arbitrary coordinates: A(v1, v2),B(v3, v4)
and C(v5, v6). The midpoints of segments AB and AC will be denoted by D(v7, v8)
and E(v9, v10). By definition v7=v1+v3
2,v8=v2+v4
2,v9=v1+v5
2and v10 =v2+v6
2.
These equations can be written as
2v7v3v1= 0,(2.3.2)
2v8v4v2= 0,(2.3.3)
2v9v5v1= 0,(2.3.4)
2v10 v6v2= 0.(2.3.5)
Here we preferred the equations in such a form where there are no fractions and
right hand side of the equation, i. e. we simplified the equations to a polynomial
equation with integer coefficients which is reduced to zero.
134
2.3 The Gröbner basis method
We also need to check if DE is parallel to BC by using an analytical equation. It
can be easily proven that a suitable equation is
(v7v9)·(v4v6)(v8v10)·(v3v5)=0.
Now by applying Corollaries 16 and 17 we need to add an extra equation to express
the algebraic form of checking parallelism:
v11 ·((v7v9)·(v4v6)(v8v10)·(v3v5)) 1 = 0,
or, in equivalent form as a polynomial equation,
1v11v9v6+v11v7v6+v11v10 v5v11v8v5
v11v9v4+v11v7v4v11v10 v3+v11v8v3= 0.(2.3.6)
Now the numbered equations in this section lead to a contradictory equation system
which means that the first part of the midline theorem is true. This can be checked
by expressing variables v7,v8,v9and v10 in the first four numbered equations and
plugging them into the analytical equation—we will get 0=0, that is, in the final
numbered equation 1=0holds.
Remark 27.We will call the variables of the free points independent, and the other
ones dependent. Each new point introduces two new variables, and the final thesis
introduces an extra variable.
Practically, the number of variables can be reduced by two if we put one of the free
points into a fix place on the Euclidean plane. Usually point A(i. e., the first user
defined free point) is fixed, namely to (0,0) to ease some computations. In many
cases another point, usually B, can also be fixed without loss of generality since
elementary geometry theorems are invariant of similarity. We usually fix Bto (0,1).
Later in Remark 53 we will see that this can result in losing important pieces of
information about sufficient or necessary conditions for the statement. Thus we will
not fix the second point for the ProveDetails command (even if this could save
significant amount of computation time for certain theorems), but do that for the
Prove command where we do not need extra information exactly when the thesis
true is.
This example also shows some details of the possible complexity of the geometry
problems in general. Bardet (2002) mentions that solving an equation system in
nvariables can be done in 22O(n)steps in general, but for specific systems this
estimation is too large. Nevertheless, there are sample “badly behaving” equation
systems which cannot be solved in less steps than the general case.
All of these considerations mean that by setting up the equation system for the
black box to decide solvability, we must be careful to keep the number of variables
as low as possible, and sometimes it may be required to re-formalize the problem to
a different form to help the black box to give the answer fast enough.
135
Chapter 2 Implementation in GeoGebra
2.3.3. Elimination instead of equation solving
In some cases we cannot get a simple contradiction from the equation system. The
following example shows a case which is easy to observe.
Example 28. As we did in Chapter 1, Sec. 1.2 in details as end users, now we
investigate the parallelogram theorem from our mathematical approach once more
(Fig. 2.9).
Figure 2.9. – Diagonals of a parallelogram bisect each other
Here we set up three free points again, A(v1, v2),B(v3, v4)and C(v5, v6). Then the
parallel lines with AB and BC, going through Cand A, respectively, will intersect
each other in the dependent point D. One can find that the parallel lines are
constructed by defining two technical points, namely T1(v7, v8)and T2(v9, v10)which
are simple vector translations:
CT1=
BA and
AT2=
BC. Surprisingly, these
equations yield T1=T2=Din this special case, but in general GeoGebra may
not realize any correlations after automatically creating the equations. Also in this
case Dis just defined by lying on both parallels, claiming that both A, T1, D and
A, T2, D are collinear. This is how the defining equations for D(v11, v12 )have been
created.
Remark 29.For checking collinearity, we simply used that the area of the triangle
136
2.3 The Gröbner basis method
with coordinates (a, b),(c, d)and (e, f )is
a b 1
c d 1
e f 1
2
which is zero if and only if ad +be +cf af bc de = 0. Obviously, the area of a
triangle is zero if and only if the triangle is degenerate, i. e. its vertices are collinear.
The same type collinearities can be set up for dependent point E(v13, v14): points
B, E, D and A, E, C are collinear since the definition of Eis being the intersection
of BD and AC. Finally, we can set up two more equations to define the coordinates
for dependent point F(v15, v16 )which is a midpoint of AC.
Now we are ready to formalize the thesis. We have two possibilites to tell analytically
that Eand Fare the same points:
1. We claim that the Cartesian distance of Eand Fis zero.
2. We claim that the Cartesian coordinates of Eand Fare the same, i. e. v13 =v15
and v14 =v16.
In the first case our analytical equation would be
(v13 v15)2+ (v14 v16)2= 0,(2.3.7)
but in the second case we need to show both v13 v15 = 0 and v14 v16 = 0. The first
way seems easier, but unfortunately it may introduce a black box related problem:
all equation solvers based on Gröbner bases use algebraically closed fields in the
background computations. Theoretically there is no possibility to stay in Rduring
the algorithm; typically the solutions will be given in Cin our case. This means
that even if there is no way to solve (2.3.7) with real coordinates on the Euclidean
plane, there may be complex value solutions for v13, v14, v15 and v16 which have,
of course, no geometrical meaning, but the black box still accepts them because of
the algebraic possibility. (E. g., since i2+ 1 = 0, for example v13 =i,v14 = 1,
v15 =v16 = 0 would satisfy (2.3.7), but without any meaning in the Euclidean
geometry.)
That is why we will prefer the second way to describe point equality. This may
require, however, solving two equation systems, but finally we can be sure that the
result is acceptable from the geometrical point of view. Another possible way is to
assemble the two theses into one (see Remark 31 on page 140 for more details on
this).
137
Chapter 2 Implementation in GeoGebra
Now we have the following equation systems to solve:
v7v5v3+v1= 0,(2.3.8)
v8v6v4+v2= 0,
v9+v5v3v1= 0,
v10 +v6v4v2= 0,
v11v8v12v7v11v6+v7v6+v12 v5v8v5= 0,(2.3.9)
v12v10 v12v9v11v2+v9v2+v12 v1v10v1= 0,(2.3.10)
v13v6+v14v5+v13v2v5v2v14 v1+v6v1= 0,
v13v12 +v14v11 +v13v4v11 v4v14v3+v12 v3= 0,
2v15 v5v1= 0,
2v16 v6v2= 0,
1v17v15 +v17v13 = 0;
and
v7v5v3+v1= 0,
v8v6v4+v2= 0,
v9+v5v3v1= 0,
v10 +v6v4v2= 0,
v11v8v12v7v11v6+v7v6+v12 v5v8v5= 0,
v12v10 v12v9v11v2+v9v2+v12 v1v10v1= 0,
v13v6+v14v5+v13v2v5v2v14 v1+v6v1= 0,
v13v12 +v14v11 +v13v4v11 v4v14v3+v12 v3= 0,
2v15 v5v1= 0,
2v16 v6v2= 0,
1v18v16 +v18v14 = 0.
Both equation systems have solutions which means that the thesis is not true in all
cases. In other words, there are some positions of the parallelogram when points E
and Fdiffer.
Now we will introduce an improved technique to handle such situations: Instead of
getting a yes/no answer from the black blox, we ask it to eliminate the dependent
variables from the equation system, and return with an equivalent system which
contains only independent variables. Basically, such a request needs similar com-
putations in the background, namely computing Gröbner bases again, but here we
may need to specify some ordering of the independent variables. In general, different
orderings may give different (but equivalent) equation systems.
Here we explain the basic idea of this elimination technique:
138
2.3 The Gröbner basis method
1. Obviously, the dependent figure variables (here v7, v8, . . . , v16) can be ex-
pressed by the free variables (here v1, v2, . . . , v6) because of the definitions
of the geometrical construction steps, as usual in analytical geometry. For
example in the first system (2.3.8) yields v7=v1+v3+v5, and similar
simple results can be obtained for v8, v9, v10, and after substituting these re-
sults into (2.3.9) and (2.3.10) we will get two parametric equations with vari-
ables v11 and v12 and parameters v1, v2, . . . , v6. This system can be solved
then: v11 =p11/q11 where p11 =v2
1v4+v2
1v6+v1v2v3v1v2v5+v1v2v6+
v1v3v42v1v3v6+v1v4v6+v1v5v6v1v2
6v2
2v5v2v2
3+ 2v2v3v5v2v3v6
v2v2
5+v2v5v6+v2
3v6v3v4v5v3v4v6v3v5v6+v3v2
6+v2
4v5+v4v2
5v4v5v6and
q11 =v1v2v2
2v2v5+v2v6v3v4+v2
4+v4v5v4v6,v12 =p12/q12 where
p12 =v1v2v4+2v1v2v6+v1v2
4v1v4v6+v2
2v32v2
2v5v2v3v4v2v3v6+2v2v4v5
and q12 =q11. Similarly, v13, v14, v15, v16 can also be expressed. We can provide
an acceptable justification for this by mentioning the constructive definition
of the geometrical figure, and thus the equations as well. 19 Finally, v17 (and
also v18) are linear equations and therefore these last variables can also be
expressed by the free variables.
2. During the elimination steps there may be extra equations occurring due to
possible exotic positions of some points. Here point Eis sometimes not ex-
plicitly defined since it is an intersection of two lines, but what happens if
these two lines are actually the same? Geometrically in this case (v13 , v14)is
not one point, but a line, thus we need to add an equation to explain the con-
strained relationship between v13 and v14. After expressing both v13 and v14
by the free variables, geometrically we will have to get a constraint between
points A,Band Cto be collinear as this constrained relationship. Practically
speaking, we want to force showing a contradiction, but the equation system
like an organism wants to find an excuse (a counterexample), and simplifying
the whole in the free variables only, the natural result is to get a collinearity
equation of A,Band Cas the equivalent equation system.
The mini-example in Fig. 2.10 explains the situation even more. Let us consider
a special case of the theorem claiming the medians of a triangle are concurrent.
Now the vertices of the triangle are (0,0),(6,0) and (0,6v). Clearly, midpoints of
the segments are (3,0),(0,3v)and (3,3v). Now by using the collinearity equation
for (0,6v),(x, y)and (3,0), and also for (0,0),(x, y)and (3,3v)we get equations
18v6vx 3y= 0 and 3xv 3y= 0; we can also get similar equations for (0,3v),
(x0, y0)and (6,0), and also for (0,0),(x0, y0)and (3,3v):18v3vx06y0= 0 and
3x0v3y0= 0 (4 equations). Now we want to investigate two cases: if v6= 0, then
x=x0=y/v =y0/v and y=y0= 2vsince 18v6v·y/v 3y= 18v9y= 0
and 18v3v·y0/v 6y0= 18v9y0, thus also x=x0= 2. But if v= 0, both x
and x0can be arbitrary. Now if we want to prove, for example, that x=x0(as a
necessary step to prove (x, y) = (x0, y0)by equality of coordinates), another equation
19Here we omit the general justification. Some more details are discussed in Sec. 2.3.5.5 without
being rigorous.
139
Chapter 2 Implementation in GeoGebra
z(xx0)1=0(the 5th equation) is needed for the negated thesis. Of course, when
assuming v6= 0 there is indeed no solution of this equation system, but when we
want to substitute our 5 equations with an equivalent system by using only variable
v, it is indeed the v= 0 “system” (consisting of 1 equation): this system has a
solution exactly when the original system (consisting of 5 equations) is solvable.
Figure 2.10. – Mini-example: possible need for extra equations on elimination
Remark 30.Division by vshows the necessity for adding an extra equation after
eliminating the appropriate variable. In fact, above the same technical issue was
present when a division was required by q11 (since v11 =p11/q11,see above).
Remark 31.As mentioned in Remark 29, we can also assemble more theses into one.
In the mini-example in Fig. 2.10 we prefer to prove x=x0and y=y0at the same
time. Now, by using Rabinowitsch’s trick twice,
¬(x=x0y=y0)
¬(x=x0)∨ ¬(y=y0)
¬(xx0= 0) ∨ ¬(yy0= 0)
xx06= 0 yy06= 0
z(xx0)1=0 z0(yy0)1=0
(z(xx0)1) ·(z0(yy0)1) = 0,
that is, it is possible to construct just one negated equation for the two theses. Also
actually z0must not necessarily be different from z(because it is enough to find one
counterexample either for x6=x0or y6=y0), so we do not need an extra variable,
however the equation may be more complicated than having two equations (for two
systems, as in Remark 29). See Appendix of Recio and Dalzotto (2009) (Proposition
6 and Corollary 2) for a generalization.
140
2.3 The Gröbner basis method
The clear advantage of elimination instead of simple equation solving is that we may
have three kinds of answers (not only two):
1. The equation system is contradictory, we simply get 1=0as the equivalent
system. In this case the thesis is a logical consequence of the hypotheses: the
geometry theorem is always true, independently from the position of the free
points.
2. The equation system has a solution, and there is an equivalent equation sys-
tem (consisting at least of one equation which is not 0 = 0) being expressable
by the independent variables. In this case the thesis is a logical consequence
of the hypotheses, i. e. the theorem is true, but only under certain conditions.
If we can satisfy all equations in the equivalent system, then we found a coun-
terexample for the theorem which means if we put the free points into such
positions as the counterexample suggests, then the thesis will fail.
3. The equation system has a solution, but there is no extra equation generated
during the elimination. Here the thesis is not a logical consequence of the
hypotheses, i. e. the theorem fails, simply because all of the free variables can
be arbitrary chosen to get a counterexample. (In fact the equivalent system
here is the 0 = 0 system.)
By defining the variable ordering to v1, v2, v3, v4, v5, v6for both questions, we get the
following equivalent system in both cases:
v5v4+v5v2+v4v1v2v3+v3v6v6v1= 0,
which has the geometrical meaning A, B and Care collinear. In other words, we
found the sufficient and necessary condition to make the thesis work. In secondary
school, we can formulate our results as follows:
Let ABCD be a parallelogram. Its diagonals bisect each other if and
only if the parallelogram is non-degenerate.
Remark 32.What happens in the degenerate case? As we already saw, if A, B and
Care collinear, then Dis still uniquely defined, but intersection of AC and BD
is not a single point, but a whole line. Thus Eis not uniquely determined. On
the other hand, Fis still a unique point. In the concept of counterexamples, this
means that we can set up points A, B, C, D, E and Fto satisfy all hypotheses, but
not the thesis: let A, B, C collinear, construct Dand Fby definition, and choose
an arbitrary E6=Fon the ABC line. Now we can conclude that in the collinear
(degenerate) case the thesis indeed fails.
Remark 33.By using a different variable ordering, we may get the q11 = 0 equation
as the equivalent system, too, among possibly others. That is, there can be different
conditions for a statement to be true.
141
Chapter 2 Implementation in GeoGebra
2.3.4. “Generally false” and “other” statements, discovery
Although in GeoGebra we do not distinguish between “generally false” and “other”
types of statements (see Tab.2.2), but we classify them as “false” theses, the algebraic
geometry approach makes it possible to make a difference. This may be fruitful for
further developments of GeoGebra towards discovery.
In this subsection we use the examples from Sec.2.2.2 for further investigation. We
concentrate on the number of free variables to make it possible to visualize the set
of free points where the statement is actually true. Then we will conclude a “visual
answer” about the falsity/truth of the statement.
1. “Always true” statements. Here we use the midline theorem (see Fig. 2.8 on
page 134) again, but with fixed points B= (0,0),C= (1,0). Let A= (v1, v2)
arbitrary, here we assume that v1and v2are real numbers, but in theory these
may be complex numbers, too. By assuming real numbers we can draw a
coordinate system with axes v1and v2and mark the suitable points (v1, v2)
which provide a true special case for the statement. In this case all points
of the coordinate system are marked, so we conclude that the statement is
“always true”.
2–3. “Generally true” statements. We use the bisection of the diagonals of a paral-
lelogram again as in Example 28 on page 136. Now we assume that B= (0,0),
C= (1,0) and let A= (v1, v2)arbitrary. Since the degeneracy condition is
collinearity of A, B and C, the unmarked set of falsity is the v1-axis (that is,
where v2= 0). The “majority” of the coordinate system, a two-dimensional
set shows the set of “truth”, and a minor subset, a one-dimensional line shows
the set of “falsity”.
4. “Generally false” statements. We use the example for arbitrary two free points
Aand Bto decide if they are equal. Let us assume that B= (0,0) and
let A= (v1,v2)arbitrary. Now the “majority” of the coordinate system is
unmarked, the only marked point is (0,0) which is a zero-dimensional subset
of R2, while the set of unmarked points is two-dimensional.
We used here a two-dimensional coordinate system, but this model can be general-
ized to more variables. Visualization can however be a problem over 3 dimensions.
Now let us distinguish between the “generally false” and “other” cases by extending
Example 1 (page 107). As mentioned earlier, GeoGebra does not make a difference
here. We generalize Example 1 by putting point Bto (b, 0) instead of (1,0). By
using elimination we investigate the situation as follows:
1. We set up equations
y= 0 (2.3.11)
for line land
x2+y2=b2(2.3.12)
142
2.3 The Gröbner basis method
for circle c.
2. We set up negated thesis x=bby using Rabinowitsch’s trick as
z·(xb)1 = 0.(2.3.13)
3. Now bis the only free variable, so we eliminate all variables but bfrom the
equation system {(2.3.11), (2.3.12), (2.3.13)}. The equivalent system is {0 =
0}, thus the statement is “not generally true”.
4. Now we check if the negation of the negated thesis is true, so we change 2.3.13
simply to the thesis
x=b. (2.3.14)
5. Now bis the only free variable again. By eliminating all variables but bfrom the
equation system {(2.3.11), (2.3.12), (2.3.14)} we get {0 = 0}again, thus the
statement is “not generally false”, either. So we concluded that this statement
is of “other” type.
These computations can be done either with Singular or Giac by using the following
inputs for steps 1–3:
ring R=0,(b,x,y,z),dp;
ideal I=y,x^2+y^2-b^2,z*(x-b)-1;
eliminate(I,x*y*z);
in Singular results in _[1]=0. Here the product of the non-free variables must be
set as the second parameter for the eliminate command. A similar piece of code in
Giac is
eliminate([y,x^2+y^2-b^2,z*(x-b)-1],[x,y,z])
which returns [].
Now we may be interested of what kind of extra hypotheses could be added to make
this statement “generally true”. Let us follow Example 1 again and try to express
that points Band Dshould have a distance of 2b:
1. Let us assume that C= (x, y)and D= (x0, y0).
2. We need to set up equations
y0= 0,(2.3.15)
x02+y02=b2(2.3.16)
to define Das an intersection point of land c.
3. We distinguish Cand Dby adding
z0·((xx0)2+ (yy0)2)1 = 0 (2.3.17)
by using Rabinowitsch’s trick to deny having a zero Cartesian distance between
them.
143
Chapter 2 Implementation in GeoGebra
4. We define distance of 2bbetween Band Dby adding
(x0b)2+ (y00)2= (2b)2.(2.3.18)
5. Now after checking system {(2.3.11), (2.3.12), (2.3.15), (2.3.16), (2.3.17),
(2.3.18), (2.3.13)} we get contradiction, so we indeed found suitable extra
hypotheses to make a “not generally true” statement “true”. (Note that for
technical reason here we needed 4 hypotheses to express the extra condition.)
2.3.5. Readable sufficient conditions
The Gröbner basis method is basically a conversion of a geometry theorem into an
algebraic form. When we get some extra conditions for a thesis to satisfy, we need
to convert the achieved equations to such geometrical meanings which make sense
for the education as well. Unfortunately, this conversion step is not straightforward
and various problems can come up.
2.3.5.1. More possible sets of conditions
Example 34. Altitudes of a triangle are concurrent, as seen in Fig. 2.11.
Figure 2.11. – Altitudes of a triangle are concurrent
144
2.3 The Gröbner basis method
We use a similar technique here as in the previous example. After setting up the
three free points A, B and C, we implicitely introduce technical points T1(v7, v8)
and T2(v9, v10)which are the foot points of Band C, respectively. To define, for
example, the foot point T1, we used the fact that A, T1and Cmust be collinear,
and AC T1B.
Remark 35.An equation for the perpendicularity can be set up by using the scalar
product of two vectors, i. e.
(v7v3)·(v1v5)+(v8v4)·(v2v6)=0.
Intersection of altitudes are again described by collinearities. Equality for points D
and Eis tested exactly like in the previous example. By requesting an equivalent
system of the original one (which has 11 equations in 17 variables, but can be
reduced to 15 variables by fixing Ato (0,0)) from the black box with variable
ordering v3, v4, v5, v6we get the following equations:
(v4v5v3v6)2= 0,
(v4v5v3v6)·(v3v5+v2
5v4v6+v2
6)=0,
(v4v5v3v6)·(v2
3v2
4+v2
5+v2
6)·v6= 0.
Note that the equations have been written in factorized form to separate the pos-
sible geometrical meanings. Before we convert these set of equations back to have
geometrical meanings, we need to understand that all of these equations must be
true to find a counterexample for the thesis not to work. In general, if any of the
equations here is not true, it means there will be no counterexample, i. e. then the
thesis will always be true. In other words, if we want to get a sufficient condition
for the thesis to work, it is enough to choose only one of the equations and mess up
all its factors to be non-zero.
In this case we can get three different geometry theorems by choosing one of the
equation to mess up. Since v1=v2= 0 due to the fixed point A, one can simply
realize that the factor v4v5v3v6is about collinearity of A, B and Cagain. Factor
v3v5+v2
5v4v6+v2
6(= 0) turns out to be a perpendicularity condition for segments
AC and BC. Factor v2
3v2
4+v2
5+v2
6(= 0) has the meaning that the triangle ABC
is isosceles with segments AB =AC. Finally, the geometrical meaning of v6(= 0)
in this case the same as v6=v2(or, in other words v6v2= 0) which simply means
that the y-coordinates of Cand Aare the same.
After all we get the following geometry theorems:
1. Let ABC a non-degenerate triangle. Then its altitudes are concurrent.
2. Let ABC a non-degenerate triangle with AC 6⊥ BC. Then its altitudes are
concurrent.
3. Let ABC a non-degenerate, non-isosceles triangle so that the y-coordinate of
Cand Aare different. Then the altitudes of the triangle are concurrent.
145
Chapter 2 Implementation in GeoGebra
Remark 36.The following CAS program (generated by GeoGebra automatically) is
used to get the equivalent equation system in factorized form from Singular:
ring r=0,(
v3,v4,v5,v6,
v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17),dp;
ideal i=
v7*v6+-1*v8*v5,
v8*v6+v7*v5+-1*v6*v4+-1*v5*v3,
-1*v9*v4+v10*v3,
-1*v10*v4+v6*v4+-1*v9*v3+v5*v3,
v11*v8+-1*v12*v7+-1*v11*v4+v7*v4+v12*v3+-1*v8*v3,
v11*v10+-1*v12*v9+-1*v11*v6+v9*v6+v12*v5+-1*v10*v5,
-1*v13*v6+v14*v5+v13*v4+-1*v5*v4+-1*v14*v3+v6*v3,
-1*v14*v6+-1*v13*v5+v14*v4+v13*v3,
v15*v14+-1*v16*v13,
v15*v10+-1*v16*v9+-1*v15*v6+v9*v6+v16*v5+-1*v10*v5,
-1+-1*v17*v15+v17*v11;
ideal e=eliminate(i,v17*v16*v15*v14*v13*v12*v11*v10*v9*v8*v7);
list o;
int s=size(e);
int j;
for (j=1; j<=s; j=j+1) {
o[j]=factorize(e[j]); }
o;
The output is:
[1]:
[1]:
_[1]=1
_[2]=v4*v5-v3*v6
[2]:
1,2
[2]:
[1]:
_[1]=-1
_[2]=v4*v5-v3*v6
_[3]=-v3*v5+v5^2-v4*v6+v6^2
[2]:
1,1,1
[3]:
[1]:
_[1]=-1
_[2]=v4*v5-v3*v6
_[3]=-v3^2-v4^2+v5^2+v6^2
_[4]=v6
[2]:
1,1,1,1
In Giac we can write similar code with the same mathematical content:
[[aa:=eliminate([
146
2.3 The Gröbner basis method
v7*v6+-1*v8*v5,
...
-1+-1*v17*v15+v17*v11],
[v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17])],
[bb:=size(aa)],
[for ii from 0 to bb-1 do
cc[ii]:=factors(aa[ii]);
od],
cc][3]
but unfortunately this equation system is too difficult to investigate by Giac before
timeout. (In Appendix C, Sec.C.3.3 we show the complete Giac code to obtain liter-
ally the same output from Giac like Singular produces its output. This is mandatory
for GeoGebra for handling the blackbox outputs in a unified way. Note that Giac,
at least for the moment, does not require any ordering to be set. At the end of our
investigation we will see that Giac internally sets an ordering automatically which
seems to be fruitful in most cases, too.)
Let us observe the obtained theorems. Clearly, the most good-looking theorem here
is the first one. It is the simplest, and in fact the other two ones are just restricted
versions of it. This idea suggests comparing the possible equations and give a score
for their usability in the classroom.
Another suggestion is to avoid showing such geometrical meanings which are not
synthetic, i. e. that contain conditions which can only be described analytically.
For example, the condition “y-coordinates of two points are the same” is like that.
Why we need only synthetic geometry conditions? The answer is, simply, that in
the classroom by using no computers, the Euclidean theorems are purely synthetic,
always. We do not want to confuse the students by introducing a non-synthetic
condition which is, in fact, completely technical, and is just a side effect of using an
algebraic method as a long bypass.
Now we can already agree on giving some usability scores to each type of geometrical
meaning. For example, collinearity can get 1 point, parallelism and perpendicularity
just 3/4, point equality 1/2, segment equality (a triangle is isosceles) 5/4, coordinate
equality . By using this scoring, the theorems above can get 1,1.75 = 1+3/4and
= 1 + 5/4 + points as total, the less the better. Finally, GeoGebra will choose
the first one since it is the simplest, according to the scoring as well. (Weights
for scoring here are somehow subjective, however, in our opinion they reflect the
difficulty of a property notion faithfully.)
Remark 37.Here we did essentially the same what Recio & Vélez reported in Recio
and Vélez (1999), but without mentioning any details about ideal theory and Gröb-
ner bases. Of course, the black box implementations heavily use both the theory
and its algorithms to compute the answers quickly enough for the GeoGebra end
user.
Remark 38.In this special example we could have said that the collinear property
is a sufficient and necessary condition of the negation of the statement. Clearly, by
147
Chapter 2 Implementation in GeoGebra
assuming v4v5v3v6= 0 all the three equations are true since the left hand sides
are zero, thus collinearity is a sufficient counterexample. Conversely, if collinearity
is not assumed, the first equation is false, so we get a contradiction, and the logical
consequence will be correct.
Remark 39.Another algebraic way to check concurrency is to introduce another
technical point and set up three collinearity equations for the lines to be tested.
Definition 40. Let N= (H1, H2, . . . , Hm;T)be a logical non-consequence. We call
the set {C1, C2, . . . , Cr}degeneracy conditions for Nif C= (H1, H2, . . . , Hm,¬C1
¬C2. . . ∧ ¬Cr;T)is a logical consequence.
The three obtained geometry theorems include three different degeneracy conditions
as sufficient conditions to satisfy the thesis.
Let us summarize the above steps in the following algorithm:
1. Turn the input question Q= (H1, H2, . . . , Hm;T)to an equation system S
with variables v1, . . . , vnby using reductio ad absurdum, Rabinowitsch’s trick
and the fixed point A(0,0).
2. Send Swith some ordering of the independent variables as input to the black
box for computing an equivalent equation system by eliminating the dependent
variables.
3. Get an equivalent equation system S0back as set of equations with polynomial
factors on the left hand side and 0on the right hand side. (If there is a factor
with a higher exponent, then that exponent can be omitted.)
4. If S0={1 = 0}, then show “the answer to the question is always true” as
output, and stop.
5. If S0={0 = 0}, then show “the answer to the question is false” as output,
and stop.
6. Otherwise, for each polynomial pof the left hand side of equation p= 0 in S0,
a) let score sp:= 0 initially,
b) for each factor fin p,
if fhas a usable geometrical meaning,
then add the educational usability score ufto sp,
else remove p= 0 from S0.
7. Choose the best polynomial pin S0with the lowest score sp<and show
the geometrical meanings of its factors in denied form as conjuctions for the
output. (If there are more equations with the same score, choose one of them
deterministically.) Stop.
Remark 41.Deterministic choice may be important for classroom use. It can be
confusing that the same software returns different results for different students for
the same geometry problem.
148
2.3 The Gröbner basis method
2.3.5.2. Non-synthetic conditions
We already learned that some elementary geometry theorems may have different
degeneracy conditions. In the previous example one of the obtained degeneracy
conditions contained a condition which was non-synthetic, namely the equality of
the y-coordinates. Fortunately, we found two other sets for degeneracy conditions
which do not contain any non-synthetic conditions, and all factors of the matching
equation can be translated back into elementary geometry relations. Unfortunately,
this is not the case for all elementary geometry problems.
Example 42. Thales’ (circle) theorem20 can be formulated in many ways. A pos-
sible approach can be seen in Fig. 2.12.
Figure 2.12. – Thales’ (circle) theorem
A circle will be defined with center Aand circle point B. An arbitrary Cpoint
will help to create a diameter for the circle by defining a line fitting Aand C. Now
dependent intersection points (Dand E) of the line and the circle will build up the
triangle DBE. The thesis is whether this triangle has a right angle at point B.
20In some countries (including France, Spain and Italy) Thales’ theorem describes a different one
than here discussed, as known as intercept theorem in English.
149
Chapter 2 Implementation in GeoGebra
The equations for the hypotheses are drawn in the figure. Intersection is described
as previously, but here we use equality of Cartesian distances to tell that Dand
Eare lying on the same circle which are already defined by Aand B. For Ewe
also add an extra criterion, namely that it is different from point D, also by using a
Cartesian distance. After fixing Ato the origin, finally we will have 9 variables and
6 equations before the elimination step.
The black box returns two equations after elimination (independently of the variable
ordering):
v5= 0,
v6= 0
which are simply about xand ycoordinates of C, they must be equal to the ap-
propriate coordinates of A. In this case, we cannot simply apply the algorithm
described in the previous subsection since it will not find an equation having a score
<. This simply means our algorithm cannot be used directly for every geometry
theorems at the moment.
In this specific example, of course, we can resolve the problem by argumenting that
(v5, v6)is a counterexample if and only if C= (0,0) = A. This means that the
geometry theorem in its simplest form is:
If AC is a non-degenerate segment, then angle DBE is right.
According to Thales’ theorem, this degeneracy condition seems still rather technical,
because without assuming it, the thesis cannot even be formulated. In fact, this is a
very similar situation to the bisecting diagonals of the parallelogram. Nevertheless,
it is worth to add an extra step in our algorithm between steps 6 and 7:
6+. If S0={xPxQ= 0, yPyQ= 0}for the variables of the free points Pand
Q, then show “the answer is true if P6=Q” as output. Stop.
In this geometry problem we were finally able to add some extra reasoning to convert
the black box output to an educationally usable form. Unfortunately, there are even
worse cases where this is impossible in this way.
Example 43. Euler’s line (Fig. 2.13) is a line in each non-equilateral triangle which
passes through the orthocenter, the circumcenter and the centroid of the triangle.
After fixing Ato the origin, GeoGebra creates 23 equations in 27 variables to answer
the question whether dependent points F,Gand Hare collinear. Our algorithm
after Step 3 gets the following equations from the black box with variable ordering
v3, v4, v5, v6:
(v4v5v3v6)·v6= 0,
(v4v5v3v6)·v5= 0,
(v2
3v2
4+v3v5+v4v6)·v2
6= 0,
v3·(v3v5+v2
5v4v6+v2
6)·v6= 0,
(v3v5)·v3·(v2
5+v2
6)=0.
150
2.3 The Gröbner basis method
Figure 2.13. – Euler’s line
Clearly, all equations contain a non-synthetic factor here. In this case we may think
of changing the variable ordering to a different one, but unfortunately this will not
really help—in most cases there will always be a non-synthetic factor in all equations,
and in the other cases there will be the factor v2
6v2
4+v4v3
6v3
5v3+v2
5v2
3of degree 4
which has no straightforward geometrical meaning. One may think that the reason
behind this problem is that the denial of the simplest sufficient condition, i. e. that
triangle ABC is not equilateral, cannot be simply expressed by using the algebraic
approach. It is not really the case here, as we will soon learn, but rather the look of
the equations we set up for the hypotheses. On the other hand, in some cases the real
problem is indeed the geometrical complexity even if the question is a good-looking
one. One example for an exceptional complex geometrical degeneracy condition is
motivated by the generalized Steiner-Lehmus theorem (actually, its negation, see
Losada et al. (2010)): Given a triangle there are not two bisector segments of equal
length corresponding to two different vertices. This statement is generically true,
but when putting two vertices to (1,1) and (1,1), and the third one is a free point
then there exists a degree 35 curve (made up of three degree 10 irreducible curves,
plus a line and two circles) for which two bisector segments are equal.
151
Chapter 2 Implementation in GeoGebra
Actually, it may not be exceptionally important for the student to get a beautiful
set with degeneracy conditions, or at least not for the student with average skills.
It is more important to know that the answer to the question is true under certain
conditions. These conditions, as the deeper theory in algebraic geometry explains,
are usually covering just a very minimal set of the possible configurations. For
Euler’s line this simply means that by randomly choosing a triangle, we can be
100% sure that it will not be an equilateral one, thus Euler’s line may be constructed
without any problems. (In this sense, of course, 100% is not the sure event.)
Of course, this will raise the question of the importance of showing degeneracy
conditions for the student at all. In Sec. 2.3.7.1 we will learn another way to decide
aProve question without using any elimination, but this is important from the
theoretical and technological approach only. From the educational point of view
we can emphasize that the computer’s help to set up a precise logical consequence
with correct hypotheses and thesis is a step forward in teaching systematization (see
(Chapter 1), Sec. 1.1.8).
Remark 44.We could simply append our algorithm with an extra step, namely
8. If there is no polynomial pin S0with score sp<, then show “the answer is
true under certain conditions” as output. Stop.
2.3.5.3. Changing the analytical approach
In some cases the same geometrical meaning can be translated into different algebraic
descriptions. The different algebraic descriptions may result in simpler or more
difficult computations, and sometimes different non-degeneracy conditions will be
obtained.
Also the previous example can be handled differently when changing the approach
in the analyitical geometry details for the perpendicularity check. By changing the
collinearity equation and the scalar product to a vector rotation by 90 degrees, we
can turn 4 quadratic equations to 4 linear equations, namely
v13v6v14v5v13v4+v5v4+v14 v3v6v3= 0,
v14v6+v13v5v14v4v13 v3v6v2+v4v2v5v1+v3v1= 0
to
v14 v5+v3+v2= 0,
v13 +v6v4+v1= 0
and similarly
v15v14 +v16v3+v15v2v3v2v16 v1+v4v1= 0,
v16v4+v6v4v15v3+v5v3+v16v2v6v2+v15 v1v5v1= 0
152
2.3 The Gröbner basis method
to
v16 +v6+v3v1= 0,
v15 +v5v4+v2= 0.
After elimination with ordering v6, v5, v4, v3we get the equation system
v5v4v3v6= 0,
(v5v3)·v5·v3= 0,
v6·(v5v3)·v3= 0,
(v2
6v2
5+v6v4+v5v3)·v3= 0,
v6·(v6v4+v2
4v5v3+v2
3)=0
which contains the collinearity condition for points A, B, C as the only necessary
degeneracy condition as the first equation.
The general use of the simpler equations are usually fruitful not only in getting
usable degeneracy conditions, but the computation time is drastically decreased.
While Singular is usually fast enough in computing the elimination step for the first
approach as well, Giac is too slow for many tests. By using the different analytical
approach, Giac gives the results in reasonable time, and makes it possible to use the
proving facilities in an offline environment, even on tablet machines. (For example,
the computations in both previous examples take only 200 milliseconds instead of
15-16 seconds).
Finding the “best” algebraic description for a geometrical property is usually not
a trivial task. There is no guarantee that a description which results in a simple
computation for one statement will also result in simple computations for a different
statement. Also it is important that an algebraic description may not be a one-to-
one mapping of the geometrical property, that is, it may introduce extra points
for which the statement should be true. As a result, the algebraic description will
express a more strict statement which may not be true anymore.
Remark 45.The achieved condition may be strange since the theorem should have
assumed some more complicated degeneracy condition. Now we obtained that the
theorem is true even if the triangle is equilateral. In this case the orthocenter,
the circumcenter and the centroid are the same point. Strictly speaking, these
three points are lying on the same line, which can be of, of course, infinitely many
possibilities (thus Euler’s line is not uniquely determined).
153
Chapter 2 Implementation in GeoGebra
2.3.5.4. Interlude 1: The Buchberger algorithm21
Up to this point we managed to avoid the definition of a Gröbner basis. The main
reason to do so was that our general concept can be understood without the notion
of Gröbner basis, thus the minimalistic mathematical approach was important here
to allow non-mathematician readers to understand the most with minimal effort.
To continue with achieving the most of the available technical methods, it is now
time to go one step further and introduce the concept of Buchberger’s 1965 PhD
thesis, namely the notion of Gröbner basis. Here we still remain as minimalistic
as possible, and demonstrate the theory mostly via examples.22 Despite this, our
arguments will be mathematically correct.
In this part of the thesis we focus on solving an equation system by bringing it to
a row echelon form. A row echelon form will be helpful later to omit some of the
variables and express the rest with some other equations.
Example 46. Let us consider the following linear equation system:
3a+ 2b+c5=0,(2.3.19)
2a+ 3b4c+ 2 = 0,(2.3.20)
5ab+ 2c7=0.(2.3.21)
Its standard solving procedure is the Gauss elimination which transforms the equa-
tion to row echelon form first. For this example, the first part of the procedure
consists of 3 steps:
1. eliminating 2a(second row, first column) by subtracting 2
3times the first row
from the second row,
2. eliminating 5a(third row, first column) by subtracting 5
3times the first row
from the third row,
3. eliminating the number in the third row, second column, produced in the
2. step.
The results after the first two steps are as follows:
3a+ 2b+c5 = 0,(2.3.22)
0 + 5
3b14
3c+16
3= 0,(2.3.23)
013
3b+1
3c+4
3= 0.(2.3.24)
21This part of the dissertation is a detailed introduction of the notion of Gröbner bases. In scientific
sense it does not introduce any new concepts since all of its definitions and theorems can be
found in well-known textbooks (like e. g. Strang (2009) and Cox et al. (1991)). Readers who are
familiar with the Buchberger algorithm can skip this part and continue with reading Sec.2.3.5.6
on page 175.
22A similar approach is Buchberger (1985) which avoids using the notion of ideal.
154
2.3 The Gröbner basis method
Finally, the third step needs to eliminate 13
3bwhich can be solved by adding 3
5·13
3
times the (2.3.23) to (2.3.24), here 3
5is the reciprocal of the coefficient of bin (2.3.23)
and 13
3is the coeffecient of bin (2.3.24). Now we achieved a row echelon form of the
example:
3a+ 2b+c5=0,(2.3.25)
0 + 5
3b14
3c+16
3= 0,(2.3.26)
0+059
5c+76
5= 0.(2.3.27)
By using (2.3.27) the solution c=76
59 can be read off. Then, by using consecutive
substitions, solutions for band acan also be achieved. We can even omit cand set
up two equations with variables aand bafter substitution c7→ 76
59 in (2.3.19) and
(2.3.20).
We highlight the elimination step (2.3.20)2
3(2.3.19), or by using a similar algorithm
(to avoid divisions) 3(2.3.20)2(2.3.19), the latter is more widely used in secondary
school. Buchberger’s concept of solving multivariate (but higher order) equation
systems is a similar idea: to define a generalized elimination step for polynomials
p1and p2to cancel their “first term” by using a suitable q1p1q2p2product. In
Example 46 we automatically assumed that the variables a,band chave a natural
order, i. e. ahas to be cancelled first, and then b, but this kind of ordering is not
trivial when the equations have non-linear terms.
For example, given an equation consisting of monomials a,a2,ab2,a2band b3one
needs to agree on which is considered “less” and “greater”. It is possible to define
several “logical” orders, since the only requirements are that the compatibility with
multiplication must be respected, that is:
1. if u<vand wis any other monomial, then uw < vw,
2. 1< u for any umonomial.
Well known and widely used orderings are, for example:
Lexicographic order: it first compares exponents of ain monomials, and in case
of equality compares exponents of b, and so forth. In our case, it produces
a2b > a2> ab2> a > b3>1, i. e. power of adominates.
Graded lexicographic order: it first compares the total degree (sum of expo-
nents), and in case of a tie applies lexicographic order. In our case, it produces
a2b > ab2> b3> a2>a>1.
Graded reverse lexicographic order: it first the total degree, but then compares
exponents like the variables had a reverse order. In our case, it produces
b3> ab2> a2b>a2>a>1.
155
Chapter 2 Implementation in GeoGebra
Now we can define the crucial elimination step of Buchberger’s. Assume that we
fix the monomial ordering to be “lexicographic” for this example. Let p1=a2+b2,
p2=ab+b3; note that the monomials are written accordingly to the defined ordering.
Now by choosing q1=band q2=a,q1p1q2p2=b·(a2+b2)a·(ab+b3) = ab3+b3.
This way of elimination will be called S-polynomial and denoted by spol, in this case
spol(p1, p2) = q1p1q2p2.
For a more precise definition we need to define the notions as follows (here we use
the naming convention of the Singular system).
Leading monomial (leadmonom): the first monomial in a polynomial, with-
out any coefficient. E. g.: leadmonom(p1) = a2,leadmonom(p2) = ab,
leadmonom(2a2+b2) = a2.
Leading coefficient (leadcoef ): the coefficient of the first monomial. E. g.:
leadcoef (p1) = leadcoef(p2)=1,leadcoef(2a2+ 3b2)=2.
When the least common multiple is denoted by lcm, we can express spol for arbitrary
pair of polynomials as follows:
spol(p1, p2) = lcm(leadmonom(f), leadmonom(g))·
f
leadcoef (f)·leadmonom(f)g
leadcoef (g)·leadmonom(g)!.
The spol operation is an atomic step in the Buchberger algorithm. When computing
spol multiple times on a chain of consecutive polynomial pairs, we usually reduce
the starting element of the chain to an ending polynomial (which does not have
smaller total degree by all means—reduction has a different meaning here, as later
discussed). However, the red operation requires not two polynomials as its input,
but one polynomial pand a set of polynomials {p1, p2, . . . , pn}. When computing
red(p;{p1, p2, . . . , pn})we check in each step if the leading monomial of the current
element of the chain is a multiple of any of the leading monomials of the set, if
yes, an spol operation is computed and the result is appended to the chain. (It is
important here, that a multiple of pis any other polynomial pq where qis some
polynomial. This relation is usually denoted by writing p|pq.) We will see later
that this red operation is finite, and this is the essential criteria of the usability of
Buchberger’s algorithm.23
For simplicity, we denote the spol(p, p1) = p0operation by writing
p
p1p0.
23Even later in Sec. 2.3.5.5, we will discuss a generalization of the red operation which allows
removal of a non-leading term of pas well. In the literature sometimes the generalized reduction
is called reduction, and our definition is called lead-reduction instead. See Wikipedia (2015d),
section “Reduction” for details. In this PhD thesis we use the terminology of Greuel and Pfister
(2008).
156
2.3 The Gröbner basis method
This helps us to write reduction chains into a form like
p
p1p0
p2p00
p3. . .
We note here that the red operation is not uniquely defined, because there is a
freedom of choice between the polynomials of the set.
If there is a set of polynomials P={p1, p2, . . . , pn}, one can consider computing
the reduction chain for each pi6=pjby computing red(spol(pi, pj)). If all of these
reduction chains end in 0, we call PaGröbner basis.
Now we are ready to define the Buchberger algorithm:
1. Consider input equations (1), (2), . . . as polynomials p1, p2, . . .
2. Consider every 2-element set of the equation polynomials, for each set {pi, pj}
a) compute red(spol(pi, pj); {p1, p2, . . .}),
b) if the last element of the chain (p) is non-zero,
i. divide pby leadcoef(p),
ii. add pto the input equations,
iii. add each {pi, p}set to the 2-element sets to consider.
The output of the algorithm is the result set of equations (i. e. polynomials). Obvi-
ously this output is necessarily a Gröbner basis by construction.
We note here also that the selection order of the 2-element sets may definitely change
the output of the Buchberger algorithm. That is, here is another freedom of choice.
In the following example we select the “first” fitting polynomial from the set for
the red operation, and we use the order {p1, p2},{p1, p3},. . .,{p2, p3},. . . for the
2-element sets; our input is the same as in Example 46. The output is generated by
a Singular program (see its source code on page 242).24 We use the notation pq
if for some constant c p =cq holds.
The equation system is:
3a+ 2b+c5=0,(1)
2a+ 3b4c+ 2 = 0,(2)
5ab+ 2c7=0.(3)
Eliminating leading terms of (1) and (2):
3a+ 2b+c5
(2) 5
6b+7
3c8
3
b14
5c+16
5.
24Of course (as shown in Example 20), Singular has a simple statement as well to compute the
Gröbner basis of a set a polynomials with respect to an ordering.
157
Chapter 2 Implementation in GeoGebra
Equation added:
b14
5c+16
5= 0.(4)
Eliminating leading terms of (1) and (3):
3a+ 2b+c5
(3)
13
15 b1
15 c4
15
(4)
177
65 c228
65
c76
59 .
Equation added:
c76
59 = 0.(5)
Eliminating leading terms of (2) and (3):
2a+ 3b4c+ 2
(3)
17
10 b12
5c+12
5
(4)
118
85 c152
85
(5) 0.
Eliminating leading terms of (1) and (4):
3a+ 2b+c5
(4)
14
5ac 16
5a+2
3b2+1
3bc 5
3b
(1) 8
7a+5
21 b223
42 bc 25
42 b1
3c2+5
3c
(1) 5
24 b2+23
48 bc 7
48 b+7
24 c243
24 c+5
3
(4)
1
2bc 5
2b7
5c2+43
5c8
(4) 5b+ 14c16
(4) 0.
Eliminating leading terms of (2) and (4):
2a+ 3b4c+ 2
(4)
14
5ac 16
5a+3
2b22bc +b
(1) 8
7a+15
28 b229
21 bc +5
14 b1
3c2+5
3c
(1) 15
32 b2+29
24 bc 47
48 b+7
24 c243
24 c+5
3
(4)
2
9bc 10
9b28
45 c2+172
45 c32
9
(4) 5b+ 14c16
(4) 0.
158
2.3 The Gröbner basis method
Eliminating leading terms of (3) and (4):
5ab+ 2c7
(4)
14
5ac 16
5a1
5b2+2
5bc 7
5b
(1) 8
7a1
14 b211
21 bc 1
2b1
3c2+5
3c
(1)
1
16 b2+11
24 bc 11
48 b+7
24 c243
24 c+5
3
(4)
152
15 bc 103
15 b+14
3c286
3c+80
3
(4) 103
152 b+1239
380 c22291
380 c+50
19
(4) 2478
515 c2+6024
515 c3648
515
(5) 8
7c+608
413
(5) 0.
Eliminating leading terms of (1) and (5):
3a+ 2b+c5
(5)
76
59 a+2
3bc +1
3c25
3c
(1)
59
114 bc 2
3b+59
228 c2371
228 c+5
3
(4) 76
59 b+33
10 c23743
590 c+190
59
(4) 1947
760 c2+309
40 c57
10
(5) 19
11 c+1444
649
(5) 0.
Eliminating leading terms of (2) and (5):
2a+ 3b4c+ 2
(5)
76
59 a+3
2bc 2c2+c
(1)
177
152 bc 2
3b59
38 c2+101
228 c+5
3
(4) 304
531 b+22
15 c27486
2655 c+760
531
(4) 1947
760 c2+309
40 c57
10
(5) 19
11 c+1444
649
(5) 0.
159
Chapter 2 Implementation in GeoGebra
Eliminating leading terms of (3) and (5):
5ab+ 2c7
(5)
76
59 a1
5bc +2
5c27
5c
(1) 59
380 bc 2
3b+59
190 c21619
1140 c+5
3
(4)
760
177 b+4
5c2+5263
885 c1900
177
(4)
177
950 c2+837
200 c57
10
(5)
95
4c1805
59
(5) 0.
Eliminating leading terms of (4) and (5):
b14
5c+16
5
(5)
76
59 b14
5c2+16
5c
(4) 413
190 c2+502
95 c16
5
(5) 8
7c+608
413
(5) 0.
The algorithm produced equations (4) and (5) which, together with (1), build up a
row echelon form, similar to which was obtained by Gauss elimination in Example 46.
It is easy to see that (4) and (5) are such equations which have the same solutions
as for the input system: atomically only the spol operation (and a division by the
leading coefficient) was used, which is esentially elimination, thus it preserves the
solutions (i. e. it does not remove roots or adds false roots).
It is more difficult to see why exactly the Buchberger algorithm is useful. Since
spol(p1, p2)is about to eliminate the leading term in p1and p2, the reduction pro-
cesses practically try to do some kind of “deep search” for such linear combinations of
the input equations which contain as small monomials (with respect to the assumed
ordering, here lexicographic) as possible. In our example the “theoretically smallest
possible” monomial is c, therefore we expect to obtain an ending chain element in
the form c±α(where αQ), as seen in the reduction chain when eliminating terms
of (2) and (3). If we choose a suitable monomial ordering, we have good chances
to get useful new equations before the last equation as well: if bdirectly precedes
cin the ordering, then for the last two candidates for the smallest polynomials are
b+α0c±α00 (here α0, α Q) and c±α. The graded lexicographical order is exactly
what here helpful can be, hence by using it we usually get a row echelon form of the
equation.
160
2.3 The Gröbner basis method
It is even more difficult to see why the Buchberger algorithm is finite. For this
purpose, we consider another example.
Example 47. Let us consider hyperbolas c: 2x2y2= 5,d:x22y2= 1. We are
interested in finding their intersection points symbolically (Fig. 2.14). Clearly these
intersections are (±3,±1), 4 points which are easy to compute.
Figure 2.14. – Intersection of two hyperbolas
Now we slightly change the hyperbolas by considering c0: 2x2y2+x= 5 and
d0:x22y2+y= 1, and test the Buchberger algorithm with input p1= 2x2y2+x5
and p2=x22y2+y1by using the lexicographic order again (by choosing the
same selection algorithms at both freedom of choices).
The equation system is:
2x2+xy25=0,(1)
x22y2+y1=0.(2)
Eliminating leading terms of (1) and (2):
2x2+xy25
(2)
1
2x+3
2y2y3
2
x+ 3y22y3.
Equation added:
x+ 3y22y3=0.(3)
161
Chapter 2 Implementation in GeoGebra
Eliminating leading terms of (1) and (3):
2x2+xy25
(3) 3xy2+ 2xy +7
2x1
2y25
2
(3) 2
3xy 7
6x3y4+ 2y3+19
6y2+5
6
(3)
7
4x+9
2y46y311
4y2+ 3y5
4
(3)
18
7y424
7y332
7y2+26
7y+16
7
y44
3y316
9y2+13
9y+8
9.
Equation added:
y44
3y316
9y2+13
9y+8
9= 0.(4)
Eliminating leading terms of (2) and (3):
x22y2+y1
(3) 3xy2+ 2xy + 3x2y2+y1
(3) 2
3xy x3y4+ 2y3+11
3y21
3y+1
3
(3)
3
2x+9
2y46y37
2y2+7
2y1
2
(3) 3y44y316
3y2+13
3y+8
3
(4) 0.
162
2.3 The Gröbner basis method
Eliminating leading terms of (1) and (4):
2x2+xy25
(4)
4
3x2y3+16
9x2y213
9x2y8
9x2+1
2xy41
2y65
2y4
(1)
4
3x2y213
12 x2y2
3x2+3
8xy41
2xy33
8y6+1
2y515
8y4+5
2y3
(1) 13
16 x2y1
2x2+9
32 xy43
8xy31
2xy29
32 y6+3
8y529
32 y4+15
8y3+5
2y2
(1)
8
13 x29
26 xy4+6
13 xy3+8
13 xy21
2xy +9
26 y66
13 y5+29
26 y447
26 y340
13 y2+5
2y
(1) 9
16 xy4+3
4xy3+xy213
16 xy 1
2x+9
16 y63
4y5+29
16 y447
16 y39
2y2+65
16 y+5
2
(3) 4
3xy316
9xy2+13
9xy +8
9x4y6+10
3y52
9y4+47
9y3+ 8y265
9y40
9
(3)
4
3xy213
12 xy 2
3x+ 3y611
2y5+13
6y411
12 y36y2+65
12 y+10
3
(3) 13
16 xy 1
2x+9
4y633
8y511
8y4+21
16 y33
2y2+65
16 y+5
2
(3)
8
13 x36
13 y6+66
13 y5+22
13 y460
13 y3+50
13 y22y40
13
(3) 9
2y6+33
4y5+11
4y415
2y3+13
4y25
4y2
(4) 1
2y5+7
6y4+2
9y329
18 y2+5
18 y+4
9
(4) y4+4
3y3+16
9y213
9y8
9
(4) 0.
Eliminating leading terms of (2) and (4):
x22y2+y1
(4)
4
3x2y3+16
9x2y213
9x2y8
9x22y6+y5y4
(1)
4
3x2y213
12 x2y2
3x21
2xy33
2y6+5
4y53
4y4+5
2y3
(1) 13
16 x2y1
2x23
8xy31
2xy29
8y6+15
16 y51
16 y4+15
8y3+5
2y2
(1)
8
13 x2+6
13 xy3+8
13 xy21
2xy +18
13 y615
13 y5+1
13 y447
26 y340
13 y2+5
2y
(1)
3
4xy3+xy213
16 xy 1
2x+9
4y615
8y5+1
8y447
16 y39
2y2+65
16 y+5
2
(3)
4
3xy213
12 xy 2
3x+ 3y611
2y5+13
6y411
12 y36y2+65
12 y+10
3
(3) 13
16 xy 1
2x+9
4y633
8y511
8y4+21
16 y33
2y2+65
16 y+5
2
(3)
8
13 x36
13 y6+66
13 y5+22
13 y460
13 y3+50
13 y22y40
13
(3) 9
2y6+33
4y5+11
4y415
2y3+13
4y25
4y2
(4) 1
2y5+7
6y4+2
9y329
18 y2+5
18 y+4
9
(4) y4+4
3y3+16
9y213
9y8
9
(4) 0.
163
Chapter 2 Implementation in GeoGebra
Eliminating leading terms of (3) and (4):
x+ 3y22y3
(4)
4
3xy3+16
9xy213
9xy 8
9x+ 3y62y53y4
(3)
4
3xy213
12 xy 2
3x+9
4y69
2y51
4y4+ 3y3
(3) 13
16 xy 1
2x+27
16 y627
8y551
16 y4+17
4y3+ 3y2
(3)
8
13 x27
13 y6+54
13 y5+51
13 y4107
13 y322
13 y2+ 3y
(3) 27
8y6+27
4y5+51
8y4107
8y323
4y2+55
8y+ 3
(4) 2
3y51
9y4+68
27 y3+22
27 y255
27 y8
9
(4)
3
2y42y38
3y2+13
6y+4
3
(4) 0.
Though the solution of Example 46 via the Buchberger algorithm produced strangely
long reduction chains (because non-linear polynomials appeared in them—they seem
irrelevant to solve a linear equation system), here we experience that they can be
horrifying long. This shows not only the computational complexity of the deep
searching of “nice looking” linear combinations, but in our example also the finite
property of it can be understood.
For example, the reduction chain e1e2. . . started by spol((2),(4)) con-
tains the following leading monomials (from the second element of the chain,
i. e. leadmonom(e2) = x2y3):
x2y3, x2y2, x2y, x2, xy3, xy2, xy, x, y6, y5, y4,
each of them will be eliminated in the subsequent element of the chain.
The first element of this list, x2y3cannot be followed by any greater monomial
because of the following reason. Let us assume that in the step when process-
ing the second element of the chain, the red operation selects some pifor which
leadmonom(pi)|x2y3, thus pi=αx2Ay3B+. . . for some A,Bintegers such that
0A2,0B3(and αZ), and piis written in a form where its leading
monomial is in the first written term here. Thus if there is a monomial xCyDin the
. . .” (Cand Dare non-negative integers),
x2Ay3B> xCyD(2.3.28)
must hold. When computing spol(e2, pi), the eliminated monomial is x2y3, therefore
piwill be multiplied by xAyBaccording to convert x2Ay3Bto xAyB, so xCyDwill
164
2.3 The Gröbner basis method
be changed to xC+AyD+B. If xC+AyD+Bdoes not precede x2y3, then the monomial
xCyDcannot appear as leadmonom(e3). Indeed, by multiplying 2.3.28 by xAyBwe
yield x2y3> xC+AyD+B. Of course, similar reasoning can be given for each leading
monomial of the reduction chain, thus the leading monomials are decreasing with
respect to the given ordering.
Now Fig.2.15 explains why the decreasing sequence of the leading monomials must
be finite. After x2y3, the later appearing exponent of xmust be 2 or less. The next
leading monomial has the same exponent when a “red” arrow appears, but less than
before if a “blue” arrow is shown. The red steps are clearly decrease the degree of y
of the previous monomial, but the blue ones may increase it, however, the exponent
of xwill be less. Nevertheless, there can be at most as many blue “jumps” as the
exponent of xin leadmonom(e2), and the sum of the exponents of yafter the jumps
is an upper limit for the total number of reduction steps. The blue jumps can be,
however, rather big, and it is difficult to predict how big they will be.
Figure 2.15. – Leading monomials of a reduction chain
Now we can see why a reduction chain is necessarily finite. But it is still a question
if the number of the reduction chains remains finite during the whole Buchberger
algorithm. To answer this question we consider another example.
Example 48. We add some extra noise to Example 47, namely to get the input
polynomials p1= 2x2y2+x+x35and p2=x22y2+y+y41. Since the
reduction chains now become extremely long, we prefer to use the notation p99K p0
n×
165
Chapter 2 Implementation in GeoGebra
to report the number nof elements of the chain, but ignore the elements, except the
first pand the last p0polynomials.
The equation system is:
x3+ 2x2+xy25=0,(1)
x2+y42y2+y1=0.(2)
Eliminating leading terms of (1) and (2):
x3+ 2x2+xy25
(2) 2x2xy4+ 2xy2xy + 2x...
99K
1×
1
2xy4+xy21
2xy +xy4+...
xy42xy2+xy 2x+ 2y4....
Equation added:
xy42xy2+xy 2x+ 2y4... = 0.(3)
Eliminating leading terms of (1) and (3):
x3+ 2x2+xy25
(3) 2x3y2x3y+ 2x3+ 3x2y22x2y...
99K
6×
0.
Eliminating leading terms of (2) and (3):
x2+y42y2+y1
(3) 2x2y2x2y+ 2x22xy4+ 3xy2...
99K
4×
1
2xy2+7
2x1
2y8+ 2y6y5...
xy2+ 7xy8+ 4y62y5....
Equation added:
xy2+ 7xy8+ 4y62y5... = 0.(4)
Eliminating leading terms of (1) and (4):
x3+ 2x2+xy25
(4) 7x3+x2y84x2y6+ 2x2y5+ 5x2y4...
99K
10×
y12 + 6y10 3y911y8+ 12y7...
y12 6y10 + 3y9+ 11y812y7+....
Equation added:
y12 6y10 + 3y9+ 11y812y7+... = 0.(5)
166
2.3 The Gröbner basis method
Eliminating leading terms of (2) and (4):
x2+y42y2+y1
(4) 7x2+xy84xy6+ 2xy5+ 5xy4...
99K
6×
0.
Eliminating leading terms of (3) and (4):
xy42xy2+xy 2x+ 2y4...
(4) 9xy2+xy 2x+y10 4y8+...
99K
1×
1
9xy 61
9x1
9y10 +13
9y82
9y7...
xy + 61x+y10 13y8+ 2y7+....
Equation added:
xy + 61x+y10 13y8+ 2y7+... = 0.(6)
Eliminating leading terms of (1) and (5):
x3+ 2x2+xy25
(5) 6x3y10 3x3y911x3y8+ 12x3y73x3y6...
99K
37×
0.
Eliminating leading terms of (2) and (5):
x2+y42y2+y1
(5) 6x2y10 3x2y911x2y8+ 12x2y73x2y6...
99K
15×
0.
Eliminating leading terms of (3) and (5):
xy42xy2+xy 2x+ 2y4...
(5) 4xy10 2xy913xy8+ 12xy73xy6...
99K
10×
0.
Eliminating leading terms of (4) and (5):
xy2+ 7xy8+ 4y62y5...
(5) 13xy10 3xy911xy8+ 12xy73xy6...
99K
10×
59648
927 x1
927 y18 +4
927 y16 2
927 y15 5
927 y14 +...
x+1
59648 y18 1
14912 y16 +1
29824 y15 +5
59648 y14 ....
Equation added:
x+1
59648 y18 1
14912 y16 +1
29824 y15 +5
59648 y14 ... = 0.(7)
167
Chapter 2 Implementation in GeoGebra
Eliminating leading terms of (1) and (6):
x3+ 2x2+xy25
(6) 61x3x2y10 + 13x2y82x2y741x2y6+...
99K
14×
0.
Eliminating leading terms of (2) and (6):
x2+y42y2+y1
(6) 61x2xy10 + 13xy82xy741xy6+...
99K
9×
0.
Eliminating leading terms of (3) and (6):
xy42xy2+xy 2x+ 2y4...
(6) 61xy32xy2+xy 2xy13 +...
99K
10×
0.
Eliminating leading terms of (4) and (6):
xy2+ 7xy8+ 4y62y5...
(6) 61xy + 7xy11 + 13y93y8...
99K
8×
0.
Eliminating leading terms of (5) and (6):
y12 6y10 + 3y9+ 11y812y7+...
(6) 61xy11 6xy10 + 3xy9+ 11xy812xy7+...
99K
21×
0.
Eliminating leading terms of (1) and (7):
x3+ 2x2+xy25
(7) 1
59648 x2y18 +1
14912 x2y16 1
29824 x2y15 5
59648 x2y14 +1
14912 x2y13 ...
99K
24×
0.
Eliminating leading terms of (2) and (7):
x2+y42y2+y1
(7) 1
59648 xy18 +1
14912 xy16 1
29824 xy15 5
59648 xy14 +1
14912 xy13 ...
99K
22×
0.
Eliminating leading terms of (3) and (7):
xy42xy2+xy 2x+ 2y4...
(7) 2xy2+xy 2x1
59648 y22 +1
14912 y20 ...
99K
13×
0.
168
2.3 The Gröbner basis method
Eliminating leading terms of (4) and (7):
xy2+ 7xy8+ 4y62y5...
(7) 7x1
59648 y20 +1
14912 y18 1
29824 y17 5
59648 y16 +...
99K
9×
0.
Eliminating leading terms of (5) and (7):
y12 6y10 + 3y9+ 11y812y7+...
(7) 6xy10 + 3xy9+ 11xy812xy7+ 3xy6+...
99K
28×
0.
Eliminating leading terms of (6) and (7):
xy + 61x+y10 13y8+ 2y7+...
(7) 61x1
59648 y19 +1
14912 y17 1
29824 y16 5
59648 y15 +...
99K
9×
0.
Since we have plenty of newly added equations, we can investigate them, in particular
to check their leading monomials:
xy4, xy2, y12, xy, x.
When comparing the newly added equations, we will find that the leading monomial
of a new equation cannot be a multiple of the leading monomial of a formerly added
equation. In general, this property is easy to see: if piis an earlier added equation
than pj, then in the reduction which obtained pjthere was surely a check to test
if leadmonom(pi)|leadmonom(pj), and this check must have been false—otherwise
the chain would have continued with the atomic step pj
pi. . ., which cannot be
the case since pjis the last element of the chain (that is why it was added as an
equation). That is, leadmonom(pi)-leadmonom(pj)holds.
Now let us find the reason why the sequence of the leading monomials here cannot
be infinite. The first element is xy4which prevents the forthcoming elements to be a
multiple of itself. In Fig. 2.16 we marked the “unallowed area” in pink. The element
xy4also determines 5 infinite regions for the forthcoming monomials, we will call
them “infinite columns” (in green) and “infinite rows” (in blue). In our example
there is only 1 infinite column, but 4 infinite rows.
The second leading monomial is xy2. It determines another unallowed area (which
is, in our case, a superset of the first unallowed area), and disabled two of the
infinite rows, therefore there are only two infinite rows (and one infinite column)
left (Fig. 2.17).
169
Chapter 2 Implementation in GeoGebra
The next element, y12 disables the infinite column, and the next one, xy disables
one of the remaining infinite rows. The results are shown in Fig.2.18.
Now let us stop here for a moment and investigate the possible next step. In Fig.2.18
we can see that the new monomial can be either a member of the remaining one
infinite row, or a member of the remaining, previously uncolored points, now colored
with red. This case, namely that a new monomial either disables one or more infinite
rows or columns and/or the previously uncolored points, is a general case. Here, as
the last step, xdisables the only infinite row, and unreversibly leaves only a finite
amount of points as possible next steps, namely the points being colored with red.
To summarize what we found: each new monomial in the sequence either
1. disables at least one “uncolored” point, thus it decreases the number of possible
remaining cases by a finite number, or
2. disables at least one infinite row or column, and possibly increases the number
of possible remaining cases by a finite number.
In our example each monomial is in the second option, and y12 also adds some extra
remaining cases (by the price of disabling the infinite column).
The only way to preserve the infinite rows and columns is to choose the monomials
from the uncolored area. But it contains just a finite number of points, therefore
after a while it is obligate to disable an infinite row or column. Since at the beginning
there were just a finite number of infinite rows and columns, in finite number of steps
all of them will be disabled.
This ensures that the sequence of the leading monomials in the newly added equa-
tions is finite, hence the Buchberger algorithm always stops in finitely many steps.
Remark 49.In the above we followed a non-standard way to introduce the concept
of Gröbner bases. Despite our proofs were based on examples, they can be con-
sidered mathematically correct, however some properties were proven just for the
2 dimensional case. Our arguments can easily be extended to cover the general, n
dimensional case as well.
Remark 50.Finally we summarize the way how we introduced Gröbner bases in this
thesis:
1. Learn the concept of elimination from linear algebra.
2. Introduce the need for monomial ordering in the non-linear case.
3. Generalize elimination by defining the atomic spol operation.
4. Use many spol operations and introduce the notion of reduction chains.
5. Study “deep search” facility of reduction chains and conclude capability of
producing an echelon form.
6. Prove finiteness of a reduction chain (in 2 dimensions).
170
2.3 The Gröbner basis method
Figure 2.16. – “Unallowed area”, “infinite column” and “infinite rows”
for proving finiteness of the Buchberger algorithm
7. Prove finiteness of the number of the added equations (in 2 dimensions).25
We emphasize here that the notion of ideal was completely avoided, therefore this
minimalistic approach can also be discussed with much less preliminary knowledge
than usually textbooks expect.
Remark 51.GCLC’s computation for obtaining a Gröbner basis is very similar to
the currently discussed steps (see “5 Invoking the theorem prover” after page 41).
2.3.5.5. Interlude 2: Usability and uniqueness of the Buchberger algorithm
Now we have a general tool to bring an equation system to a row echelon form.
From this state it should be possible to read off the solutions one by one, and by
substituting the solutions back to the equations, some variables could be omitted.
Also this process itself is called elimination in the theory of Gröbner bases. To avoid
confusion, we call the required steps elimination process in this subsection.
For instance, in Example 48 solving (5) leads to success in eliminating y, since an
equation in one variable can be formulated and solved. However, the equation
y12 6y10 + 3y9+ 11y812y7+. . . = 0
25This step is usually called Dickson’s lemma in the literature.
171
Chapter 2 Implementation in GeoGebra
Figure 2.17. – Unallowed areas, infinite column and infinite rows, 2nd step
has degree 12 and there may be no algebraic ways to solve it by using the 4 basic
operations and computing roots, there are theories, tools and technique to handle
the situation:
sometimes the equation can be simply omitted if the variables are no longer
used,
often the substitution needs to be done symbolically by using suitable methods,
or even numerical approximations can be used for solving certain problems.
When thinking traditionally, in our case we could probably use (7) to determine x
as the final step in solving the equation system. Here the equation
x=1
59648y18 1
14912y16 +1
29824y15 +5
59648y14 +. . .
seems rather difficult to be solved symbolically, even if yis already determined by
a single equation in one variable. On the other hand, numerical approximation of
both yand xseems to be a simple task. But, as we remarked earlier, we do not
actually need to solve any equations, since our expected output is either the decision
of solvability or an equivalent equation system.
Now we stop continuing to study the technical details how the elimination process is
usually done behind the scenes, but highlight some questions concerning our black
172
2.3 The Gröbner basis method
Figure 2.18. – Unallowed areas and infinite row, 4th step
box approach which was introduced earlier. The biggest issue is uniqueness of the
output of such a black box which eliminates some variables from an equation system
and returns an equivalent system.
Obviously, to carry through the elimination process it is required to compute a
Gröbner basis of the input first. In the previous section we mentioned that we have
two freedom of choices when
1. computing the red operation and
2. choosing two equations in the Buchberger algorithm.
We re-compute Example 46 with various settings on page 246 to show that the result
of the Buchberger algorithm will differ when we change our choices.
In Example 46 we did not mention that the Buchberger algorithm can be continued
to remove some of the equations which are not necessary in computing the solutions
of the equation system, since they will play no role in building up a row echelon form.
In fact, here we have another, the third freedom of choice, namely to ignore any two
of equations (1), (2) or (3), since either {(1),(4),(5)},{(2),(4),(5)}or {(3),(4),(5)}
build up a row echelon form. (Here we do not consider that different monomial
orders usually result in different Gröbner bases—it would be another freedom of
choice, but usually practically not useful because of the infeasible computation time
or the wrong deep search direction.)
173
Chapter 2 Implementation in GeoGebra
This means that we cannot really tell what exactly happens in a computer algebra
system when we consider it a black box which simply computes a Gröbner basis
of the input polynomials, or eliminates variables from a set of equations. It seems,
however, that the internal implementation of the Gröbner basis computation can
still be influenced when the input polynomials are ordered differently, or the internal
ordering of the free or the dependant variables differ. On the other hand, there is
uniqueness in computing Gröbner bases when we continue the calculations as follows.
1. First of all, we considered the spol operation only which removes the leading
monomial of the first input polynomial p1. But we did not consider any other
usual operations between two polynomials, namely other
q1p1q2p2
expressions which are also allowed when solving polynomial equations manu-
ally. After having a Gröbner basis of the input polynomials, one may think of
computing such expressions and substitute p1by 1·p1q2p2in the Gröbner
basis if a term of p1is removed by using the leading monomial of p2. It is
easy to see that by deleting p1from the basis and adding p1q2p2instead,
the result is again a Gröbner basis. We may call this operation final reduc-
tion (fred) or general reduction to emphasize its algorithmical position after
having a Gröbner basis or to distinguish it from lead-reduction (i. e., the spol
operation). That is, f red(p1, p2)is a one-step reduction, and to ensure final
uniqueness, we divide the result by the leading coefficient (in other words, we
“norm” the result).26 27
2. Second, one may think of removing certain elements of the Gröbner basis
which are unneeded to describe the equation system when the other elements
already exist in the basis. It can be proven that if for some p1and p2elements
leadmonom(p1)|leadmonom(p2)then p2can be removed from the basis, and
the result set remains an equivalent Gröbner basis.
By using the above steps (practically, first Step 2 and then Step 1), a Gröbner basis
can be minimized and reduced (and normed). A general theorem of the Gröbner
basis theory that for a given ordering the minimized–reduced–normed transcription
of a Gröbner basis gives a unique result. For more on this see, for example, Win-
kler (1996). We demonstrate this concept on a detailed example in Appendix C,
Sec. C.3.4.
Sometimes it is useful to get more different Gröbner bases as the outputs for our
computation. The reason is that in many cases the first output cannot be interpreted
to describe human readable sufficient conditions. In such cases it can be fruitful to
26In the literature sometimes the f red operation is simply called reduction,multivariate division
or normal form.
27GCLC uses the same operation to check if the thesis (“conclusion”) is a logical consequence of
the input polynomial system (see “6 Reducing Polynomial Conjecture” after page 41).
174
2.3 The Gröbner basis method
make an attempt to change the black box’s behavior on the input to produce a
differently looking output.
In the following section we consider some possible ways to influence the black box
in order to get at least one suitable output to show human readable sufficient con-
ditions. We will use Singular’s internal implementation with ordering “dp” which
is the graded lexicographical order, assuming v3> v4> . . . by default. In this way
Singular will search for adding new equations in the dependent variables—here the
first variables, i. e. v3,v4and so forth, are usually the independent ones. These
new equations will be removed after bringing the equation system to a row echelon
form, that is, the dependent variables will simply disappear. This is exactly what
we need: to preserve the independent variables and ignore the dependent ones.
2.3.5.6. Permuting the independent variables
In Example 42 and Example 43 we had four independent variables (v3, v4, v5, v6)
which had to be ordered somehow before sending the input to the black box. In
Thales’ theorem all possible permutations yielded the same output, but for first
approach for Euler’s line we mentioned that it is possible to get different sets for
some orderings. In Appendix C, Sec. C.3.5 we can see that for orderings v5, v3, v4, v6
and v6, v4, v3, v5we get 6 equations after the elimination, but otherwise all equation
systems consist of 5 equations.
Luckily, in those two examples the number of permutations is low, 4! = 24, thus we
need to call the black box only 24 times to get all possible equation sets, and this
still can be computed in a reasonable time. If there were more free points (as in the
next example), the number of cases would increase very quickly.
Many problems in elementary geometry are about triangles. This means that for-
tunately we can have an easy situation in many cases: we have to deal with four
independent variables, and retry steps in our algorithm between Step 2 and Step 7
with another permutation of the variables, if there is no usable result yet. In fact,
in most cases the four independent variables can be limited to 2 if there is no half-
dependent point (see below) since most statements about triangles are invariant for
similarity, thus we can put not only Ato (0,0) but also Bto (0,1).
Example 52. In spite of the number of independent variables, Pappus’ hexagon
theorem (Fig.2.19) is a beautiful example of the strengh of our algorithm and shows
the importance of the variable ordering as well. We will also see that it can be
difficult to choose automatically a useful variable permutation.
Here we have four free points: A, B, C and D, and points Eand Fhave also some
kind of freedom: they lie on lines AB and CD, respectively, but otherwise their are
independent. Practically, this means that we define each of their coordinates to be
dependent (and the other to be independent). We can call Eand Fhalf-dependent
points.
175
Chapter 2 Implementation in GeoGebra
Figure 2.19. – Pappus’ hexagon theorem
It is important to point out that this is the reason why we cannot fix another point,
say B, to, say (0,1)—we already assumed that A= (0,0). In this case we could not
arbitrarily choose a coordinate of a half-dependent point, at least not automatically.
Why? If we set Bto (0,1) and use the second coordinate of Eto be independent
(since v9= 0 according to the collinearity of A, B, E, i. e. v9is already dependent),
in some Euclidean construction steps we can obviously create a perpendicular line p
to AB, and now a construction step may prescribe choosing a half-dependent point
on p. But we can no longer claim that the second coordinates will be chosen to
be independent for all half-dependent points since pis horizontal, and its second
coordinate is already fixed (namely, to 0).
Remark 53.One may have the idea to put Bto (1,1) or to another grid point,
say (m, n). Unfortunately, this will not work. To learn why, let dbe the length
of segment AB:d=m2+n2, now one can create a right triangle with sides
m·dand n·dby using Euclidean steps. The hypothenuse of this triangle is clearly
q(m·d)2+ (n·d)2=m2+n2. By using the intercept theorem one can construct
the unit length by Euclidean steps. Now define circles c1and c2with centers A, B
and radii m·1, n ·1, respectively. One of the intersection points of the circles will
be Tx= (m, 0). Now the line passing through Aand Txis the x-axis. A similar
construction can be done with point Tyfor the y-axis. Now there may be steps
which prescribe to put an arbitrary point on the x-axis or the y-axis. Thus we
cannot tell in advance that we will use only the first or only the second coordinate
176
2.3 The Gröbner basis method
as the dependant one in general.
Of course, this problem affects such constructions only which contain half-dependent
points.
Now we can get various eliminated equation systems from the black box, depend-
ing on how the ordering is defined for the independent variables. In Appendix C,
Sec. C.3.6 we show some examples of different numbers of equations, the number of
the equation can be between 10 and 25. The following special ordering will luckily
give exactly one set as educationally usable degeneracy conditions:
ring r=0,(v11,v6,v9,v8,v3,v4,v7,v5,
v10,v12,v13,v14,v15,v16,v17,v18,v19),dp;
ideal i=
-1*v9*v4+v10*v3,
-1*v11*v8+v12*v7+v11*v6+-1*v7*v6+-1*v12*v5+v8*v5,
v13*v12+-1*v14*v11,
v13*v6+-1*v14*v5+-1*v13*v4+v5*v4+v14*v3+-1*v6*v3,
v15*v10+-1*v16*v9+-1*v15*v6+v9*v6+v16*v5+-1*v10*v5,
v15*v8+-1*v16*v7,
-1*v17*v8+v18*v7+v17*v4+-1*v7*v4+-1*v18*v3+v8*v3,
-1*v17*v12+v18*v11+v17*v10+-1*v11*v10+-1*v18*v9+v12*v9,
-1+-1*v19*v17*v16+v19*v18*v15+v19*v17*v14+
-1*v19*v15*v14+-1*v19*v18*v13+v19*v16*v13;
ideal e=eliminate(i,v10*v12*v13*v14*v15*v15*v16*v17*v18*v19);
list o;
int s=size(e);
int j;
for (j=1; j<=s; j=j+1) {
o[j]=factorize(e[j]); }
o;
Before showing the output, let us note that the ordering of the independent vari-
ables is crucial here (in the first line). By doing some experiment, the order of the
dependent variables do not seem to change the output at all. Accepting this as an
experimental fact (at least for this problem), it means there can be theoretically at
most 8! = 40320 different equation systems after the elimination. The full output
is:
[1]:
[1]:
_[1]=-1
_[2]=-v11+v9
_[3]=v3-v5
_[4]=v7
[2]:
1,1,1,1
[2]:
[1]:
_[1]=1
_[2]=v9-v5
_[3]=v6*v7-v8*v5
177
Chapter 2 Implementation in GeoGebra
[2]:
1,1,1
[3]:
[1]:
_[1]=1
_[2]=v11*v6*v7-v11*v4*v7+v9*v4*v7-v9*v8*v5-v6*v7*v5+v8*v5^2
[2]:
1,1
[4]:
[1]:
_[1]=-1
_[2]=-v9*v8*v3-v6*v3*v7+v9*v4*v7+v8*v3*v5
[2]:
1,1
[5]:
[1]:
_[1]=-1
_[2]=-v11*v8*v3-v11*v6*v7-v6*v3*v7+v11*v4*v7
+v11*v8*v5+v8*v3*v5+v6*v7*v5-v8*v5^2
[2]:
1,1
[6]:
[1]:
_[1]=-1
_[2]=v11
_[3]=v9-v5
_[4]=-v3+v7
[2]:
1,1,1,1
[7]:
[1]:
_[1]=1
_[2]=v11*v6*v3-v11*v8*v3-v11*v6*v7-v6*v3*v7+v11*v4*v7
+v11*v8*v5+v8*v3*v5-v11*v4*v5+v6*v7*v5-v8*v5^2
[2]:
1,1
[8]:
[1]:
_[1]=-1
_[2]=v11
_[3]=v9-v5
_[4]=-v8+v4
[2]:
1,1,1,1
[9]:
[1]:
_[1]=-1
_[2]=v6-v4
_[3]=-v11+v9
_[4]=v8
[2]:
1,1,1,1
178
2.3 The Gröbner basis method
[10]:
[1]:
_[1]=-1
_[2]=v9-v5
_[3]=-v11*v4*v7+v9*v4*v7-v9*v8*v5+v11*v4*v5
[2]:
1,1,1
[11]:
[1]:
_[1]=-1
_[2]=v9-v5
_[3]=-v9*v3+v11*v7-v11*v5+v9*v5
_[4]=v7
[2]:
1,1,1,1
[12]:
[1]:
_[1]=-1
_[2]=-v6*v3+v4*v5
_[3]=v6*v7-v8*v5
[2]:
1,1,1
[13]:
[1]:
_[1]=-1
_[2]=v6-v4
_[3]=v9*v8-v11*v4
_[4]=-v9+v5
[2]:
1,1,1,1
[14]:
[1]:
_[1]=-1
_[2]=v11
_[3]=-v11+v9
_[4]=v9-v5
_[5]=v7-v5
_[6]=v7
[2]:
1,1,1,1,1,1
[15]:
[1]:
_[1]=-1
_[2]=v9-v5
_[3]=v9
_[4]=-v8+v4
_[5]=v4*v7-v8*v5
[2]:
1,1,1,1,1
[16]:
[1]:
_[1]=1
179
Chapter 2 Implementation in GeoGebra
_[2]=v11
_[3]=v6-v4
_[4]=-v11+v9
_[5]=-v9+v5
_[6]=v4
[2]:
1,1,1,1,1,1
Here we have 16 equations after the elimination. Most of them ([1], [2], [6], [8], [9],
[10], [11], [13], [14], [15] and [16]) contain at least one trivial non-synthetic factor
(equality of coordinates). The remaining equations mostly contain such factors
which do not have an easy meaning in geometry. It is easy to see the second factor
of [3] contains v4, but does not contain v3at all: this means that this algebraic
expression cannot be translated into a synthetic geometry condition. [4], [5] and [7]
might be candidates since they contain both v3and v4,v5and v6, and v7and v8.
But the winner is clearly [12] since it contains purely two collinearity conditions,
namely that the triangles ABC and ACD are degenerate.
One can check all the 40320 permutations and collect the geometrical meanings.
Appendix shows that only 4146 contains the same readable conditions we achieved
with the variable ordering v11, v6, v9, v8, v3, v4, v7, v5. This is 10,28% of the total
cases. By denoting the variable ordering v3, v4, v5, v6, v7, v8, v9, v11 as the identical
permutation “12345678”, it is easier to enumerate these “good” cases. Interestingly
enough, no permutation starts with 3(i. e., with v5), and no permutations end with
7and 8(i. e., with v9and v11 which are the independent variables for the half-
dependent points). On the other hand, many “good” cases start with 8 or 7, and for
example those which start with 8765 are exactly 16 cases (of the 24 possible, which
is 2/3probability under this condition). Among them there is the permutation
87654321 as well.
This investigation suggests the following heuristic extension of our algorithm. Try
the “reversed” permutation of the variables first, in this case 87654321. If this per-
mutation does not yield a usable condition set, then permute the last four elements
of the permutation until we have success. This will result in at most 24 cases for
each geometry problem. Of course, there is no guarantee if this modified algorithm
indeed returns a usable set, but we may have an intuition that trying to force the
first points to be shown in the equations may have a more practical meaning than
choosing other points instead. This extended algorithm has also been implemented
in GeoGebra 5.
Unlike Singular, Giac cannot be fine tuned to use a specific ordering of the variables
in its eliminate command. In many cases, however, its output can be converted to
human readable conditions. On the other hand, there are essential speed differences
between Singular and Giac, and for Giac, there can be significant differences between
the JNI and the HTML5 versions.
This approach about finding the best permutations is still subject of researching. In
general it seems very difficult to predict the best variable ordering, both for speed
180
2.3 The Gröbner basis method
and geometrically readable results.
2.3.6. Evaluation
Kapur (1986) is one of the pioneer reports on comparing different approaches on
getting degeneracy conditions for various theorems. Definitely, we followed Kapur’s
method in the first subsections on introducing our basic algorithm. As he claims,
“conditions found using this approach are often simpler and weaker than the ones
reported using Wu’s method”. However, as Winkler (1990) points out, it is not
straightforward to agree what to be considered as “simplest”.
On one hand, our experiences confirm Kapur’s results. In our theorem corpus,
containing 60 tests in elementary geometry, we find that the thesis is true without
any extra condition where Wu’s method returns some required conditions in 13 tests.
The opposite case is in 2 tests. In addition, in many cases our algorithm returns
simpler conditions than Wu’s method, however, in some cases Wu’s method can
give an answer, but our method cannot detect the algebraic conditions well enough
or too slow (and runs over timeout which is set to 30 seconds for the tests, but is
normally set to 5 seconds in GeoGebra).
In the following table results for all the 60 tests are shown for our algorithms via Sin-
gular and Giac, and also for the Wu algorithm implemented by the OpenGeoProver
library in GeoGebra (“OGP Wu”). In the last column “Auto” we show the final
result shown in GeoGebra as the output of the portfolio prover. We show both the
result (in column “R.”) and the speed (in column “S.”) of each computation. Green
cells mean correct answers, yellow means that the appropriate algorithm could not
give an answer (i. e., it simply answered “I do not know”). “t/o” abbreviates “time-
out”. Darker greens always mean faster computation. “f” means “false”, i. e. the
question is a logical non-consequence; if “f” is not shown and the cell is green then
the question was found to be a logical consequence. If there is no extra information
in the result column, then the logical consequence is always true, otherwise we can
see the degeneracy conditions C1, C2, . . . , Cr(according to Definition 40), one per
row. We simply denote collinearity for points A, B, C by ABC. “. . .” means that
the obtained degeneracy conditions are judged not be useful in education. Fastest
speed among the algorithms is shown in bold, slowest speed is italic. Time is al-
ways shown in milliseconds, however some differences always occur during different
runs because of the complexity and randomness of the underlying operating system
process scheduling.28
28For the detailed construction definitions for these example tests please consult the GeoGebra
source code in folder geogebra/test/scripts/benchmark/prover/tests. The whole benchmarking
output can be recomputed by running the “ndg” scenario when running the “runtests” script.
Using the “-h” option will provide more details on the usage.
181
Chapter 2 Implementation in GeoGebra
Test Singular Giac OGP Wu Auto
R. S. R. S. R. S. R. S.
lines-parallel f33 f241 f69 f243
points-col...ar f27 f234 f61 f236
points-equal f30 f247 f65 f233
bisector-m...nt A=B106 A=B288 79 A=B265
centroid-m...o1 ABC 44 AB C 263 DF A
dke569 ABC 282
centroid-m...o2 12 238 64 288
Ceva1 52 297 68 359
Ceva2 21 237 65 315
Ceva3 20 235 67 302
circumcenter1 45 255 A=B
a=i1199 276
circumcenter2 45 247 B=C110 267
circumcenter3 45 251 A=B
B=C136 248
circumcenter4 47 265 A=B
B=C144 249
circumcenter5 45 269 B=C109 261
circumcenter6 ABC 123 ABC 358 A=B
B=C130 ABC 352
construct-...ne 17 232 81 330
construct-...nt 9 240 86 303
def-line-p...ne 35 249 75 259
def-points...e1 65 275 200 275
def-points...e2 56 261 B=C134 269
def-points...ne 35 245 68 255
Desargues t/o 5669
DEA
f=k1
f=l
dke
fkg
hki
769
DEA
f=k1
f=l
dke
fkg
hki
6575
EulerLine ABC 95 ABC 304
DEA
a=m1
dke
789 ABC 337
foot-exists B=C57 B=C274 a=g1
B=C295 B=C266
incenter1 9 239 ... 420 ... 636
line-circl...on 40 244 95 243
nine-point...le A=B84 A=B316 a=g1340 A=B315
orthocenter1 B=C56 B=C267 B=C
c=h1198 B=C270
orthocenter2 39 245 B=C108 252
orthocenter3 42 244 B=C126 264
orthocenter4 41 242 B=C129 250
orthocenter5 ABC 139 ABC 392 B=C121 ABC 385
orthocenter6 41 249 B=C109 249
orthocenter7 ABC 86 ABC 357 B=C119 ABC 362
Pappus ABC
ACD 434 AB C
ACD 1034
DEA
A=F
e=i
e=j
dke
fkh
682 ABC
ACD 1052
parallelog...ls ABC 106 ABC 272 b=g1
ekf332 ABC 267
point-equal 82 243 59 243
powerline-...ar 47 253 B=C135 258
Pythagoras 17 231 60 288
reflection1 12 222 57 229
regular-tr...le 40 248 115 270
182
2.3 The Gröbner basis method
rotate1 16 230 61 292
Simson1
A=B
A=C
B=C
835 5718 a=j1293 a=j16089
Simson2
A=B
A=C
B=C
1275 5921 b=h1232 b=h16122
square1 45 256 83 255
square2 48 268 ... 112 257
square3 46 270 104 256
symmedians 19 230 75 295
Thales1 A=C52 A=C280 f1=g193 A=C265
Thales2 A=B55 A=B295 113 A=B311
Thales3 A=C53 A=C291 B=C120 A=C287
triangle-areas 52 290 63 390
triangle-m...ns 42 271 a=f1
dke475 255
triangle-m...t1 38 244 77 248
triangle-m...t2 38 260 76 244
triangle-m...t3 41 246 86 256
triangle-m...t4 30 267 78 269
triangle-m...t5 37 243 83 249
true 2 121
Varignon 40 248 85 266
Total (of 60) 47 45 48 49
We find that all tests which have a positive result in Singular, have a useful suffi-
cient condition set—this means that our main effort was successful! Our previous
examples are shown under the test names “triangle-midsegment1”, “parallelogram-
diagonals”, “orthocenter5”, “Thales3”, “EulerLine” and “Pappus”. We can conclude
that Wu’s algorithm for “Pappus” returns six conditions (Singular returns two con-
ditions, as reported above). We can conclude that Wu’s algorithm is performing
very well both in speed and in the number of results, but Singular is usually faster.
The above means that our algorithm is not always better than Wu’s method, but in
many cases it gives a better result for the educational purpose.
The portfolio prover in GeoGebra is configured to run the Gröbner basis method
first, and when no usable conditions are found, run Wu’s method (and then other
methods if applicable). As a final conclusion, we find that Wu’s method can solve 48
problems, our method can solve 47 problems via Singular (45 via Giac), and finally
the portfolio prover extends the weakness of our method by running Wu’s algorithm
in OpenGeoProver (and using other methods eventually) , so we can achieve good
results in 49 cases (of 60).
We highlight that the answers given by the different methods are coherent, that is,
no contradiction can be found among them.
2.3.7. Extensions
As mentioned above on page 152 we can get a yes/no answer for a question even
without determining the degeneracy conditions. For this, we need a slightly differ-
ent approach which is described by Cox et al. (1991), Chapter 6, §4. The frontend
183
Chapter 2 Implementation in GeoGebra
algorithm in GeoGebra is implemented by Simon Weitzhofer in his master thesis
(Weitzhofer (2013)), by using fast implementation of parametrized equation sys-
tem solving in Singular. The basic idea is that free variables can be considered as
parameters, and therefore the number of variables can be reduced. This is an advan-
tage because the computation may be significantly faster, but also a disadvantage
because no degeneracy conditions can be obtained for the free variables.
Here we follow the same idea, but instead of using parameters we call these ob-
jects transcendental constants, by following Singular’s terminology.29 The discussed
method can give a yes/no answer only and cannot tell exactly when the thesis is
true. In fact, since this extended way of computation is usually quicker than our
original algorithm, this is not a real problem, but rather a feature: the student can
request an immediate yes/no answer by using the Prove command in GeoGebra,
and if interested in the details, they can still be obtained by using the ProveDetails
command with the same arguments.
This approach, however, cannot be achieved in Giac at the moment. This is unfortu-
nate for students who do not have a continuous Internet connection for outsourcing
computations. Thus for Giac we will use a different way which performs better than
the elimination way, but not so effective as Cox et al. (1991) suggest.
2.3.7.1. Using transcendental constants
In this paragraph we remind the reader the notion of a extension field. A field is,
in a nutshell, such a “world” where operations addition,subtraction,multiplication
and division may always be computed (except the division by zero).
Definition 54. Let Fbe a field and α1, . . . , αu6∈ F. We call Ethe extension of F
with transcendental elements α1, . . . , αuif
Eis a field,
EF,
α1, . . . , αuE.
We call Eminimal if for all possible E0extensions, EE0. Then we denote Eby
F(α1, . . . , αu).
Definition 55. Let Fbe a field and α1, . . . , αu6∈ F. We call α1, . . . , αualgebraically
independent elements if for all non-zero multivariate polynomial phaving coefficients
from F,p(α1, . . . , αu)6= 0.
Example 56. πand eare thought to be algebraically independent elements in
Q(π, e)since any algebraic expression of πand enever seem to be zero. For example,
271·π314·eis near 0, but clearly non-zero. The independence of πand elooks quite
29See http://www.singular.uni-kl.de/Manual/3-1-6/sing_28.htm for more details.
184
2.3 The Gröbner basis method
straightforward, but actually this is just a conjecture yet (Wikipedia (2013a)). In
contrast, πand eπare indeed proven to be independent transcendental numbers—see
Nesterenko (1996) for a proof.
Now we can describe the main idea for the Singular approach of the Prove com-
mand. In fact, it is more or less a natural way for the task we want to do in the
terms of abstract algebra—here we give two examples with full details for a better
understanding.
Example 57. Consider the following statement: Let Aand Bbe arbitrary points,
and Cthe midpoint of AB. Then A6=Cif A6=B. (Here we will obtain the
assumption A6=Bas a degeneracy condition.)
Let A= (v1, v2),B= (v3, v4), all the four variables are independent. Let C=
(v5, v6), here the variables are dependent. The hypotheses equations are
2v5v1v3= 0,
2v6v2v4= 0.
Since we want to check coordinate equalities, there are two theses: v1v56= 0
and v2v66= 0, but we want to deny them ad absurdum, thus we do not use the
Rabinowitsch trick here. Instead, we simply add v1v5= 0 (and v2v6= 0) to
the hypotheses and expect contradiction. Unfortunately the equation system has a
solution, i. e. the elimination returns an equivalent equation system which consists
of one equation: v1v3= 0 (and v2v4= 0 for the other coordinate test). This
means, geometrically, that the theorem is true, unless A6=B.
Now let us forget all geometrical meaning of the variables and consider the inde-
pendent variables as algebraically independent elements. That is, let V1,V2,V3,V4
denote some unknown algebraically independent elements, such that there is no
algebraic relation between them. Consider the following equation system:
2v5− V1− V3= 0,
2v6− V2− V4= 0,(2.3.29)
V1v5= 0.
Now let us decide if this system has a solution. We know that by elimination we
can conclude
V1− V3= 0.(2.3.30)
On the other hand, V1and V3are algebraically independent elements, therefore
V1− V36= 0.(2.3.31)
(2.3.30) and (2.3.31) are obviously in contradiction, thus (2.3.29) is itself a contra-
dictory system. In general, every time we obtain an equation like 2.3.30 after the
185
Chapter 2 Implementation in GeoGebra
elimination, we will conclude that it contradicts the definition of the algebraically
independent elements (like in (2.3.31)). This is simply because the equations of
the eliminated system are always algebraic and contain only independent variables
which are, actually, transcendental, but there cannot be any algebraic relation be-
tween them.
Clearly, for such geometry questions where there is no degeneracy condition, i. e. the
thesis is always true, we will get the contradiction the same way as in Example 26.
The remaining question is if this approach will give a solution for equation systems
describing those geometry questions which are logical non-consequence. The answer
is yes:
Example 58. Let A= (v1, v2),B= (v3, v4), all the four variables are independent.
We would like to check the hypothesis A=B(which is false, of course).
We want to check coordinate equalities again. The equation system, thus, consists
of one equation, and cannot be eliminated to contain the independent variables only:
v5·(v1v3)1=0
(or v5·(v2v4) = 0 for the other coordinate). Now let V1,V2,V3,V4denote some
unknown algebraically independent elements again, and let us investigate the equa-
tion
v5·(V1− V3)1=0.
But here there is no contradiction. The equation can be solved:
v5=1
V1− V3
,
which may be a valid solution in the extension field we are working in.
Luckily, the Singular program code in Example 20 must not be significantly changed
to achieve the expected results:
ring R=(0,v1,v2,v3,v4),(v5,v6),dp;
ideal I=2*v5-v1-v3,2*v6-v2-v4,v1-v5;
groebner(I);
will result in
_[1]=1
and
ring R=(0,v1,v2,v3,v4),(v5),dp;
ideal I=v5*(v1-v3)-1;
groebner(I);
will give
186
2.3 The Gröbner basis method
_[1]=(v1-v3)*v5-1
as expected. Here the first parameter for the ring Rdescribes the transcendental
extensions, which are, in our case, always the independent variables.
We can create an algorithm to compute the output for the Prove command as a
summary of our investigations above:
1. Turn the input question Q= (H1, H2, . . . , Hm;T)to an equation system S
with variables v1, . . . , vnby using reductio ad absurdum, Rabinowitsch’s trick
and the fixed points A(0,0) and B(0,1).
2. Rename the independent variables v1, . . . , vtto algebraically independent ele-
ments V1,...,Vt.
3. Decide whether the equation system S(in variables vt+1, . . . , vn) is contradic-
tory with coefficients from extension field Q(V1,...,Vt).
4. If yes, then show “the answer is true” as output, if no, then show “the answer
is false” as output.
It is crucial that the black box CAS must be able to solve an equation system with
transcendental constants. This is the case for Singular, but not for Giac.
2.3.7.2. Using prescribed non-degeneracy conditions
In Example 28 we learned that the only degeneracy condition was ABC, that is A,
Band Care collinear. Our benchmark output on page 183 shows that in 5 more
tests the same condition was obtained, and in 7 other tests the condition is simply
to have different points for two free points. This consideration leads us to the idea
to preassume some “natural” conditions which are not necessarily required, but may
be sufficient to make the thesis work.
In most cases the preassumption is just to have the polygon defined by the free
points to be a non-degenerate one. When there are Nfree points, in case
N= 1 this means we do not need any preassumption,
N= 2 this means we could assume A6=B, but this has already been assumed
by fixing these points,
N= 3 this means ABC is not allowed,
for N > 3for each free X, Y, Z points XY Z is not allowed. This requires N
3
extra equations which is 4for N= 4,10 for N= 5 and so on, and the same
number of extra variables (for Rabinowitsch’s trick).
As we will see, the Giac works usually faster after this modification, in particular for
“Pappus” (twice faster), but for 3 tests, “Desargues”, “Simson1” and “Simson2” we
will not get a contradiction. This means that there should be some more prescribed
187
Chapter 2 Implementation in GeoGebra
non-degeneracy conditions added. Actually, these conditions could be automatically
found by analyzing the result of the solve command in Giac, that is, by obtaining
the equivalent equation system (which is achieved practically by elimination), but
in our latter 3 tests we will not get any human readable conditions. On the other
hand, such an investigation would be probably even more time consuming. Thus,
we put up with getting any meaningful answer in these cases, and also with giving
answer “no” for the logical non-consequences (i. e. the first 4 tests which should give
“false”).
This is the detailed algorithm with Giac for the Prove command:
1. Turn the input question Q= (H1, H2, . . . , Hm;T)to an equation system S
with variables v1, . . . , vnby using reductio ad absurdum, Rabinowitsch’s trick
and the fixed points A(0,0) and B(0,1).
2. Let Nbe the number of free points. If N3, for each free X, Y, Z points add
the equation of ¬XY Z to S.
3. Decide whether the equation system S(in variables v1, . . . , vn) is contradictory.
4. If yes, then show “the answer is true” as output.
As in in the other algorithms, if there is no output explicitly given, the answer is
“undefined” in GeoGebra. In this paragraph this case simply means that the method
cannot reliably determine if the answer is yes or no, so the best it can do is to remain
silent.
Finally we prove the correctness of this algorithm.
Theorem 59. Let Q= (H1, H2, . . . , Hm;T)be a question. Let QC=
(H1, H2, . . . , Hm, C;T)be another question where the non-degeneracy condition C
is added to the hypotheses. Now Qis generally true if and only if QCis generally
true.
Proof. Assume that Qis generally true. Let Sand SCdescribe Qand QCas
equation systems, respectively. Consider equivalent equation systems S0and S0
C
(where all independent variables from Sand SCare eliminated, respectively). Now
S0describes the set Eof counterexamples for Q, and S0
Cdescribes the set ECof
counterexamples for QC. Since Crestricts E, obviously EEC. This means that
the set of counterexamples for QCmust be a subset of counterexamples for Q, that
is, QCis generally true.
Conversely, let us assume that Qis not generally true. By using the same notations,
S0={0=0}. Since Cis a non-degeneracy condition, its equation in SCcan be
written in the form z·f(v1, v2, . . . , vt)1=0where zis a dependent variable and
v1, v2, . . . , vtare independent variables. Now z=1
f(v1, v2, . . . , vt), hence zcan be
expressed by the independent variables and it can be eliminated in S0
Cimmediately,
without any other effect on the elimination process. Therefore the equation describ-
ing Cin Swill not modify S0, that is, S0
C=S0={0=0}, thus QCis not generally
true.
188
2.3 The Gröbner basis method
2.3.7.3. Comparison
The following table shows the overall results for the Prove command when using the
same underlying computer algebra systems or methods in GeoGebra. (This result
can be achieved by choosing the “giac-test” scenario in the benchmarking system.)
Test Singular Giac
R. S. R. S.
lines-parallel f 45 239
points-col...ar f 31 239
points-equal f 82 235
bisector-m...nt t 95 t247
centroid-m...o1 t 52 t274
centroid-m...o2 19 249
Ceva1 54 297
Ceva2 19 249
Ceva3 19 235
circumcenter1 t 38 t246
circumcenter2 t 39 t245
circumcenter3 t 64 t241
circumcenter4 t 64 t240
circumcenter5 t 54 t244
circumcenter6 t 103 t276
construct-...ne 16 232
construct-...nt 10 233
def-line-p...ne t 39 t250
def-points...e1 t 59 t265
def-points...e2 t 51 t263
def-points...ne t 38 t236
Desargues t 55 3129
EulerLine t 48 t271
foot-exists t 36 t242
incenter1 4 241
line-circl...on t 29 t258
nine-point...le t 57 t271
orthocenter1 t 40 t266
orthocenter2 t 36 t243
orthocenter3 t 33 t268
orthocenter4 t 36 t242
orthocenter5 t 123 t249
orthocenter6 t 33 t244
orthocenter7 t 73 t261
Pappus t 41 t576
parallelog...ls t 99 t259
point-equal t 69 t236
powerline-...ar t 41 t253
Pythagoras 13 230
reflection1 8 231
regular-tr...le t 33 t259
rotate1 17 253
Simson1 t 48 655
Simson2 t 46 703
square1 t 39 t267
square2 t 42 t259
square3 t 37 t245
symmedians 9 232
Thales1 t 46 t262
Thales2 t 39 t266
Thales3 t 44 t251
triangle-areas 53 300
triangle-m...ns t 35 t241
triangle-m...t1 t 30 t248
189
Chapter 2 Implementation in GeoGebra
triangle-m...t2 t 31 t257
triangle-m...t3 t 37 t246
triangle-m...t4 t 17 t239
triangle-m...t5 t 37 t237
true t 2 t 1
Varignon t 38 t246
Total (of 60) 48 42
We can see that Singular can solve “Desargues” now, that is, by using the algorithm
described on page 187. In addition, Giac can answer “Pappus” properly, but the
former “false” answers for the non-consequences turn to “undefined”, by using the
algorithm described on page 188. (This means that Giac has one good points but
three bad points here.) Also Giac is performing not worse than for the ProveDetails
command, what is more, it solves 3 tests (“circumcenter6”, “orthocenter5” and
“orthocenter7”) significantly faster now. That is, Singular can solve 48 problems,
Giac solves 42 problems when the Prove command is used, and the speed is more
acceptable for many classroom situations.
The speed can be, however, even more improved, for example by using Recio’s
method which is a finite variant of the algebraic approach.
2.4. Recio’s method
Strangely enough, if we can find enough configurations where the hypotheses are
true, then we can be sure that the hypotheses will be true with 100% certainty.
(This is, as we already mentioned on page 152, not the sure event, since we may leave
out some degeneracy cases.) This fact is a simple consequence of the fundamental
theorem of algebra, which states in fact, that a polynomial can have the 0 value
only finitely many times, otherwise the polynomial is equal to the constant zero
polynomial.
Recio’s method is, as we will see, a technique to find enough configurations to give
the 100% certainty, what is more, when not considering the degeneracy cases, we can
obtain absolute truth. For simple theorems the number for “enough” is surprisingly
low, but for more complicated questions it can be somewhat higher.
Proving by examples is, however, not a new idea. As Weitzhofer (2013) highlights
(see page 41) there is already a remarkable work done in ATP in geometry by Hong
and Zhang,Yang and Deng from the eighties. Also probabilistic tests by Tulone,Yap
and Li and Kortenkamp, based on Schwartz’s work, are known approaches which
use some related ideas.
Here we show the basic idea of Recio’s method by adding a hardcopy of Kovács et al.
(2012). Also an illustrated presentation is available at Botana et al. (2012a).
190
s
p/q = 0
p q 6= 0
q p
p
s
s
p
p
p
d
d
d
d d + 1
d d
d d
d
d
d+ 1
p
p
d+1 d
d+2
2
d+ 2
d+ 1 d d
ABC
D, E F A, B C
A B
(1,1) (2,3) (c1, c2)C s = (AD BE
CF 6=)
AD :c1+c21 + (c1+ 2)x+ (c2+ 3)y
BE : 2c1+ 3c21 + (c11)x+ (c2+ 1)y
CF : 3c1+ 2c2+ (3)x+ (2)y
s p p
p p
C3+2
2= 10
p
(c1, c2)R2s
p
p
c1c2A7→ (0,0), B 7→ (0,0), C 7→
(1,1), AD 7→ (1,1,1), BE 7→ (1,1,1), CF 7→ (1,0,0), s 7→ 3
CF
C AB
CF
d d + 1 d
d
n
d d
d
d
2.5 Java implementation
At the moment, Recio’s method is implemented only for such problems which have
linear construction steps. That is, for example, intersection of a line and a circle is
not supported, but checking concyclicity is (since checks are not construction steps,
but final computations).
2.5. Java implementation
In this section we give a simple overview of the programmatical details of the port-
folio prover in GeoGebra. We already mentioned the presence of OpenGeoProver in
the GeoGebra application. It is an external module, technically an extra .jar file in
the desktop version. It has no implementation in the web version of GeoGebra yet.
The Javadoc documentation of the GeoGebra source code is available at
http://dev.geogebra.org, generated automatically on a regular basis. The
Java package org.geogebra.common.kernel.prover is the main directory for the
prover subsystem which has the following class summary:
Class Description
AbstractProverReciosMethod A prover which uses Tomas Recio’s method
to prove geometric theorems.
AlgoAreCollinear Decides if the points are collinear.
AlgoAreConcurrent Decides if the lines are concurrent.
AlgoAreConcyclic Decides if the points are concyclic.
AlgoAreEqual Decides if the objects are equal.
AlgoAreParallel Decides if the lines are parallel.
AlgoArePerpendicular Decides if the lines are perpendicular.
AlgoIsOnPath Decides if the point lies on a path.
AlgoProve Algo for the Prove command.
AlgoProveDetails Algo for the ProveDetails command.
Combinations Implementation of iterable combinations of
a set.
NDGDetector Detects polynomial NDG conditions and
turns into human readable form.
ProverBotanasMethod A prover which uses Francisco Botana’s
method to prove geometric theorems.
ProverPureSymbolicMethod A prover which uses pure symbolic method
to prove geometric theorems.
Also package org.geogebra.common.kernel.prover.polynomial is imple-
mented containing classes Polynomial, PolynomialParser, PolynomialParserTo-
kenManager, SimpleCharStream, Term, Token and Variable. The package
org.geogebra.common.util contains the kickstart abstract class Prover.
Some helper interfaces are SymbolicParametersAlgo, SymbolicParametersBotana-
Algo, SymbolicParametersBotanaAlgoAre from geogebra.common.kernel.algos.
195
Chapter 2 Implementation in GeoGebra
The new GeoGebra commands are implemented in package org.geogebra.-
common.kernel.advanced in classes CmdProve and CmdProveDetails, and
started by class CommandDispatcherAdvanced in package org.geogebra.-
common.kernel.commands.
These classes are universal parts of GeoGebra being used in both the desktop and
the web version.
Only the desktop version contains packages org.geogebra.kernel.prover with
class ProverReciosMethod (which implements AbstractProverReciosMethod) and
org.geogebra.desktop.util with class Prover (which implements the abstract class
Prover).
Only the web version contains packages org.geogebra.web.html5.kernel with
class ProverReciosMethod (the web implementation of AbstractProverRecios-
Method) and org.geogebra.web.html5.util with class Prover (the web implemen-
tation of the abstract class Prover).
The main workflow in GeoGebra is to draw a construction. Construction
steps are handled in so-called “algos”, for example, AlgoIntersectLines (in
org.geogebra.common.kernel.algos) supervises the intersection of two lines, say
l1and l2(lying on points, say A1, B1and A2, B2). During such a construction step
some extra details are needed to be stored by the prover subsystem in advance, thus
such algos need to implement e. g. SymbolicParametersBotanaAlgo for Botana’s
method and in this case variables need to be allocated for the intersection of l1
and l2, say C= (vi, vi+1); also equations must be inserted to ensure collinearity for
points A1, B1, C and A2, B2, C .
The portfolio prover will be started by the Prove or the ProveDetails command
entered in the Input Bar by the user. Then the CmdProve and AlgoProve (and
CmdProveDetails and AlgoProveDetails) classes will be started. Now the Prover
class is executed and it starts the appropriate prover engine:
an implementation class of AbstractProverReciosMethod for Recio’s method,
the ProverBotanasMethod class for Botana’s method,
an implementation of the Prover method for any of OpenGeoProver’s methods
(Wu or area).
In this phase the internally implemented methods analyze the input parameter of
the Prove or the ProveDetails command. For example, if the full command was
Prove[AreParallel[a,b]], then the AlgoAreParallel class will be visited by the pro-
gram flow, and some additional information will be collected and further processed.
For example, in case of Botana’s method a polynomial will be created to describe
the parallelism relation between aand b; then, back in the main prover class, its
negation will be added to the list of the other polynomials collected from the parent
objects of aand b; finally, the set of polynomials will be sent either to Singular or
Giac to check if the described system is solvable (or, for the ProveDetails command,
an equivalent system is expected by eliminating the dependent variables).
196
2.5 Java implementation
When using the external prover, OpenGeoProver will be configured directly via its
global OpenGeoProver.settings variable. The input object is of type GeoGebraOG-
PInputProverProtocol which is set by OpenGeoProver’s public setGeometryTheo-
remText() method by using GeoGebra’s XML format to describe the construction
steps. GeoGebra sets the method (Wu or Area) to be used in OpenGeoProver by
using setMethod(). For the Prove command there is no need to collect degeneracy
conditions: in this case GeoGebra uses the setReportFormat() method to disable re-
port generation. Finally, the GeoGebraOGPInterface.prove() method will be called
and the output from the GeoGebraOGPOutputProverProtocol object will be col-
lected.
Independently of the used prover engine, when the ProveDetails command was
called, GeoGebra uses its internal methods to simplify the objects in the degeneracy
conditions as much as possible: it automatically sorts the objects alphabetically
and puts extra lines in the construction by using dashed linestyle when they explain
degeneracies (Fig. 2.20).
Figure 2.20. – Extra dashed lines help to investigate degeneracy conditions.
Here midlines EG and F H of quadliteral ABCD bisect each other under the
condition “the diagonals i, j of the quadliterals intersect”. iand jwere not
constructed by the user, they have been highlighted by GeoGebra.
197
Chapter 2 Implementation in GeoGebra
2.6. Conclusion
Now we summarize the results for the Prove command by showing the same statis-
tics with the overall results.
Test Recio PSymb. Sing. Giac OGP W. OGP A. Auto
R. S. R. S. R. S. R. S. R. S. R. S. R. S.
lines-parallel f 6f 31 f 45 257 f 62 f 76 f 6
points-col...ar f 4f 12 f 27 238 f 61 f 79 f 5
points-equal f 7f 11 f 97 232 f 63 f 71 f 7
bisector-m...nt t 3t 19 t 94 t 248 t 80 t 85 t 3
centroid-m...o1 2 5 t 38 t 252 t 492 t 131 t 243
centroid-m...o2 2 3 19 237 70 t 83 t 325
Ceva1 2 2 54 299 64 t 81 t 388
Ceva2 3 3 16 235 66 t 87 t 358
Ceva3 2 2 22 236 79 t 89 t 356
circumcenter1 t 6t 37 t 38 t 268 t 212 t 103 t 6
circumcenter2 t 9t 32 t 40 t 243 t 117 t 99 t 9
circumcenter3 t 7t 29 t 36 t 242 t 129 t 89 t 4
circumcenter4 t 3t 26 t 41 t 258 t 140 t 91 t 8
circumcenter5 5 4 t 41 t243 t 106 t 96 t 247
circumcenter6 t 12 t 59 t 101 t 256 t 127 t 104 t 15
construct-...ne 4 8 23 246 88 93 346
construct-...nt 4 8 10 228 83 87 319
def-line-p...ne t 6t 10 t 37 t 244 t 70 t 72 t 5
def-points...e1 2 9 t 53 t262 t 189 t 87 t 261
def-points...e2 4 6 t 53 t274 t 140 t 88 t 266
def-points...ne t 6t 12 t 46 t 237 t 69 t 72 t 3
Desargues 3 t/o t 39 3133 t 781 t 86 t 4583
EulerLine t 19 t 544 t 43 t 254 t 673 t 209 t 14
foot-exists 4 17 t 40 t 242 t 261 t 75 t 243
incenter1 3 2 9 228 t 470 65 t 638
line-circl...on 2 4 t 52 t242 t 86 84 t 247
nine-point...le t 24 t/o t 63 t 269 t 399 t 75 t 25
orthocenter1 t 12 t 105 t 46 t 248 t 191 t 77 t 12
orthocenter2 t 10 t 30 t 40 t 237 t 104 f 659 t 7
orthocenter3 t 7t 31 t 53 t 257 t 125 t 75 t 6
orthocenter4 t 6t 32 t 39 t 249 t 126 t 69 t 8
orthocenter5 t 12 t 68 t 106 t 274 t 116 t 132 t 11
orthocenter6 t 11 t 30 t 54 t 241 t 107 f 675 t 13
orthocenter7 t 5t 63 t 68 t 257 t 120 t 133 t 11
Pappus 6 t/o t 43 t 567 t 686 t 84 t 617
parallelog...ls t 14 t 70 t 97 t 254 t 365 t/o t 13
point-equal t 4t 12 t 68 t 234 t 64 t 72 t 4
powerline-...ar 4 7 t 41 t254 t 144 83 t 249
Pythagoras 4 3 15 228 56 t 78 t 307
reflection1 4 9 8 233 61 64 230
regular-tr...le 5 2 t 39 t245 t 107 87 t 243
rotate1 3 8 12 231 70 76 299
Simson1 4 8 t 45 674 t 279 t 159 t 966
Simson2 3 8 t 41 707 t 233 t 183 t 942
square1 2 2 t 41 t250 85 85 t 247
square2 2 2 t 40 t243 t 113 87 t 243
square3 3 9 t 38 t246 t 98 89 t 251
symmedians 3 3 17 236 70 71 329
Thales1 4 2 t 38 t243 t 191 t/o t 266
Thales2 2 2 t 39 t246 t 97 80 t 258
Thales3 4 3 t 39 t261 t 126 89 t 252
triangle-areas 4 4 52 290 68 t 318 338
triangle-m...ns t 8t 40 t 40 t 242 t 500 t 73 t 4
triangle-m...t1 t 7t 15 t 33 t 245 t 71 t 79 t 8
triangle-m...t2 t 7t 13 t 32 t 241 t 77 t 71 t 7
198
2.6 Conclusion
triangle-m...t3 t 6t 10 t 36 t 238 t 70 t 72 t 7
triangle-m...t4 t 6t 15 t 22 t 245 t 76 t 71 t 4
triangle-m...t5 t 6t 15 t 36 t 235 t 76 t 79 t 5
true t 1t 1 t 1 t 1 t 2t 2 t 2
Varignon t 8t 14 t 32 t 249 t 91 t 81 t 9
Total (of 60) 30 29 48 42 48 42 54
The tested engines are:
Recio’s method,
the PureSymbolic method (which is for verifying Recio’s method by literally
computing the required polynomials, also programmed by Weitzhofer),
Botana’s method with Singular,
Botana’s method with Giac,
OpenGeoProver’s Wu method,
OpenGeoProver’s area method,
the final result printed by the portfolio prover in GeoGebra.
However Recio’s method can handle only 50% of the test cases, in all the successful
30 tests it outperforms all other methods. In fact Recio’s method is also capable of
proving “Desargues” and “Pappus”, it is currently disabled to run Recio’s method
for a higher number of free points because the computation becomes too slow in
such cases.
It is remarkable that the PureSymbolic method is usually very fast on simpler tests,
only the “nine-point-circle” test was too difficult for it to compute (and also “Desar-
gues” and “Pappus”, like for Recio’s method). The PureSymbolic method is planned
to be used only for testing purposes.
Both Singular and Wu’s method in OpenGeoProver show an acceptable speed and
stability for 80% of the tests. At the moment OpenGeoProver detects a higher set
of possible constructions than Botana’s method does: for example, angle bisectors
are not implemented for Botana’s engine. Also a few GeoGebra construction steps
are not implemented yet in both subsystems.
The area method implemented by Damien Desfontaines is also notable. It cannot
be considered “rock solid” yet since it gives erroneous results for “orthocenter2” and
“orthocenter6”, but otherwise in many cases it is faster than Wu’s method. In fact,
the implementation of the area method is a “work in progress” at the moment.
Finally we note that the portfolio prover, shown in the last column, returns very
good results. In 90% of the test cases the correct answer is returned, and the rest
are “undefined”. For GeoGebra 5 the default behavior is to disable Singular and use
Giac instead, but even in this case most results are returned within 1 second. (The
benchmark was taken on a recent desktop PC.)
199
Chapter 2 Implementation in GeoGebra
Unfortunately, the JavaScript version of Giac is usually about one magnitude slower
than the desktop version. This hinders using the theorem proving in GeoGebra in
the web version for some harder problems. One possible way for the future versions
of GeoGebra to support running native code in a web browser. The are already tech-
niques mostly in ready-to-use state, such an example is the NaCl (“native client”)
technology invented by Google.
200
3. Application and examples
Ask, and it will be given to you;
seek, and you will find;
knock, and it will be opened to you.
— Matthew 7:7
In this chapter first the Relation Tool is demonstrated by providing a collection
of GeoGebra materials. This collection can be directly used in secondary school
education for grounding proofs by teachers.
Then the results of the implemented work are evaluated in a short conclusion. Some
possibilities for further enhancements are discussed.
3.1. The Relation Tool
3.1.1. The framework
There are plenty of available frameworks to study Euclidean geometry at secondary
school level. But in most textbooks some simplifications are used to hide the ax-
iomatic difficulties. Thus, in most frameworks some basic theorems are accepted
without further explanations since they are “visually evident”. As mentioned ear-
lier, this problem is discussed in Ye et al. (2010a,b).
In the following sections we follow the Hungarian textbook “Matematika I.” (Hajnal
and Némethy (1988)) for secondary schools. It is no longer used in the Hungar-
ian education system, but its structure for stating and proving theorems is still
remarkable. This textbook consists of 33 topics to cover the most important parts
of mathematics for a 14 years old student. For our interest topics 17 (introduction
to geometry, p. 217–231), 18 (triangles, p. 232–245), 19 (polygons, p. 246–251), 20
(parallelograms, p. 252–258), 23 (various lines and circles of a triangle, p. 290–301)
and 26 (various theorems, p. 334–346) is important now.
For simplicity, here we enumerate some of the discussed textbook theorems as fol-
lows:
1. Triangle inequality (p. 234).
2. Pythagorean theorem (p. 234).
201
Chapter 3 Application and examples
3. Converse of the Pythagorean theorem (p. 237).
4. The measures of the interior angles of the triangle always add up to 180 degrees
(p. 239).
5. Exterior angle theorem (p. 239).
6. In isosceles triangles the angles at the base equal one another, and, if the equal
straight lines are produced further, then the angles under the base equal one
another (p. 240), Euclid’s Proposition 5.1
7. If in a triangle two angles equal one another, then the sides opposite the equal
angles also equal one another (p. 242), Euclid’s Proposition 6.
8. In any triangle the angle opposite the greater side is greater (p. 243), Euclid’s
Proposition 18.
9. In any triangle the side opposite the greater angle is greater (p. 243), Euclid’s
Proposition 19.
10. The number of diagonals in a polygon with nsides corresponding to a given
vertex is n3(p. 248).
11. The number of diagonals in a polygon with nsides is n(n3)
2(p. 249).
12. The sum measure of the interior angles of the convex polygon with nsides is
(n2) ·180o(p. 249).
13. Equivalent definitions of a parallelogram (p. 256).
14. Bisectors of a triangle are concurrent (p. 291).
15. Thales’ (circle) theorem (p. 292).
16. Converse of Thales’ (circle) theorem (p. 293).
17. Altitudes of a triangle are concurrent (p. 295).
18. Angle bisectors of a triangle are concurrent (p. 296).
19. Midline theorem (p. 335).
20. Medians of a triangle are concurrent, the centroid divides each of the medians
in the ratio 2:1(p. 337).
21. Midline of a trapezoid is average measure of the bases (p. 338).
Proofs of the listed theorems are based on each other as shown in Fig. 3.1. In this
textbook, in fact, crystal clear axiomatic derivation is avoided for simplicity. For
example, instead of strict proving the basic properties of congruent triangles are
assumed as “well known theorems”: this approach is used for proving Theorem 6.
Also basic properties of a bisector are used for preparation of Theorem 14.
1For a summary of Euclid’s Propositions see e. g. Joyce (1996).
202
3.1 The Relation Tool
Figure 3.1. – Hierarchy graph of selected theorems of Hajnal and Némethy (1988).
Higher nodes show later theorems based on earlier ones.
3.1.2. GeoGebra files and applets
In this section we discuss which theorems of the given framework could be verified
or proved by the Relation Tool in GeoGebra. Here we emphasize again that this
should be only one step in the teaching process, and it should be followed by further
observation as described in Chapter 1, Sec. 1.1.8. Also in many cases the Relation
Tool is not the best or the only way to collect information about geometric facts.
Nevertheless, GeoGebra already has support for such investigations, so it can be
fruitful to demonstrate some of the statements with the Relation Tool as well.
For some theorems it is clear that it would be technically easier to use the Prove
or ProveDetails commands directly, mostly in those which contain algebraic ex-
pressions. But in this section we avoid using any command line input to focus on
point-and-click capabilities of GeoGebra instead.
3.1.3. Triangles
We mentioned in Chapter 2 that our current technological possibilities are limited
to deal with equations only. Thus Theorem 1 cannot be observed by the Relation
Tool at the moment, either.
There is a better case with Theorems 2 and 3. In Theorem 2 we have to show that
a sum of two expressions (or areas) of squares equals to another square. Before
constructing triange ABC we need to constraint for example point Cto lie on the
line b0(which lies on Aand perpendicular to AB) to ensure that ABC4is right. Now
we can define squares 1, 2 and 3 by using the Regular Polygon Tool in GeoGebra.
To compare their areas we need to create the sum of objects square1 and square2
as a number object, namely sum (Fig.3.2). Now square3 and sum can be compared
by the Relation Tool numerically (Fig. 3.4, Fig. 3.3). In this case, unfortunately,
GeoGebra cannot compute the answer symbolically, so we need to be satisfied with
the numerical result for now.2
2The problem is the lack of support for handling a regular polygon in the prover backends yet.
203
Chapter 3 Application and examples
Figure 3.2. – Relation Tool checks Theorem 2 by verifying a single occurence.
Algebra View on the left describes the used objects in the construction.
Since the Area method is capable of computing the proof for Theorem 2, it is feasible to expect
improvements on this issue for future version of GeoGebra.
204
3.1 The Relation Tool
Figure 3.3. – Theorem 2 is constructed step by step in GeoGebra.
The Construction Protocol can be printed or exported into e. g. PDF, and further
used in a teacher training or directly in the classroom.
205
Chapter 3 Application and examples
Figure 3.4. – Checking Theorem 2 with the Relation Tool.
Clicking More. . . results in “possibly generally true”.
Conversely, for Theorem 3, we may use algebraic formulas to express say afrom b
and c, and then check if segments band care perpendicular (Fig. 3.5 and Fig. 3.6).
Handling algebraic expressions is not yet supported in GeoGebra’s prover subsystem,
so we get a numerical result in this case as well.3
Figure 3.5. – A possible way of single occurence check for Theorem 3
with the Relation Tool. Numbers band ccan be set by using sliders.
3It should not be difficult to implement using algebraic expressions in future versions of GeoGebra.
206
3.1 The Relation Tool
Figure 3.6. – Output of the Relation Tool for Theorem 3
Since proofs for measuring angles are not supported in GeoGebra, either, it is not yet
possible to checking Theorem 4 symbolically. However, the way how the Relation
Tool could be invoked is similar as done in the previous theorems: we create number
object sum1 as α+β+γand sum2 as δ+εwhere δand εare intentional extra
angles to describe straight angle (Fig. 3.7).4A similar (but easier) approach can
help in investigating Theorem 5.
4This seems rather inconvenient and one could expect support for handling 180odirectly. On the
other hand, some proofs of this theorem emphasize the importance of straight angle is in fact
sum of two right angles.
207
Chapter 3 Application and examples
Figure 3.7. – An opportunity of single occurence check for Theorem 4
with the Relation Tool
The first theorem in our framework which can be checked symbolically with Geo-
Gebra is Theorem 6. To define an isosceles triangle, however, we need to create a
circle dwith center Aand circumpoint Band only then put point Cas a constrained
object on d. We can simply define angles αand βnow (Fig.3.8). By choosing More. . .
in the Relation Tool window GeoGebra computes that the statement α=βalways
holds (Fig. 3.9). 5
5Here Wu’s method implicitly computes Prove[α== β]in the background in 9 millisec-
onds and GeoGebra returns the result in 62 milliseconds. Another 12 milliseconds are re-
quired to obtain the degeneracy conditions in Wu’s method by calling OpenGeoProver with
ProveDetails[α== β]for the second time, and finally 21 milliseconds are required for Geo-
Gebra to collect the information and process it. This theorem cannot be proven in the web
version of GeoGebra since OpenGeoProver is not ported to HTML5 yet.
208
3.1 The Relation Tool
Figure 3.8. – Preparation for a symbolical check for Theorem 6
with the Relation Tool
Figure 3.9. – Output of the Relation Tool for Theorem 6
Conversely, Theorem 7 can be formulated by defining slider αas seen in Fig. 3.10.
Now copying αon segment AB on each vertex we obtain points B0and A0which
define lines dand e, respectively. Intersection point Cis defined as de. Now a=b
can be checked by using the Relation Tool, but since sliders are not yet supported,
we do not obtain other answer than that the statement is “possibly generally true”.
209
Chapter 3 Application and examples
Figure 3.10. – Single occurence check for Theorem 7
Theorems 8 and 9 are about inequalities. Thus we cannot observe them with the
Relation Tool at the moment.
3.1.4. Polygons
Theorems 10 and 11 are combinatorical statements, thus they are out of our scope.
Theorem 12 is a generalization of Theorem 4, so we may have a similar approach
when formulizing it for certain polygons (in its easiest case for quadrilaterals).
3.1.5. Parallelograms
Hajnal and Némethy (1988) investigates Theorem 13 quite thoroughly and formalizes
it as follows:
The following statements are equivalent for quadrilateral:
1. the opposite sides are parallel,
210
3.1 The Relation Tool
2. the opposite angles are of equal measure,
3. the adjacent angles are supplimentary,
4. the opposite sides are equal in length,
5. two opposite sides are parallel and equal in length,
6. its diagonals bisect each other.6
In Hajnal and Némethy (1988) proof of the equivalence of these definitions of a
parallalogram is discussed in details. For example, Statement 1 yields Statement
2 and vica versa. Also Statement 1 yields Statement 3 which proves Statement 2,
thus equivalence of statements 1 and 2 is obvious.
To construct a parallelogram, thus we may need 6 different ways to sketch the draw-
ing up with GeoGebra. Also 6 different methods are required to read the relations
off by using the Relation Tool. In this section for demonstration we investigate
the case when statement 1 holds and check whether statements 2, 5 and 6 can be
concluded. Similarly to Chapter 1, Sec. 1.2.6 we construct points A,B,Cand D
such that lines a, b, c and dare parallel (here akband ckd). We use notations
g=AB, h =CD, E =AC BD, i =AE, j =C E. Also angles at vertices are
marked as shown in Fig.3.11. Now we can simply compare the angles αand γor β
and δ, they will be checked symbolically and found to be equal always (Statement
2). Also we can compare gand h: they will always be parallel and under the condi-
tion “triangle ABC is non-degenerate” they will have the same length (Statement 5,
Fig.3.12). Finally, we can also conclude that i=jalso under the condition “triangle
ABC is non-degenerate” (Statement 6)—this is exactly the same result which has
already been discussed in Chapter 2, Sec. 2.3.3 in Example 28.
6Three additional characterizations of the parallelogram can be found at http://en.wikipedia.
org/wiki/Parallelogram.
211
Chapter 3 Application and examples
Figure 3.11. – Preparations for using the Relation Tool for Theorem 13
Figure 3.12. – Using the Relation Tool for Theorem 13
All the symbolical checks of Theorem 13 described above also works well in the web
212
3.1 The Relation Tool
version of GeoGebra in an acceptable time frame (the computation time is always
below 1 second).
3.1.6. Various lines and circles of a triangle
The easiest way for Theorem 14 to be formalized in GeoGebra is to draw trian-
gle ABC and create its perpendicular bisectors d,eand f, then enter command
Prove[AreConcurrent[d,e,f]]. There is no such an easy way from the Relation
Tool approach to check concurrency of three lines since only two objects can be
selected by the mouse pointer at the moment. On the other hand, it is possible to
define two of the bisectors (say dand e) and take the intersection point Dof them,
and then check if this point lies on the third bisector (i. e., here f). Fig. 3.13 shows
this construction in GeoGebra—Relation Tool will report that Dlies always on f.
Figure 3.13. – Workaround to check concurrence for Theorem 14
by using the Relation Tool
Theorem 15 is already discussed in Chapter 2, Sec. 2.3.5.2 in Example 42. Its con-
verse, Theorem 16 (Fig.3.14) is about a right triangle which is created by construct-
ing perpendicular line din point Aorthogonal to AB. Now Cis a constrained point
on d. Let Dbe the midpoint of BC. Then CD =DA follows: GeoGebra reports
this fact to be always true.
213
Chapter 3 Application and examples
Figure 3.14. – Theorem 16
Theorem 17 is also discussed in Chapter 2, Sec. 2.3.5 in Example 34. We use the
same workaround for formalizing it as done for Theorem 14. The Relation Tool
will, however, report that the statement is always true because we use the “better”
analytical approach described in Chapter 2, Sec. 2.3.5.3.
The web version of GeoGebra successfully reports the correct result for Theorems
14, 15, 16 and 17 within 1 second.
To check Theorem 18 we could use the same way as done in Theorems 14 and 17.
But in our case this will unfortunately not work (we will get that the theorem is
“possibly generally true”).7So we should try a different formalization, namely to
create another intersection point E, say by finding ef(Fig. 3.15). Now we may
check if points Eand Fare the same. Unfortunately in our case this formalization,
even if it can be processed by GeoGebra, cannot be resolved for the moment, so we
still get “possibly generally true”.
7Statements about angular bisector cannot be handled inside GeoGebra yet, so the problem must
be outsourced to OpenGeoProver. But, at the moment, checking if a point lies on a line is not
yet implemented in the communication layer between GeoGebra and OpenGeoProver, thus the
statement cannot be investigated in OpenGeoProver, either. This communication problem will
be solved in the future.
214
3.1 The Relation Tool
Figure 3.15. – Theorem 18 by using “point equality check” approach
Fortunately, we still have yet another option which will actually work (Fig. 3.16).
In this third attempt we construct point D=deagain and draw line BD which
divides the angle at vertex Binto β1and β2. Now we can check whether β1=β2.
GeoGebra finds that “under certain conditions” the statement is true (Fig.3.17).8
Figure 3.16. – Theorem 18 by using the “angle equality check” approach
8Here again OpenGeoProver’s Wu method computes the result which is {true, {“AreEqual[B,
C]”, “IsPolynomial[(u2
3+u2
2)x1(u2
3u2u3
2)]”}} when obtaining the degeneracy conditions by
launching the ProveDetails command. This output should be further analyzed in OpenGeo-
Prover to enable it sharing with the user since its current form is too technical and the meaning
of the variables are not explained, either.
215
Chapter 3 Application and examples
Figure 3.17. – Using the Relation Tool with “angle equality check” approach
3.1.7. Various theorems
Theorem 19 has already been discussed in Example 26. Theorem 20 has two parts:
concurrency can be checked by using the approach as in Theorems 14 and 17. In
this case GeoGebra will return “always true”. By using the “point equality check” as
for Theorem 18 we obtain the sufficient condition “triangle ABC is non-degenerate”.
The same result can be obtained if we use a similar approach like the “angle equality
check” as for Theorem 18.
To prove that the centroid divides each of the medians in the ratio 2:1(which is
the second part of Theorem 20) we more several options:
1. We may have a similar approach like in Theorem 4, but this will work only as
a numerical test at the moment because of similar reasons.
2. We can think of constructing the midpoint Hof the segment AG where Gis
the centroid of triangle ABC (Fig. 3.18). Now clearly AH =DG is equivalent
of the statement to prove (here Dis the midpoint of BC). GeoGebra will
also find a sufficient condition, namely the non-degeneracy of triangle ABC
(Fig. 3.19).
Figure 3.18. – Preparing Theorem 20, second part
216
3.1 The Relation Tool
Figure 3.19. – Report of the Relation Tool for Theorem 20, second part
Theorems 19 and 20 can be properly and quickly processed by using the web version
of GeoGebra.
Finally, Theorem 21 requires an algebraic expression (the average of two lengths)
and therefore we are in the same situation like in Theorem 4.
3.1.8. Conclusion
We investigated 21 basic theorems in elementary geometry by utilizing the Relation
Tool in GeoGebra 5. 6 of the theorems could not be verified by the Relation Tool
because of the subject (inequality, combinatorics). Otherwise all other theorems
could be checked at least numerically. 10 theorems could be proven by GeoGebra
symbolically, 9 of them were properly formulated by providing a sufficient condition
as well if needed.
7 theorems could also be checked by using the web version of GeoGebra. A summary
of these 7 theorems is listed in a publicly available GeoGebraBook at http://tube.
geogebra.org/student/b251433 (Fig. 3.20).
217
Chapter 3 Application and examples
Figure 3.20. – A GeoGebraBook summarizing 7 theorems
which can be visualized in the web version by using the Relation Tool
3.2. Other applications, future work
ATP/ADG facility in DGS has already been mentioned in Kortenkamp (1999) to
automatically check theorems to clean data structures of Cinderella. This means
that if a new object is constructed which is theoretically the same as a formerly
defined object, then the new object will not be added to the list of objects, but
the first object will be used. From the educational point of view this is, however,
not always recommendable. Sometimes the teacher wants to emphasize that two
objects are maybe the same, maybe not, and waits for the students’ interaction for
the answer to be uncovered.9
Kortenkamp (among others, e. g. Isotani and Brandão (2008)) also mentions another
application of ATP, namely checking students’ answer on open-ended exercises. Re-
use of a yes/no answer may be useful for computer aided assessment (CAA) systems.
That is, a proving subsystem of a CAA could enable a quick evaluation whether the
student created a solution that is different from the one provided by the teacher,
but is still mathematically equivalent to it. At the moment there are on-going
developments of the GeoGebra software tool exactly into this direction, lead by
Christoph Stadlbauer in Linz, Austria, in the frame of his master thesis, advised by
Markus Hohenwarter.
The CAA/ATP concept can be explained by an example. The teacher asks the
student to create a right triangle by using GeoGebra. When the teacher designs
9Parts of this section are partially published in Botana et al. (2015).
218
3.2 Other applications, future work
this question, she could be thinking of one correct construction, where the third
vertex is the output and it depends on the first two vertices as inputs, by using
Euclidean steps only (i. e., only a compass and a ruler). During the test time the
teacher’s construction steps will be hidden for the student, but the built-in ATP
system will check if the output vertex of the student coincides with the one of the
teacher’s template—even if the student intermediate steps are different form those
of the teacher. Here GeoGebra could give a “sure” yes/no answer, and the computer
would be able to decide whether the student has solved the problem correctly or
not. Of course, in a number cases the symbolical method will simply fail because
of unsupported statements. In such cases some numerical checks can be used for
fallback.
We can also think of open ended tests where finding the intermediate steps can also
be crucial. For example, given a circle cwith its center Oand an external point
P, the student’s task is to construct a tangent line tfrom Pto c. The teacher
knows that the basic idea for the usual solution is to create the midpoint Mof OP .
It helps drawing a second circle dwith center Maligning on both Oand P, and
now the intersection points of cand dwill define the tangent points (because of
Thales’ circle theorem). Here finding the importance of Mis already an intellectual
challenge and thus the teacher may highlight “important intermediate points” in
his/her template, not only the possible final results t1and t2. In case the student
finds Mby constructing it somehow GeoGebra could encourage the student by
telling he/she is working in the good direction.
After some further enhancements on GeoGebra we could think of it to be an expert
system in Euclidean geometry: the ATP features could be used in the background,
in some sense “in advance” before the user interactions. For example, when a con-
struction is given, GeoGebra could also automatically identify certain “interesting”
properties on the construction. For instance, when the circumcenter, the centroid
and the orthocenter of a triangle have already been constructed, GeoGebra could
“know” that these points are collinear and provide this information to the user when
asked. Such an “auto-relation” feature could extend the already existing Relation
Tool.
Another direction for further improvements is to give a counterexample when the
checked statement is not always true.10
We have not yet mentioned the obvious direction of enhancements for 3 dimensional
constructions. The 3D modeling support in GeoGebra 5 is already in mature state,
thus a natural improvement of the theorem prover subsystem is to allow computing
proofs for 3D constructions. Unfortunately, the computational demand to prove
3D theorems seems to be challenging due to the increased number of variables in
the algebraic approach (which is, roughly 50% more than for the 2D case), but
anyway: such improvements in the source code would be quite straightforward.
10For Recio’s method this could be achieved immediately by post-processing its internal compu-
tations.
219
Chapter 3 Application and examples
For some basic tests and discussions concerning 3D geometry provers we refer to
Roanes-Macías and Roanes-Lozano (2007).
Ultimately, we discuss the question of expecting a dramatical change of the idea
of mathematical reasoning from the teacher’s perspective as well in the long term.
Proof is traditionally considered as a human act which requires intellectual work.
But to utilize a computer to obtain the conclusion is actually something purely
mechanical. This may change the teacher’s role fundamentally, raising him/her to
a higher level in the education process—at least this could be expected as a major
change when ATP/ADG facility in DGS will be widely used in schools.
But let us close our optimistic expectations by pointing on the chance of failure by
facing Euclid’s answer (Proclus (1992)) to King Ptolemy I when he asked if there is
a shorter path to learning geometry than reading Elements:
“No. There is no royal road.
220
4. Summary
The aim of this dissertation was to identify effective methods on extending teaching
of conjectures and proofs of Euclidean geometry theorems in secondary schools by
utilizing computers, and to develop corresponding technology and software tools by
enhancing existing dynamic geometry systems. Based upon analysis of the possible
aims of mathematics teaching and an overview of the existing software tools and the
theory,
a general report in Chapter 1 highlighted areas where computers can indeed
help in the teaching process, and areas of typical dangers of abuse of computers
are also presented.
An enhancement of the dynamic mathematics software GeoGebra was intro-
duced in Chapter 2 to give more support for teachers and students concerning
proofs.
As a part of Chapter 2, an analysis of the Gröbner basis method in theorem
proving for the Euclidean geometry was introduced in Sec. 2.3 in an effort
to help non-expert readers to learn the basics of the applied mathematical
algorithms.
In Chapter 3 some typical classroom situations were shown by utilizing Geo-
Gebra to support teaching of certain topics in Euclidean geometry.
The results in this dissertation can be considered as a prototype, but they are
elaborated enough to be integrated in classroom use already and also for developing
it further to provide a wider range of use for teaching of proofs.
Objectives of the thesis
In Chapter 1 literature about technology integration into mathematics classrooms
for teaching of proofs was reviewed, and existing dynamic geometry and automated
theorem proving software packages were investigated. The objective of this thesis
was to answer the following research questions:
1. Can computers give essential help in learning elementary geometry proofs?
What are the important properties of such a computer based educational tool?
2. How can we address typical difficulties in the software implementation of an
appropriate educational tool, in particular
221
Chapter 4 Summary
a) the design of the user interface and the interaction between the user and
the software,
b) the applied algorithms and the implementation issues?
3. What type of computer aided exercises can be applied in classroom use in
teaching of elementary geometry proofs at secondary level?
Here the summarized answers are listed:
1. Certain activities like experimenting,controlled discovery,verifications and
collecting relationships are well supported by some computer software tools.
Other activities like creating a per theory framework,obtaining readable proofs
and confirmation are partially supported. Uncontrolled discovery is not yet
supported.
Important properties of such computer based educational tools are effective
algorithms and simple, straightforward user interface. Extensibility and long
availability of such tools may require an open development model. (See page
86.)
2. Typical difficulties in the software implementation of an appropriate educa-
tional tool may include
a) major improvement of an existing user interface by keeping it intuitive,
simple and straightforward (see page 108),
b) speed issues (see page 189) and obtaining useful extra output to describe
degeneracy conditions (see page 183).
3. In Chapter 3 the Relation Tool in GeoGebra 5 was introduced. The ATP ex-
tension of the Relation Tool was implemented as supplementary work for this
PhD thesis. The Relation Tool in GeoGebra 5 can help finding and formulizing
conjectures. A textbook written for teaching introductory elementary geome-
try was selected with a number of examples and the utilization of the Relation
Tool was demonstrated.
The final examples of this dissertation have also been uploaded to GeoGe-
braTube as a GeoGebraBook (see page 218).
222
Acknowledgments
GeoGebra, started by Markus Hohenwarter in 2001, has become a community driven
project during the last few years. There are many contributors who directly or
indirectly helped in developing the prover subsystem both inside the GeoGebra
Team and in its wide community.
Special thanks to Markus who invited me to Linz and helped in uncountable many
situations, both as an advisor and a friend. Also to my advisor in algebraic geometry,
Tomás Recio, who helped me extremely lot in understanding the details of ideal
theory, and was a perfect scientific father. I was really impressed by the work of
Francisco Botana and his Spanish colleagues, Miguel Á. Abánades,Jose Valcárce and
Sergio Arbeo. Their contribution to theorem proving and related areas (including
computation of locus equations by GeoGebra) helped me much.
Inside the GeoGebra Team I learned a lot from the joint work with Simon Weitzhofer
and Zbyněk Konečný. I am especially thankful to Mike Borcherds for his continuous
help in the programming details of GeoGebra internals, and to Bernard Parisse
for his constant work on improving Giac. Philipp Birklbauer helped me to check
the randomness of the “good” permutations in Appendix C, Sec. C.3.6.1. Also
encouragement from Zsolt Lavicza, Stephen Jull and Stefan Lizelfelner was very
helpful.
Detailed conversations with Róbert Vajda helped me to understand the complexity
of the Gröbner basis computations. I am thankful to Franz Winkler and Günter
Landsmann for their efforts in teaching the notion of Gröbner basis and the related
computer algebra algorithms. In addition, I would like to thank my colleagues at
RISC, Hagenberg, for their helpful attitude, especially to Bruno Buchberger,Peter
Paule,Carsten Schneider,Temur Kutsia,Wolfang Windsteiger and PhD student
Andrea Serafini; and JKU PhD students Barbara Kimeswenger and Edith Linden-
bauer.Julien Narboux also helped me in understanding the Coq system. I learned
important details about teaching of proofs from Pavel Pech,Roman Hašek,Irena
Štrausová,Andreas Lindner and Ralf Roupec. I thank Chris Sangwin and Csilla
Sólyom-Gecse for their comments on a preliminary version of the thesis.
Predrag Janičić and Ivan Petrović were really helpful when we designed the inter-
connections between OpenGeoProver and GeoGebra. Also Damien Desfontaines
helped much in adding several improvements for the prover. Here I need to thank
Pedro Quaresma’s kind help in supporting me in the participation for the ADG 2014
conference.
223
Acknowledgments
At last, but not least, I need to mention my Hungarian colleagues who encouraged me
during my PhD studies, especially Tibor Krisztin,József Kosztolányi,Géza Makay,
Zoltán Németh and János Karsai, and also my former geometry teachers, István
Vincze and Lajos Pósa. Discussions with my university colleagues in geometry
were also very helpful, namely with Lajos Szilassi,Gábor Gévay and Gábor Nagy.
Continuous support from Csaba Sárvári was helpful for me.
Finally I am grateful to my family, especially my wife Gerda for the continuous
support.
224
A. Readability of algebraic proofs
In Appendix A some additional details for the readability of algebraic proofs are
listed, namely the full output of Wu’s method (Chapter1, Sec.1.1.6.1) for Desargues’
theorem.
A.1. Desargues’ theorem with Wu’s method
OpenGeoProver requires recompilation of main/OGPConstants.java to support
showing all occurring polynomials in the derivation. One needs to change
MAX_OUTPUT_POLY_CHARS_NUM to a large enough value (the default is 2000, here
50000 will be enough). Then the file ogp_Chou_346.xml needs to be processed by
OpenGeoProver to produce the following output.
225
OpenGeoProver Output for conjecture “Chou 346
(Desargues’ Theorem)”
Wu’s method used
March 5, 2014
1 Validation of Construction Protocol
Construction steps:
Free point S
Free point A
Free point B
Free point C
Line SA through two points S and A
Line SB through two points S and B
Line SC through two points S and C
Random point A1 from line SA
Random point B1 from line SB
Random point C1 from line SC
Line BC through two points B and C
Line B1C1 through two points B1 and C1
Intersection point P of point sets BC and B1C1
Line CA through two points C and A
Line C1A1 through two points C1 and A1
Intersection point Q of point sets CA and C1A1
Line AB through two points A and B
Line A1B1 through two points A1 and B1
Intersection point R of point sets AB and A1B1
1
Theorem statement:
Points P, Q, R are collinear
Validation result: Construction protocol is valid.
2 Transformation of Construction Protocol to
algebraic form
Transformation of Construction steps
2.1 Transformation of point S:
Point S has been assigned following coordinates: (0, 0)
2.2 Transformation of point A:
Point A has been assigned following coordinates: (0, u1)
2.3 Transformation of point B:
Point B has been assigned following coordinates: (u2,u3)
2.4 Transformation of point C:
Point C has been assigned following coordinates: (u4,u5)
2.5 Transformation of point A1:
Point A1 has been assigned following coordinates: (u6,x1)
Polynomial that point A1 has to satisfy is:
p=x1
Processing of polynomial
p=x1
Info: Will try to rename X coordinate of point A1
Info: X coordinate of point A1 renamed by zero
Point A1 has been renamed. Point A1 has been assigned following coor-
dinates: (0, u6)
2
2.6 Transformation of point B1:
Point B1 has been assigned following coordinates: (u7,x1)
Polynomial that point B1 has to satisfy is:
p=u2x1u7u3
Processing of polynomial
p=u2x1u7u3
Info: Polynomial
p=u2x1u7u3
added to system of polynomials that represents the constructions
New polynomial added to system of hypotheses
2.7 Transformation of point C1:
Point C1 has been assigned following coordinates: (u8,x2)
Polynomial that point C1 has to satisfy is:
p=u4x2u8u5
Processing of polynomial
p=u4x2u8u5
Info: Polynomial
p=u4x2u8u5
added to system of polynomials that represents the constructions
New polynomial added to system of hypotheses
2.8 Transformation of point P:
Point P has been assigned following coordinates: (x3,x4)
Polynomial that point P has to satisfy is:
p= (u4u2)x4+ (u5+u3)x3+ (u5u2u4u3)
Processing of polynomial
p= (u4u2)x4+ (u5+u3)x3+ (u5u2u4u3)
Info: Polynomial
p= (u4u2)x4+ (u5+u3)x3+ (u5u2u4u3)
added to system of polynomials that represents the constructions
3
New polynomial added to system of hypotheses
Polynomial that point P has to satisfy is:
p= (u8u7)x4x3x2+x3x1+u7x2u8x1
Processing of polynomial
p= (u8u7)x4x3x2+x3x1+u7x2u8x1
Info: Polynomial
p= (u8u7)x4x3x2+x3x1+u7x2u8x1
added to system of polynomials that represents the constructions
New polynomial added to system of hypotheses
2.9 Transformation of point Q:
Point Q has been assigned following coordinates: (x5,x6)
Polynomial that point Q has to satisfy is:
p=u4x6+ (u5+u1)x5u4u1
Processing of polynomial
p=u4x6+ (u5+u1)x5u4u1
Info: Polynomial
p=u4x6+ (u5+u1)x5u4u1
added to system of polynomials that represents the constructions
New polynomial added to system of hypotheses
Polynomial that point Q has to satisfy is:
p=u8x6x5x2+u6x5u8u6
Processing of polynomial
p=u8x6x5x2+u6x5u8u6
Info: Polynomial
p=u8x6x5x2+u6x5u8u6
added to system of polynomials that represents the constructions
New polynomial added to system of hypotheses
4
2.10 Transformation of point R:
Point R has been assigned following coordinates: (x7,x8)
Polynomial that point R has to satisfy is:
p=u2x8+ (u3+u1)x7u2u1
Processing of polynomial
p=u2x8+ (u3+u1)x7u2u1
Info: Polynomial
p=u2x8+ (u3+u1)x7u2u1
added to system of polynomials that represents the constructions
New polynomial added to system of hypotheses
Polynomial that point R has to satisfy is:
p=u7x8x7x1+u6x7u7u6
Processing of polynomial
p=u7x8x7x1+u6x7u7u6
Info: Polynomial
p=u7x8x7x1+u6x7u7u6
added to system of polynomials that represents the constructions
New polynomial added to system of hypotheses
Transformation of Theorem statement
Polynomial for theorem statement:
p=x8x5x8x3x7x6+x7x4+x6x3x5x4
Time spent for transformation of Construction Protocol to
algebraic form
0.059 seconds
3 Invoking the theorem prover
The used proving method is Wu’s method.
The input system is:
5
p1=u2x1u7u3
p2=u4x2u8u5
p3= (u4u2)x4+ (u5+u3)x3+ (u5u2u4u3)
p4= (u8u7)x4x3x2+x3x1+u7x2u8x1
p5=u4x6+ (u5+u1)x5u4u1
p6=u8x6x5x2+u6x5u8u6
p7=u2x8+ (u3+u1)x7u2u1
p8=u7x8x7x1+u6x7u7u6
3.1 Triangulation, step 1
Choosing variable: Trying the variable with index 8.
Variable x8selected: The number of polynomials with this variable, with
indexes from 1 to 8, is 2.
Minimal degrees: 2 polynomial(s) with degree 1.
Polynomial with linear degree: Removing variable x8from all other poly-
nomials by reducing them with polynomial p7from previous step.
Finished a triangulation step, the current system is:
p1=u2x1u7u3
p2=u4x2u8u5
p3= (u4u2)x4+ (u5+u3)x3+ (u5u2u4u3)
p4= (u8u7)x4x3x2+x3x1+u7x2u8x1
p5=u4x6+ (u5+u1)x5u4u1
p6=u8x6x5x2+u6x5u8u6
p7=u2x7x1+ (u7u3u7u1+u6u2)x7+ (u7u6u2+u7u2u1)
p8=u2x8+ (u3+u1)x7u2u1
3.2 Triangulation, step 2
Choosing variable: Trying the variable with index 7.
Variable x7selected: The number of polynomials with this variable, with
indexes from 1 to 7, is 1.
Single polynomial with chosen variable: Chosen polynomial is p7. No re-
duction needed.
The triangular system has not been changed.
6
3.3 Triangulation, step 3
Choosing variable: Trying the variable with index 6.
Variable x6selected: The number of polynomials with this variable, with
indexes from 1 to 6, is 2.
Minimal degrees: 2 polynomial(s) with degree 1.
Polynomial with linear degree: Removing variable x6from all other poly-
nomials by reducing them with polynomial p5from previous step.
Finished a triangulation step, the current system is:
p1=u2x1u7u3
p2=u4x2u8u5
p3= (u4u2)x4+ (u5+u3)x3+ (u5u2u4u3)
p4= (u8u7)x4x3x2+x3x1+u7x2u8x1
p5=u4x5x2+ (u8u5u8u1+u6u4)x5+ (u8u6u4+u8u4u1)
p6=u4x6+ (u5+u1)x5u4u1
p7=u2x7x1+ (u7u3u7u1+u6u2)x7+ (u7u6u2+u7u2u1)
p8=u2x8+ (u3+u1)x7u2u1
3.4 Triangulation, step 4
Choosing variable: Trying the variable with index 5.
Variable x5selected: The number of polynomials with this variable, with
indexes from 1 to 5, is 1.
Single polynomial with chosen variable: Chosen polynomial is p5. No re-
duction needed.
The triangular system has not been changed.
3.5 Triangulation, step 5
Choosing variable: Trying the variable with index 4.
Variable x4selected: The number of polynomials with this variable, with
indexes from 1 to 4, is 2.
Minimal degrees: 2 polynomial(s) with degree 1.
Polynomial with linear degree: Removing variable x4from all other poly-
nomials by reducing them with polynomial p3from previous step.
Finished a triangulation step, the current system is:
7
p1=u2x1u7u3
p2=u4x2u8u5
p3= (u4+u2)x3x2+ (u4u2)x3x1+
(u8u5u8u3u7u5+u7u3)x3+ (u7u4u7u2)x2+
(u8u4+u8u2)x1+
(u8u5u2+u8u4u3+u7u5u2u7u4u3)
p4= (u4u2)x4+ (u5+u3)x3+ (u5u2u4u3)
p5=u4x5x2+ (u8u5u8u1+u6u4)x5+ (u8u6u4+u8u4u1)
p6=u4x6+ (u5+u1)x5u4u1
p7=u2x7x1+ (u7u3u7u1+u6u2)x7+ (u7u6u2+u7u2u1)
p8=u2x8+ (u3+u1)x7u2u1
3.6 Triangulation, step 6
Choosing variable: Trying the variable with index 3.
Variable x3selected: The number of polynomials with this variable, with
indexes from 1 to 3, is 1.
Single polynomial with chosen variable: Chosen polynomial is p3. No re-
duction needed.
The triangular system has not been changed.
3.7 Triangulation, step 7
Choosing variable: Trying the variable with index 2.
Variable x2selected: The number of polynomials with this variable, with
indexes from 1 to 2, is 1.
Single polynomial with chosen variable: Chosen polynomial is p2. No re-
duction needed.
The triangular system has not been changed.
3.8 Triangulation, step 8
Choosing variable: Trying the variable with index 1.
Variable x1selected: The number of polynomials with this variable, with
indexes from 1 to 1, is 1.
Single polynomial with chosen variable: Chosen polynomial is p1. No re-
duction needed.
The triangular system has not been changed.
8
The triangular system is:
p1=u2x1u7u3
p2=u4x2u8u5
p3= (u4+u2)x3x2+ (u4u2)x3x1+
(u8u5u8u3u7u5+u7u3)x3+ (u7u4u7u2)x2+
(u8u4+u8u2)x1+
(u8u5u2+u8u4u3+u7u5u2u7u4u3)
p4= (u4u2)x4+ (u5+u3)x3+ (u5u2u4u3)
p5=u4x5x2+ (u8u5u8u1+u6u4)x5+ (u8u6u4+u8u4u1)
p6=u4x6+ (u5+u1)x5u4u1
p7=u2x7x1+ (u7u3u7u1+u6u2)x7+ (u7u6u2+u7u2u1)
p8=u2x8+ (u3+u1)x7u2u1
4 Final Remainder
4.1 Final remainder for conjecture Chou 346 (Desargues’
Theorem)
Calculating final remainder of the conclusion:
g=x8x5x8x3x7x6+x7x4+x6x3x5x4
with respect to the triangular system.
1. Pseudo remainder with p8over variable x8:
g=u2x7x6+ (u3u1)x7x5+u2x7x4+ (u3+u1)x7x3+
u2x6x3u2x5x4+u2u1x5u2u1x3
2. Pseudo remainder with p7over variable x7:
g=u2
2x6x3x1+ (u7u3u2u7u2u1+u6u2
2)x6x3+
(u7u6u2
2+u7u2
2u1)x6+u2
2x5x4x1+
(u7u3u2+u7u2u1u6u2
2)x5x4u2
2u1x5x1+
(u7u6u3u2u7u6u2u1+u6u2
2u1)x5+
(u7u6u2
2u7u2
2u1)x4+u2
2u1x3x1+
(u7u6u3u2+u7u6u2u1u6u2
2u1)x3
3. Pseudo remainder with p6over variable x6:
9
g=u4u2
2x5x4x1+
(u7u4u3u2+u7u4u2u1u6u4u2
2)x5x4+
(u5u2
2+u2
2u1)x5x3x1+
(u7u5u3u2u7u5u2u1u7u3u2u1+u7u2u2
1+
u6u5u2
2u6u2
2u1)
x5x3
u4u2
2u1x5x1+
(u7u6u5u2
2+u7u6u4u3u2u7u6u4u2u1+
u7u6u2
2u1+u7u5u2
2u1u7u2
2u2
1+
u6u4u2
2u1)
x5
+(u7u6u4u2
2u7u4u2
2u1)x4+
(u7u6u4u3u2+u7u6u4u2u1+u7u4u3u2u1
u7u4u2u2
1)
x3
+(u7u6u4u2
2u1+u7u4u2
2u2
1)
4. Pseudo remainder with p5over variable x5:
g= (u7u6u2
4u2
2+u7u2
4u2
2u1)x4x2+
(u8u6u2
4u2
2u8u2
4u2
2u1)x4x1+
(u8u7u6u5u4u2
2u8u7u6u2
4u3u2+
u8u7u6u2
4u2u1u8u7u6u4u2
2u1
u8u7u5u4u2
2u1+u8u7u2
4u3u2u1
u8u7u2
4u2u2
1+u8u7u4u2
2u2
1
u8u2
6u2
4u2
2+u8u6u2
4u2
2u1+
u7u2
6u2
4u2
2u7u6u2
4u2
2u1)
x4
+
(u7u6u2
4u3u2u7u6u2
4u2u1u7u2
4u3u2u1+
u7u2
4u2u2
1)
x3x2
+
(u8u6u5u4u2
2+u8u6u4u2
2u1+u8u5u4u2
2u1
u8u4u2
2u2
1)
x3x1
+
(u8u2
6u5u4u2
2u8u2
6u4u2
2u1
u8u6u5u4u2
2u1+u8u6u4u2
2u2
1
10
u7u2
6u2
4u3u2+u7u2
6u2
4u2u1+
u7u6u2
4u3u2u1u7u6u2
4u2u2
1)
x3
+(u7u6u2
4u2
2u1u7u2
4u2
2u2
1)x2+
(u8u6u2
4u2
2u1+u8u2
4u2
2u2
1)x1+
(u8u7u2
6u5u4u2
2+u8u7u2
6u2
4u3u2
u8u7u2
6u2
4u2u1+u8u7u2
6u4u2
2u1+
u8u7u6u5u4u2
2u1u8u7u6u2
4u3u2u1+
u8u7u6u2
4u2u2
1u8u7u6u4u2
2u2
1+
u8u2
6u2
4u2
2u1u8u6u2
4u2
2u2
1
u7u2
6u2
4u2
2u1+u7u6u2
4u2
2u2
1)
5. Pseudo remainder with p4over variable x4:
g= (u7u6u5u2
4u2
2+u7u6u3
4u3u2
u7u6u3
4u2u1+u7u6u2
4u2
2u1+
u7u5u2
4u2
2u1u7u3
4u3u2u1+
u7u3
4u2u2
1u7u2
4u2
2u2
1)
x3x2
+
(u8u6u5u4u3
2u8u6u2
4u3u2
2+
u8u6u2
4u2
2u1u8u6u4u3
2u1
u8u5u4u3
2u1+u8u2
4u3u2
2u1
u8u2
4u2
2u2
1+u8u4u3
2u2
1)
x3x1
+
(u8u7u6u2
5u4u2
2u8u7u6u5u2
4u3u2+
u8u7u6u5u2
4u2u1u8u7u6u5u4u3u2
2
u8u7u6u5u4u2
2u1+u8u7u6u2
4u2
3u2
u8u7u6u2
4u3u2u1+u8u7u6u4u3u2
2u1
u8u7u2
5u4u2
2u1+u8u7u5u2
4u3u2u1
u8u7u5u2
4u2u2
1+u8u7u5u4u3u2
2u1+
u8u7u5u4u2
2u2
1u8u7u2
4u2
3u2u1+
u8u7u2
4u3u2u2
1u8u7u4u3u2
2u2
1
u8u2
6u5u4u3
2+u8u2
6u2
4u3u2
2
u8u2
6u2
4u2
2u1+u8u2
6u4u3
2u1+
u8u6u5u4u3
2u1u8u6u2
4u3u2
2u1+
u8u6u2
4u2
2u2
1u8u6u4u3
2u2
1+
u7u2
6u5u2
4u2
2u7u2
6u3
4u3u2+
11
u7u2
6u3
4u2u1u7u2
6u2
4u2
2u1
u7u6u5u2
4u2
2u1+u7u6u3
4u3u2u1
u7u6u3
4u2u2
1+u7u6u2
4u2
2u2
1)
x3
+
(u7u6u5u2
4u3
2u7u6u3
4u3u2
2+
u7u6u3
4u2
2u1u7u6u2
4u3
2u1
u7u5u2
4u3
2u1+u7u3
4u3u2
2u1
u7u3
4u2
2u2
1+u7u2
4u3
2u2
1)
x2
+
(u8u6u5u2
4u3
2+u8u6u3
4u3u2
2
u8u6u3
4u2
2u1+u8u6u2
4u3
2u1+
u8u5u2
4u3
2u1u8u3
4u3u2
2u1+
u8u3
4u2
2u2
1u8u2
4u3
2u2
1)
x1
+
(u8u7u2
6u5u2
4u2
2+u8u7u2
6u5u4u3
2+
u8u7u2
6u3
4u3u2u8u7u2
6u3
4u2u1
u8u7u2
6u2
4u3u2
2+ 2u8u7u2
6u2
4u2
2u1
u8u7u2
6u4u3
2u1u8u7u6u2
5u4u3
2+
2u8u7u6u5u2
4u3u2
2u8u7u6u3
4u2
3u2+
u8u7u6u3
4u2u2
12u8u7u6u2
4u2
2u2
1+
u8u7u6u4u3
2u2
1+u8u7u2
5u4u3
2u1
2u8u7u5u2
4u3u2
2u1+u8u7u5u2
4u2
2u2
1
u8u7u5u4u3
2u2
1+u8u7u3
4u2
3u2u1
u8u7u3
4u3u2u2
1+u8u7u2
4u3u2
2u2
1+
u8u2
6u5u2
4u3
2u8u2
6u3
4u3u2
2+
u8u2
6u3
4u2
2u1u8u2
6u2
4u3
2u1
u8u6u5u2
4u3
2u1+u8u6u3
4u3u2
2u1
u8u6u3
4u2
2u2
1+u8u6u2
4u3
2u2
1
u7u2
6u5u2
4u3
2+u7u2
6u3
4u3u2
2
u7u2
6u3
4u2
2u1+u7u2
6u2
4u3
2u1+
u7u6u5u2
4u3
2u1u7u6u3
4u3u2
2u1+
u7u6u3
4u2
2u2
1u7u6u2
4u3
2u2
1)
6. Pseudo remainder with p3over variable x3:
g= (u2
7u6u5u3
4u2
2u2
7u6u5u2
4u3
2
12
u2
7u6u4
4u3u2+u2
7u6u4
4u2u1+
u2
7u6u3
4u3u2
22u2
7u6u3
4u2
2u1+
u2
7u6u2
4u3
2u1u2
7u5u3
4u2
2u1+
u2
7u5u2
4u3
2u1+u2
7u4
4u3u2u1
u2
7u4
4u2u2
1u2
7u3
4u3u2
2u1+
2u2
7u3
4u2
2u2
1u2
7u2
4u3
2u2
1
u7u6u5u3
4u3
2+u7u6u5u2
4u4
2+
u7u6u4
4u3u2
2u7u6u4
4u2
2u1
u7u6u3
4u3u3
2+ 2u7u6u3
4u3
2u1
u7u6u2
4u4
2u1+u7u5u3
4u3
2u1
u7u5u2
4u4
2u1u7u4
4u3u2
2u1+
u7u4
4u2
2u2
1+u7u3
4u3u3
2u1
2u7u3
4u3
2u2
1+u7u2
4u4
2u2
1)
x2
2
+
(u8u7u6u5u3
4u2
2+u8u7u6u5u4u4
2+
u8u7u6u4
4u3u2u8u7u6u4
4u2u1+
u8u7u6u3
4u2
2u1u8u7u6u2
4u3u3
2+
u8u7u6u2
4u3
2u1u8u7u6u4u4
2u1+
u8u7u5u3
4u2
2u1u8u7u5u4u4
2u1
u8u7u4
4u3u2u1+u8u7u4
4u2u2
1
u8u7u3
4u2
2u2
1+u8u7u2
4u3u3
2u1
u8u7u2
4u3
2u2
1+u8u7u4u4
2u2
1+
u8u6u5u3
4u3
2u8u6u5u2
4u4
2
u8u6u4
4u3u2
2+u8u6u4
4u2
2u1+
u8u6u3
4u3u3
22u8u6u3
4u3
2u1+
u8u6u2
4u4
2u1u8u5u3
4u3
2u1+
u8u5u2
4u4
2u1+u8u4
4u3u2
2u1
u8u4
4u2
2u2
1u8u3
4u3u3
2u1+
2u8u3
4u3
2u2
1u8u2
4u4
2u2
1+
u7u6u5u3
4u3
2u7u6u5u2
4u4
2
u7u6u4
4u3u2
2+u7u6u4
4u2
2u1+
u7u6u3
4u3u3
22u7u6u3
4u3
2u1+
u7u6u2
4u4
2u1u7u5u3
4u3
2u1+
u7u5u2
4u4
2u1+u7u4
4u3u2
2u1
u7u4
4u2
2u2
1u7u3
4u3u3
2u1+
2u7u3
4u3
2u2
1u7u2
4u4
2u2
1)
x2x1
+
(u8u2
7u6u2
5u2
4u2
2+u8u2
7u6u2
5u4u3
2+
13
u8u2
7u6u5u3
4u3u2u8u2
7u6u5u3
4u2u1+
2u8u2
7u6u5u2
4u2
2u1
u8u2
7u6u5u4u3u3
2u8u2
7u6u5u4u3
2u1
u8u2
7u6u3
4u2
3u2+u8u2
7u6u3
4u3u2u1+
u8u2
7u6u2
4u2
3u2
2
2u8u2
7u6u2
4u3u2
2u1+
u8u2
7u6u4u3u3
2u1+u8u2
7u2
5u2
4u2
2u1
u8u2
7u2
5u4u3
2u1u8u2
7u5u3
4u3u2u1+
u8u2
7u5u3
4u2u2
12u8u2
7u5u2
4u2
2u2
1+
u8u2
7u5u4u3u3
2u1+u8u2
7u5u4u3
2u2
1+
u8u2
7u3
4u2
3u2u1u8u2
7u3
4u3u2u2
1
u8u2
7u2
4u2
3u2
2u1+
2u8u2
7u2
4u3u2
2u2
1u8u2
7u4u3u3
2u2
1+
u8u7u2
6u5u3
4u2
2u8u7u2
6u5u2
4u3
2
u8u7u2
6u4
4u3u2+u8u7u2
6u4
4u2u1+
u8u7u2
6u3
4u3u2
22u8u7u2
6u3
4u2
2u1+
u8u7u2
6u2
4u3
2u1+u8u7u6u2
5u2
4u3
2
u8u7u6u2
5u4u4
2u8u7u6u5u3
4u3u2
2+
u8u7u6u5u2
4u3u3
2u8u7u6u5u2
4u3
2u1+
u8u7u6u5u4u4
2u1+u8u7u6u4
4u3u2u1
u8u7u6u4
4u2u2
1u8u7u6u3
4u3u2
2u1+
2u8u7u6u3
4u2
2u2
1u8u7u6u2
4u3
2u2
1
u8u7u2
5u2
4u3
2u1+u8u7u2
5u4u4
2u1+
u8u7u5u3
4u3u2
2u1u8u7u5u3
4u2
2u2
1
u8u7u5u2
4u3u3
2u1+ 2u8u7u5u2
4u3
2u2
1
u8u7u5u4u4
2u2
1u8u2
6u5u3
4u3
2+
u8u2
6u5u2
4u4
2+u8u2
6u4
4u3u2
2
u8u2
6u4
4u2
2u1u8u2
6u3
4u3u3
2+
2u8u2
6u3
4u3
2u1u8u2
6u2
4u4
2u1+
u8u6u5u3
4u3
2u1u8u6u5u2
4u4
2u1
u8u6u4
4u3u2
2u1+u8u6u4
4u2
2u2
1+
u8u6u3
4u3u3
2u12u8u6u3
4u3
2u2
1+
u8u6u2
4u4
2u2
1u2
7u2
6u5u3
4u2
2+
u2
7u2
6u5u2
4u3
2+u2
7u2
6u4
4u3u2
u2
7u2
6u4
4u2u1u2
7u2
6u3
4u3u2
2+
2u2
7u2
6u3
4u2
2u1u2
7u2
6u2
4u3
2u1
u2
7u6u5u3
4u3u2
2+u2
7u6u5u3
4u2
2u1+
u2
7u6u5u2
4u3u3
2u2
7u6u5u2
4u3
2u1+
u2
7u6u4
4u2
3u22u2
7u6u4
4u3u2u1+
u2
7u6u4
4u2u2
1u2
7u6u3
4u2
3u2
2+
14
3u2
7u6u3
4u3u2
2u12u2
7u6u3
4u2
2u2
1
u2
7u6u2
4u3u3
2u1+u2
7u6u2
4u3
2u2
1+
u2
7u5u3
4u3u2
2u1u2
7u5u2
4u3u3
2u1
u2
7u4
4u2
3u2u1+u2
7u4
4u3u2u2
1+
u2
7u3
4u2
3u2
2u12u2
7u3
4u3u2
2u2
1+
u2
7u2
4u3u3
2u2
1+u7u2
6u5u3
4u3
2
u7u2
6u5u2
4u4
2u7u2
6u4
4u3u2
2+
u7u2
6u4
4u2
2u1+u7u2
6u3
4u3u3
2
2u7u2
6u3
4u3
2u1+u7u2
6u2
4u4
2u1
u7u6u5u3
4u3
2u1+u7u6u5u2
4u4
2u1+
u7u6u4
4u3u2
2u1u7u6u4
4u2
2u2
1
u7u6u3
4u3u3
2u1+ 2u7u6u3
4u3
2u2
1
u7u6u2
4u4
2u2
1)
x2
+
(u2
8u6u5u2
4u3
2u2
8u6u5u4u4
2
u2
8u6u3
4u3u2
2+u2
8u6u3
4u2
2u1+
u2
8u6u2
4u3u3
22u2
8u6u2
4u3
2u1+
u2
8u6u4u4
2u1u2
8u5u2
4u3
2u1+
u2
8u5u4u4
2u1+u2
8u3
4u3u2
2u1
u2
8u3
4u2
2u2
1u2
8u2
4u3u3
2u1+
2u2
8u2
4u3
2u2
1u2
8u4u4
2u2
1
u8u6u5u3
4u3
2+u8u6u5u2
4u4
2+
u8u6u4
4u3u2
2u8u6u4
4u2
2u1
u8u6u3
4u3u3
2+ 2u8u6u3
4u3
2u1
u8u6u2
4u4
2u1+u8u5u3
4u3
2u1
u8u5u2
4u4
2u1u8u4
4u3u2
2u1+
u8u4
4u2
2u2
1+u8u3
4u3u3
2u1
2u8u3
4u3
2u2
1+u8u2
4u4
2u2
1)
x2
1
+
(u2
8u7u6u2
5u2
4u2
2u2
8u7u6u2
5u4u3
2
u2
8u7u6u5u3
4u3u2+u2
8u7u6u5u3
4u2u1
2u2
8u7u6u5u2
4u2
2u1+
u2
8u7u6u5u4u3u3
2+u2
8u7u6u5u4u3
2u1+
u2
8u7u6u3
4u2
3u2u2
8u7u6u3
4u3u2u1
u2
8u7u6u2
4u2
3u2
2+
2u2
8u7u6u2
4u3u2
2u1
u2
8u7u6u4u3u3
2u1
u2
8u7u2
5u2
4u2
2u1+u2
8u7u2
5u4u3
2u1+
15
u2
8u7u5u3
4u3u2u1u2
8u7u5u3
4u2u2
1+
2u2
8u7u5u2
4u2
2u2
1
u2
8u7u5u4u3u3
2u1u2
8u7u5u4u3
2u2
1
u2
8u7u3
4u2
3u2u1+u2
8u7u3
4u3u2u2
1+
u2
8u7u2
4u2
3u2
2u1
2u2
8u7u2
4u3u2
2u2
1+u2
8u7u4u3u3
2u2
1
u2
8u2
6u5u2
4u3
2+u2
8u2
6u5u4u4
2+
u2
8u2
6u3
4u3u2
2u2
8u2
6u3
4u2
2u1
u2
8u2
6u2
4u3u3
2+ 2u2
8u2
6u2
4u3
2u1
u2
8u2
6u4u4
2u1u2
8u6u2
5u2
4u3
2+
u2
8u6u2
5u4u4
2+u2
8u6u5u3
4u3u2
2
u2
8u6u5u3
4u2
2u1u2
8u6u5u2
4u3u3
2+
3u2
8u6u5u2
4u3
2u12u2
8u6u5u4u4
2u1
u2
8u6u3
4u3u2
2u1+u2
8u6u3
4u2
2u2
1+
u2
8u6u2
4u3u3
2u12u2
8u6u2
4u3
2u2
1+
u2
8u6u4u4
2u2
1+u2
8u2
5u2
4u3
2u1
u2
8u2
5u4u4
2u1u2
8u5u3
4u3u2
2u1+
u2
8u5u3
4u2
2u2
1+u2
8u5u2
4u3u3
2u1
2u2
8u5u2
4u3
2u2
1+u2
8u5u4u4
2u2
1+
u8u7u2
6u5u2
4u3
2u8u7u2
6u5u4u4
2
u8u7u2
6u3
4u3u2
2+u8u7u2
6u3
4u2
2u1+
u8u7u2
6u2
4u3u3
22u8u7u2
6u2
4u3
2u1+
u8u7u2
6u4u4
2u1+u8u7u6u5u3
4u3u2
2
u8u7u6u5u2
4u3u3
2u8u7u6u5u2
4u3
2u1+
u8u7u6u5u4u4
2u1u8u7u6u4
4u2
3u2+
u8u7u6u4
4u3u2u1+u8u7u6u3
4u2
3u2
2
u8u7u6u3
4u3u2
2u1u8u7u6u3
4u2
2u2
1+
2u8u7u6u2
4u3
2u2
1u8u7u6u4u4
2u2
1
u8u7u5u3
4u3u2
2u1+u8u7u5u2
4u3u3
2u1+
u8u7u4
4u2
3u2u1u8u7u4
4u3u2u2
1
u8u7u3
4u2
3u2
2u1+ 2u8u7u3
4u3u2
2u2
1
u8u7u2
4u3u3
2u2
1+u8u2
6u5u3
4u3
2
u8u2
6u5u2
4u4
2u8u2
6u4
4u3u2
2+
u8u2
6u4
4u2
2u1+u8u2
6u3
4u3u3
2
2u8u2
6u3
4u3
2u1+u8u2
6u2
4u4
2u1
u8u6u5u3
4u3
2u1+u8u6u5u2
4u4
2u1+
u8u6u4
4u3u2
2u1u8u6u4
4u2
2u2
1
u8u6u3
4u3u3
2u1+ 2u8u6u3
4u3
2u2
1
u8u6u2
4u4
2u2
1u7u2
6u5u3
4u3
2+
u7u2
6u5u2
4u4
2+u7u2
6u4
4u3u2
2
16
u7u2
6u4
4u2
2u1u7u2
6u3
4u3u3
2+
2u7u2
6u3
4u3
2u1u7u2
6u2
4u4
2u1+
u7u6u5u3
4u3
2u1u7u6u5u2
4u4
2u1
u7u6u4
4u3u2
2u1+u7u6u4
4u2
2u2
1+
u7u6u3
4u3u3
2u12u7u6u3
4u3
2u2
1+
u7u6u2
4u4
2u2
1)
x1
+
(u2
8u7u2
6u2
5u2
4u2
2+
u2
8u7u2
6u2
5u4u3
2+
u2
8u7u2
6u5u3
4u3u2
u2
8u7u2
6u5u3
4u2u1+
2u2
8u7u2
6u5u2
4u2
2u1
u2
8u7u2
6u5u4u3u3
2
u2
8u7u2
6u5u4u3
2u1
u2
8u7u2
6u3
4u2
3u2+
u2
8u7u2
6u3
4u3u2u1+
u2
8u7u2
6u2
4u2
3u2
2
2u2
8u7u2
6u2
4u3u2
2u1+
u2
8u7u2
6u4u3u3
2u1+
u2
8u7u6u2
5u2
4u2
2u1
u2
8u7u6u2
5u4u3
2u1
u2
8u7u6u5u3
4u3u2u1+
u2
8u7u6u5u3
4u2u2
1
2u2
8u7u6u5u2
4u2
2u2
1+
u2
8u7u6u5u4u3u3
2u1+
u2
8u7u6u5u4u3
2u2
1+
u2
8u7u6u3
4u2
3u2u1
u2
8u7u6u3
4u3u2u2
1
u2
8u7u6u2
4u2
3u2
2u1+
2u2
8u7u6u2
4u3u2
2u2
1
u2
8u7u6u4u3u3
2u2
1+
u2
8u2
6u2
5u2
4u3
2u2
8u2
6u2
5u4u4
2
u2
8u2
6u5u3
4u3u2
2+
u2
8u2
6u5u3
4u2
2u1+
u2
8u2
6u5u2
4u3u3
2
2u2
8u2
6u5u2
4u3
2u1+u2
8u2
6u5u4u4
2u1
u2
8u6u2
5u2
4u3
2u1+u2
8u6u2
5u4u4
2u1+
u2
8u6u5u3
4u3u2
2u1
u2
8u6u5u3
4u2
2u2
1
17
u2
8u6u5u2
4u3u3
2u1+
2u2
8u6u5u2
4u3
2u2
1u2
8u6u5u4u4
2u2
1+
u8u2
7u2
6u2
5u2
4u2
2
u8u2
7u2
6u2
5u4u3
2
u8u2
7u2
6u5u3
4u3u2+
u8u2
7u2
6u5u3
4u2u1
2u8u2
7u2
6u5u2
4u2
2u1+
u8u2
7u2
6u5u4u3u3
2+
u8u2
7u2
6u5u4u3
2u1+
u8u2
7u2
6u3
4u2
3u2
u8u2
7u2
6u3
4u3u2u1
u8u2
7u2
6u2
4u2
3u2
2+
2u8u2
7u2
6u2
4u3u2
2u1
u8u2
7u2
6u4u3u3
2u1
u8u2
7u6u2
5u2
4u2
2u1+
u8u2
7u6u2
5u4u3
2u1+
u8u2
7u6u5u3
4u3u2u1
u8u2
7u6u5u3
4u2u2
1+
2u8u2
7u6u5u2
4u2
2u2
1
u8u2
7u6u5u4u3u3
2u1
u8u2
7u6u5u4u3
2u2
1
u8u2
7u6u3
4u2
3u2u1+
u8u2
7u6u3
4u3u2u2
1+
u8u2
7u6u2
4u2
3u2
2u1
2u8u2
7u6u2
4u3u2
2u2
1+
u8u2
7u6u4u3u3
2u2
1
u8u7u2
6u2
5u2
4u3
2+u8u7u2
6u2
5u4u4
2
u8u7u2
6u5u3
4u2
2u1+
2u8u7u2
6u5u2
4u3
2u1
u8u7u2
6u5u4u4
2u1+u8u7u2
6u4
4u2
3u2
u8u7u2
6u4
4u3u2u1
u8u7u2
6u3
4u2
3u2
2+
2u8u7u2
6u3
4u3u2
2u1
u8u7u2
6u2
4u3u3
2u1+
u8u7u6u2
5u2
4u3
2u1
u8u7u6u2
5u4u4
2u1+
u8u7u6u5u3
4u2
2u2
1
2u8u7u6u5u2
4u3
2u2
1+
u8u7u6u5u4u4
2u2
1u8u7u6u4
4u2
3u2u1+
u8u7u6u4
4u3u2u2
1+u8u7u6u3
4u2
3u2
2u1
18
2u8u7u6u3
4u3u2
2u2
1+
u8u7u6u2
4u3u3
2u2
1+
u2
7u2
6u5u3
4u3u2
2
u2
7u2
6u5u2
4u3u3
2u2
7u2
6u4
4u2
3u2+
u2
7u2
6u4
4u3u2u1+u2
7u2
6u3
4u2
3u2
2
2u2
7u2
6u3
4u3u2
2u1+
u2
7u2
6u2
4u3u3
2u1
u2
7u6u5u3
4u3u2
2u1+
u2
7u6u5u2
4u3u3
2u1+u2
7u6u4
4u2
3u2u1
u2
7u6u4
4u3u2u2
1u2
7u6u3
4u2
3u2
2u1+
2u2
7u6u3
4u3u2
2u2
1
u2
7u6u2
4u3u3
2u2
1)
7. Pseudo remainder with p2over variable x2:
g= (u2
8u6u5u4
4u3
2u2
8u6u5u3
4u4
2
u2
8u6u5
4u3u2
2+u2
8u6u5
4u2
2u1+
u2
8u6u4
4u3u3
22u2
8u6u4
4u3
2u1+
u2
8u6u3
4u4
2u1u2
8u5u4
4u3
2u1+
u2
8u5u3
4u4
2u1+u2
8u5
4u3u2
2u1
u2
8u5
4u2
2u2
1u2
8u4
4u3u3
2u1+
2u2
8u4
4u3
2u2
1u2
8u3
4u4
2u2
1
u8u6u5u5
4u3
2+u8u6u5u4
4u4
2+
u8u6u6
4u3u2
2u8u6u6
4u2
2u1
u8u6u5
4u3u3
2+ 2u8u6u5
4u3
2u1
u8u6u4
4u4
2u1+u8u5u5
4u3
2u1
u8u5u4
4u4
2u1u8u6
4u3u2
2u1+
u8u6
4u2
2u2
1+u8u5
4u3u3
2u1
2u8u5
4u3
2u2
1+u8u4
4u4
2u2
1)
x2
1
+
(u2
8u7u6u2
5u3
4u3
2+
u2
8u7u6u2
5u2
4u4
2
u2
8u7u6u5u4
4u2
2u1+
2u2
8u7u6u5u3
4u3
2u1
u2
8u7u6u5u2
4u4
2u1+u2
8u7u6u5
4u2
3u2
u2
8u7u6u5
4u3u2u1
u2
8u7u6u4
4u2
3u2
2+
2u2
8u7u6u4
4u3u2
2u1
19
u2
8u7u6u3
4u3u3
2u1+
u2
8u7u2
5u3
4u3
2u1
u2
8u7u2
5u2
4u4
2u1+
u2
8u7u5u4
4u2
2u2
1
2u2
8u7u5u3
4u3
2u2
1+
u2
8u7u5u2
4u4
2u2
1u2
8u7u5
4u2
3u2u1+
u2
8u7u5
4u3u2u2
1+u2
8u7u4
4u2
3u2
2u1
2u2
8u7u4
4u3u2
2u2
1+
u2
8u7u3
4u3u3
2u2
1u2
8u2
6u5u4
4u3
2+
u2
8u2
6u5u3
4u4
2+u2
8u2
6u5
4u3u2
2
u2
8u2
6u5
4u2
2u1u2
8u2
6u4
4u3u3
2+
2u2
8u2
6u4
4u3
2u1u2
8u2
6u3
4u4
2u1+
u2
8u6u5u4
4u3
2u1u2
8u6u5u3
4u4
2u1
u2
8u6u5
4u3u2
2u1+u2
8u6u5
4u2
2u2
1+
u2
8u6u4
4u3u3
2u12u2
8u6u4
4u3
2u2
1+
u2
8u6u3
4u4
2u2
1+u8u7u2
6u5u4
4u3
2
u8u7u2
6u5u3
4u4
2u8u7u2
6u5
4u3u2
2+
u8u7u2
6u5
4u2
2u1+u8u7u2
6u4
4u3u3
2
2u8u7u2
6u4
4u3
2u1+u8u7u2
6u3
4u4
2u1+
u8u7u6u2
5u4
4u3
2u8u7u6u2
5u3
4u4
2+
u8u7u6u5u5
4u2
2u13u8u7u6u5u4
4u3
2u1+
2u8u7u6u5u3
4u4
2u1u8u7u6u6
4u2
3u2+
u8u7u6u6
4u3u2u1+u8u7u6u5
4u2
3u2
2
u8u7u6u5
4u3u2
2u1u8u7u6u5
4u2
2u2
1+
2u8u7u6u4
4u3
2u2
1u8u7u6u3
4u4
2u2
1
u8u7u2
5u4
4u3
2u1+u8u7u2
5u3
4u4
2u1
u8u7u5u5
4u2
2u2
1+ 2u8u7u5u4
4u3
2u2
1
u8u7u5u3
4u4
2u2
1+u8u7u6
4u2
3u2u1
u8u7u6
4u3u2u2
1u8u7u5
4u2
3u2
2u1+
2u8u7u5
4u3u2
2u2
1u8u7u4
4u3u3
2u2
1+
u8u2
6u5u5
4u3
2u8u2
6u5u4
4u4
2
u8u2
6u6
4u3u2
2+u8u2
6u6
4u2
2u1+
u8u2
6u5
4u3u3
22u8u2
6u5
4u3
2u1+
u8u2
6u4
4u4
2u1u8u6u5u5
4u3
2u1+
u8u6u5u4
4u4
2u1+u8u6u6
4u3u2
2u1
u8u6u6
4u2
2u2
1u8u6u5
4u3u3
2u1+
2u8u6u5
4u3
2u2
1u8u6u4
4u4
2u2
1
u7u2
6u5u5
4u3
2+u7u2
6u5u4
4u4
2+
u7u2
6u6
4u3u2
2u7u2
6u6
4u2
2u1
u7u2
6u5
4u3u3
2+ 2u7u2
6u5
4u3
2u1
20
u7u2
6u4
4u4
2u1+u7u6u5u5
4u3
2u1
u7u6u5u4
4u4
2u1u7u6u6
4u3u2
2u1+
u7u6u6
4u2
2u2
1+u7u6u5
4u3u3
2u1
2u7u6u5
4u3
2u2
1+u7u6u4
4u4
2u2
1)
x1
+
(u2
8u2
7u6u2
5u3
4u3u2
2
u2
8u2
7u6u2
5u2
4u3u3
2
u2
8u2
7u6u5u4
4u2
3u2+
u2
8u2
7u6u5u4
4u3u2u1+
u2
8u2
7u6u5u3
4u2
3u2
2
2u2
8u2
7u6u5u3
4u3u2
2u1+
u2
8u2
7u6u5u2
4u3u3
2u1
u2
8u2
7u2
5u3
4u3u2
2u1+
u2
8u2
7u2
5u2
4u3u3
2u1+
u2
8u2
7u5u4
4u2
3u2u1
u2
8u2
7u5u4
4u3u2u2
1
u2
8u2
7u5u3
4u2
3u2
2u1+
2u2
8u2
7u5u3
4u3u2
2u2
1
u2
8u2
7u5u2
4u3u3
2u2
1+
u2
8u7u2
6u5u4
4u3u2
2
u2
8u7u2
6u5u3
4u3u3
2
u2
8u7u2
6u5
4u2
3u2+
u2
8u7u2
6u5
4u3u2u1+
u2
8u7u2
6u4
4u2
3u2
2
2u2
8u7u2
6u4
4u3u2
2u1+
u2
8u7u2
6u3
4u3u3
2u1
u2
8u7u6u5u4
4u3u2
2u1+
u2
8u7u6u5u3
4u3u3
2u1+
u2
8u7u6u5
4u2
3u2u1
u2
8u7u6u5
4u3u2u2
1
u2
8u7u6u4
4u2
3u2
2u1+
2u2
8u7u6u4
4u3u2
2u2
1
u2
8u7u6u3
4u3u3
2u2
1
u8u2
7u2
6u5u4
4u3u2
2+
u8u2
7u2
6u5u3
4u3u3
2+
u8u2
7u2
6u5
4u2
3u2
u8u2
7u2
6u5
4u3u2u1
u8u2
7u2
6u4
4u2
3u2
2+
2u8u2
7u2
6u4
4u3u2
2u1
21
u8u2
7u2
6u3
4u3u3
2u1
u8u2
7u6u2
5u4
4u3u2
2+
u8u2
7u6u2
5u3
4u3u3
2+
u8u2
7u6u5u5
4u2
3u2
u8u2
7u6u5u5
4u3u2u1
u8u2
7u6u5u4
4u2
3u2
2+
3u8u2
7u6u5u4
4u3u2
2u1
2u8u2
7u6u5u3
4u3u3
2u1
u8u2
7u6u5
4u2
3u2u1+
u8u2
7u6u5
4u3u2u2
1+
u8u2
7u6u4
4u2
3u2
2u1
2u8u2
7u6u4
4u3u2
2u2
1+
u8u2
7u6u3
4u3u3
2u2
1+
u8u2
7u2
5u4
4u3u2
2u1
u8u2
7u2
5u3
4u3u3
2u1
u8u2
7u5u5
4u2
3u2u1+
u8u2
7u5u5
4u3u2u2
1+
u8u2
7u5u4
4u2
3u2
2u1
2u8u2
7u5u4
4u3u2
2u2
1+
u8u2
7u5u3
4u3u3
2u2
1
u8u7u2
6u5u5
4u3u2
2+
u8u7u2
6u5u4
4u3u3
2+u8u7u2
6u6
4u2
3u2
u8u7u2
6u6
4u3u2u1
u8u7u2
6u5
4u2
3u2
2+
2u8u7u2
6u5
4u3u2
2u1
u8u7u2
6u4
4u3u3
2u1+
u8u7u6u5u5
4u3u2
2u1
u8u7u6u5u4
4u3u3
2u1
u8u7u6u6
4u2
3u2u1+u8u7u6u6
4u3u2u2
1+
u8u7u6u5
4u2
3u2
2u1
2u8u7u6u5
4u3u2
2u2
1+
u8u7u6u4
4u3u3
2u2
1+
u2
7u2
6u5u5
4u3u2
2
u2
7u2
6u5u4
4u3u3
2u2
7u2
6u6
4u2
3u2+
u2
7u2
6u6
4u3u2u1+u2
7u2
6u5
4u2
3u2
2
2u2
7u2
6u5
4u3u2
2u1+
u2
7u2
6u4
4u3u3
2u1
u2
7u6u5u5
4u3u2
2u1+
u2
7u6u5u4
4u3u3
2u1+u2
7u6u6
4u2
3u2u1
u2
7u6u6
4u3u2u2
1u2
7u6u5
4u2
3u2
2u1+
22
2u2
7u6u5
4u3u2
2u2
1
u2
7u6u4
4u3u3
2u2
1)
8. Pseudo remainder with p1over variable x1:
g= 0
5 Prover results
Status: Theorem has been proved.
Space Complexity: The biggest polynomial obtained during prover execution
contains 10 terms.
Time Complexity: Time spent by the prover is 0.198 seconds.
6 NDG Conditions
NDG Conditions in readable form
Points A and B are not identical
Points S and C are not identical
Line through points B and C is not parallel with line through points C1
and B1
Points A, S, B and C are not collinear
Line through points A1 and C1 is not parallel with line through points A
and C
Line through points A1 and B1 is not parallel with line through points A
and B
Time spent for processing NDG Conditions
0.658 seconds
23
Chapter A Readability of algebraic proofs
A similar output for the Nine point circle theorem would consist of 59 pages.
232
B. Coq code for proving
the parallelogram theorem
in Tarski’s system
In Appendix B the full listings of the Coq (Chapter 1, Sec. 1.2.4) code are shown to
prove the parallelogram theorem (see Example 28 on page 136) in Tarski’s system.
B.1. Primary definitions for chapter 7
Require Export out_lines.
Section T7.
Context ‘{MT:Tarski}.
Ltac assert_cols :=
repeat
match goal with
|H:Bet ?X1 ?X2 ?X3 |_
not_exist_hyp (Col X1 X2 X3);assert (Col X1 X2 X3)by (apply bet_col;apply H)
end.
Ltac clean_trivial_hyps :=
repeat
match goal with
|H:( Cong ?X1 ?X1 ?X2 ?X2) |_clear H
|H:( Cong ?X1 ?X2 ?X2 ?X1) |_clear H
|H:( Cong ?X1 ?X2 ?X1 ?X2) |_clear H
|H:( Bet ?X1 ?X1 ?X2) |_clear H
|H:( Bet ?X2 ?X1 ?X1) |_clear H
|H:( Col ?X1 ?X1 ?X2) |_clear H
|H:( Col ?X2 ?X1 ?X1) |_clear H
|H:( Col ?X1 ?X2 ?X1) |_clear H
end.
Ltac smart_subst X := subst X;clean_trivial_hyps;clean_duplicated_hyps.
233
Chapter B Coq code for proving the parallelogram theorem in Tarski’s system
Ltac treat_equalities_aux :=
match goal with
|H:(?X1 = ?X2) |_smart_subst X2
end.
Ltac treat_equalities :=
try treat_equalities_aux;
repeat
match goal with
|H:( Cong ?X3 ?X3 ?X1 ?X2) |_
apply cong_symmetry in H;apply cong_identity in H;smart_subst X2
|H:( Cong ?X1 ?X2 ?X3 ?X3) |_
apply cong_identity in H;smart_subst X2
|H:( Bet ?X1 ?X2 ?X1) |_apply between_identity in H;smart_subst X2
end.
Ltac show_distinct X Y :=
assert (X<>Y); [unfold not;intro;treat_equalities|idtac].
Hint Resolve between_symmetry :Between.
Hint Resolve bet_col :Between.
Hint Resolve between_trivial between_trivial2 :Between_no_eauto.
Ltac eBetween := treat_equalities;eauto with Between.
Ltac Between := treat_equalities;auto with Between Between_no_eauto.
Ltac prolong A B x C D :=
assert (sg:= segment_construction A B C D);
ex_and sg x.
Hint Resolve cong_commutativity cong_reverse_identity
cong_trivial_identity cong_left_commutativity
cong_right_commutativity cong_transitivity cong_symmetry
cong_reflexivity cong_identity :cong.
Hint Resolve cong_3_sym :Cong.
Hint Resolve cong_3_swap cong_3_swap_2 cong3_transitivity :Cong3.
Hint Unfold Cong_3 :Cong3.
Hint Resolve outer_transitivity_between2 between_inner_transitivity
between_exchange3 between_exchange2:Between.
Hint Resolve outer_transitivity_between between_exchange4.
Ltac Cong := auto with cong.
Ltac eCong := eauto with cong.
Hint Resolve col_permutation_1 col_permutation_2
234
B.2 Definition for Lemma 7.20
col_permutation_3 col_permutation_4 col_permutation_5 :Col.
Hint Immediate col_trivial_1 col_trivial_2 col_trivial_3:Col.
Ltac Col := auto with Col.
Ltac eCol := eauto with Col.
Definition is_midpoint := fun M A B Bet A M B Cong A M M B.
B.2. Definition for Lemma 7.20
Lemma l7_20 :forall M A B,
Col A M B Cong M A M B A=Bis_midpoint M A B.
Proof.
unfold Col.
intros.
induction H.
right.
unfold is_midpoint.
split.
assumption.
Cong.
induction H.
assert (Cong A B B B)
by (apply (l4_3 A B M B B M);Between;Cong).
treat_equalities;auto.
assert (Cong B A A A)
by (apply (l4_3 B A M A A M);Cong;Between).
treat_equalities;auto.
Qed.
B.3. Proving Lemma 7.21
Lemma l7_21 :forall A B C D P,
~Col A B C B<>DCong A B C D Cong B C D A
Col A P C Col B P D is_midpoint P A C is_midpoint P B D.
Proof.
intros.
assert (exists P’, Cong_3 B D P D B P’).
eapply l4_14.
Col.
Cong.
induction H5.
235
Chapter B Coq code for proving the parallelogram theorem in Tarski’s system
assert (Col D B x).
eapply l4_13.
2:apply H5.
Col.
assert (FSC B D P A D B x C).
unfold FSC.
unfold Cong_3 in H5.
spliter.
repeat split;try Cong.
Col.
assert (FSC B D P C D B x A).
unfold FSC.
unfold Cong_3 in H5.
spliter.
repeat split;try assumption.
Col.
Cong.
assert (Cong P A x C).
eapply l4_16.
apply H7.
assumption.
assert (Cong P C x A).
eapply l4_16.
apply H8.
assumption.
assert (Cong_3 A P C C x A).
unfold Cong_3.
repeat split;try Cong.
assert (Col C x A).
eapply l4_13.
2:apply H11.
assumption.
assert (P=x).
unfold FSC in .
spliter.
eapply (l6_21 A C B D); Col.
subst x.
assert (C=Ais_midpoint P C A).
236
B.3 Proving Lemma 7.21
eapply l7_20.
assumption.
assumption.
assert (B=Dis_midpoint P B D).
eapply l7_20.
assumption.
unfold FSC,Cong_3 in .
spliter.
Cong.
unfold is_midpoint,FSC,Cong_3 in .
spliter.
induction H14.
contradiction.
spliter.
induction H13.
subst C.
apply False_ind.
apply H.
apply col_trivial_3.
repeat split;try Cong.
apply between_symmetry.
spliter.
assumption.
Qed.
237
C. Remarks
on the Gröbner basis method
Appendix C contains detailed information concerning the Gröbner basis method.
These details are referenced in Chapter 2, Sec. 2.2.1 and Sec. 2.3.
C.1. Equation systems for testing various CAS
Here we list the non-zero sides of the reduced systems for testing the various CAS
in Chapter 2, Sec. 2.2.1.2. For the geometrical explanations see Kovács (2012a).
Thales
x2+y2a2b2, a2+b2c2d2, a +x, b +y, ((xc)(ac)+(yd)(bd))z1
Altitudes
(b1a1)(c1d1) + (b2a2)(c2d2),(b1d1)(a1c1) + (b2d2)(a2c2), z1(b1c2+
a1(b2c2)c1b2a2(b1c1)) 1, z2((a1d1)(b1c1)+(a2d2)(b2c2)) 1
Medians
2d1b1c1,2d2b2c2,2e1a1c1,2e2a2c2,2f1a1b1,2f2a2b2,g1d2+
a1(g2d2)d1g2a2(g1d1), g1e2+b1(g2e2)e1g2b2(g1e1),z(g1f2+c1(g2
f2)f1g2c2(g1f1)) 1
Bisectors
2d1b1c1,2d2b2c2,2e1a1c1,2e2a2c2,2f1a1b1,2f2a2b2,(d1
g1)(b1c1)+(d2g2)(b2c2),(e1g1)(c1a1)+(e2g2)(c2a2), z((f1g1)(a1
b1)+(f2g2)(a2b2)) 1
239
Chapter C Remarks on the Gröbner basis method
Euler
2d1b1c1,2d2b2c2,2e1a1c1,2e2a2c2,2f1a1b1,2f2a2b2,(d1
o1)(b1c1)+(d2o2)(b2c2),(e1o1)(c1a1)+(e2o2)(c2a2),s1d2+a1(s2
d2)d1s2a2(s1d1), s1e2+b1(s2e2)e1s2b2(s1e1),(a1m1)(b1c1) +
(a2m2)(b2c2),(b1m1)(c1a1) + (b2m2)(c2a2),z1(b1c2+a1(b2c2)
c1b2a2(b1c1)) 1, z2(s1m2+o1(s2m2)m1s2o2(s1m1)) 1
Nine
2d1b1c1,2d2b2c2,2e1a1c1,2e2a2c2,2f1a1b1,2f2a2b2,(a1
g1)(b1c1)+(a2g2)(b2c2), b1c2+g1(b2c2)c1b2g2(b1c1),d2
1+d2
2e2
1
e2
2, f 2
1+f2
2e2
1e2
2,z1(b1c2+a1(b2c2)c1b2a2(b1c1))1, z2(g2
1+g2
2f2
1f2
2)1
Angle
b1d2+a1(b2d2)d1b2a2(b1d1),((b1c1)(c1d1)+(b2c2)(c2d2))2((a1c1)2+
(a2c2)2)((a1c1)(c1d1) + (a2c2)(c2d2))2((b1c1)2+ (b2c2)2),z1(b1c2+
a1(b2c2)c1b2a2(b1c1)) 1,z2(((b1c1)2+ (b2c2)2)((a1d1)2+ (a2
d2)2)((a1c1)2+ (a2c2)2)((b1d1)2+ (b2d2)2)) 1
Simson
a1a1+a2a2b1b1b2b2, b1b1+b2b2c1c1c2c2, c1c1+c2c2d1d1d2d2,d1d1+d2d2
p1p1p2p2,(p1d1)(b1c1) + (p2d2)(b2c2),c1d2+b1(c2d2)d1c2b2(c1
d1),(p1e1)(c1a1)+(p2e2)(c2a2),a1e2+c1(a2e2)e1a2c2(a1e1),(p1
f1)(a1b1)+ (p2f2)(a2b2),b1f2+a1(b2f2)f1b2a2(b1f1), z1(b1c2+a1(b2
c2)c1b2a2(b1c1)) 1,z2(e1f2+d1(e2f2)f1e2d2(e1f1)) 1
Pappus
a1(b2c2)+a2(b1+c1)+b1c2b2c1, d1(e2f2)+d2(e1+f1)+ e1f2e2f1,a1(e2+
h2) + a2(e1h1)e1h2+e2h1, b1(d2h2) + b2(d1+h1) + d1h2d2h1,c1(d2
i2) + c2(d1+i1) + d1i2d2i1, a1(f2+i2) + a2(f1i1)f1i2+f2i1,c1(e2j2) +
c2(e1+j1) + e1j2e2j1, b1(f2+j2) + b2(f1j1)f1j2+f2j1,a1(b2z2d2z2) +
a2(b1z2+d1z2) + b1d2z2b2d1z21,a1(b2z3e2z3) + a2(b1z3+e1z3) + b1e2z3
b2e1z31,h1(i2z1j2z1) + h2(i1z1+j1z1) + i1j2z1i2j1z11
240
C.2 The Buchberger algorithm
Simson-R
a1a1+a2a2b1b1b2b2, b1b1+b2b2c1c1c2c2, c1c1+c2c2d1d1d2d2, d1d1+
d2d2p1p1p2p2,(p1d1)(b1c1)+(p2d2)(b2c2),c1d2+b1(c2d2)d1c2
b2(c1d1),(p1e1)(c1a1)+(p2e2)(c2a2), a1e2+c1(a2e2)e1a2c2(a1
e1),(p1f1)(a1b1)+(p2f2)(a2b2), b1f2+a1(b2f2)f1b2a2(b1f1),
z1(b1c2+a1(b2c2)c1b2a2(b1c1)) 1, z2(e1f2+d1(e2f2)f1e2d2(e1
f1)) 1, a1, a21
Pappus-R
a1(b2c2) + a2(b1+c1) + b1c2b2c1, d1(e2f2) + d2(e1+f1) + e1f2e2f1,
a1(e2+h2)+a2(e1h1)e1h2+e2h1, b1(d2h2)+b2(d1+h1)+d1h2d2h1,c1(d2
i2) + c2(d1+i1) + d1i2d2i1, a1(f2+i2) + a2(f1i1)f1i2+f2i1,c1(e2j2) +
c2(e1+j1) + e1j2e2j1, b1(f2+j2) + b2(f1j1)f1j2+f2j1,a1(b2z2d2z2) +
a2(b1z2+d1z2) + b1d2z2b2d1z21,a1(b2z3e2z3) + a2(b1z3+e1z3) + b1e2z3
b2e1z31, h1(i2z1j2z1) + h2(i1z1+j1z1) + i1j2z1i2j1z11, a1, a2, b1
C.2. The Buchberger algorithm
C.3. Equation systems after elimination
C.3.1. Giac code to mimic Singular output
The following Giac code will compute the same output as generated in Singular for
getting the factorized form of the eliminated equation system.
[[aa:=eliminate([
v7*v6+-1*v8*v5,v8*v6+v7*v5+-1*v6*v4+-1*v5*v3,
-1*v9*v4+v10*v3,
-1*v10*v4+v6*v4+-1*v9*v3+v5*v3,
v11*v8+-1*v12*v7+-1*v11*v4+v7*v4+v12*v3+-1*v8*v3,
v11*v10+-1*v12*v9+-1*v11*v6+v9*v6+v12*v5+-1*v10*v5,
-1*v13*v6+v14*v5+v13*v4+-1*v5*v4+-1*v14*v3+v6*v3,
-1*v14*v6+-1*v13*v5+v14*v4+v13*v3,
v15*v14+-1*v16*v13,
v15*v10+-1*v16*v9+-1*v15*v6+v9*v6+v16*v5+-1*v10*v5,
-1+-1*v17*v15+v17*v11],
[v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17])],
[bb:=size(aa)],
[for ii from 0 to bb-1 do
print("[" + (ii+1) + "]:");
print(" [1]:");
print(" _[1]=1");
241
Chapter C Remarks on the Gröbner basis method
cc:=factors(aa[ii]);
dd:=size(cc);
for jj from 0 to dd-1 by 2 do
print(" _[" + (jj/2+2) + "]=" + (cc[jj]));
od;
print(" [2]:");
print(" " + cc[1]);
for kk from 1 to dd-1 by 2 do
print(" ," + cc[kk]);
od;
od],
0][3]
C.3.2. The Buchberger algorithm in Singular
// The Buchberger algorithm i n Singul ar , with LaTeX output .
// Programmed by Zol tan Kovacs <zoltan@geogebra . org>.
// Use some e x te rn a l l i b r a r i e s .
LIB " teach std. lib" ;
LIB " late x .lib " ;
// Set up the problem .
// " l p " st an ds f or " l ex i co gr a ph i c or de r " .
ring r = 0 , ( a,b,c) , l p ;// SET UP THE VARIABLES AND THE ORDERING.
pol y p1 = 3 a+ 2 b+c5; // SET UP EQUATION 1 .
pol y p2 = 2 a+ 3 b4c+ 2; // SET UP EQUATION 2.
pol y p3 = 5 ab+ 2 c7; // SET UP EQUATION 3 .
l i s t inp ut =p1 ,p2 ,p3 ;// SET UP THE PROBLEM.
// Formatting sett i ngs .
i n t hidechains = 0; // SET TO "1" TO HIDE REDUCTION CHAINS.
i n t TeXwidth = 5 ; // MAXIMAL TERMS IN A POLY PRINTED.
short = 0;
i n t NoDollars = 1 ;
// Technical subroutines :
// appending a l i s t by vario us objects .
p ro c a ppen d (list A,poly a) {
l i s t B =A;
B[s i z e (B) + 1 ] = a;
re tu rn (B) ;
}
pro c a pp en dl (list A,l i s t a) {
l i s t B =A;
B[s i z e (B) + 1 ] = a;
re tu rn (B) ;
242
C.3 Equation systems after elimination
}
pro c a pp en di (list A,i n t a) {
l i s t B =A;
B[s i z e (B) + 1 ] = a;
re tu rn (B) ;
}
// The " s p ol " op erat io n .
proc sp o l (po ly f ,poly g) {
pol y l =lcm (leadmonom (f) , leadmonom(g));
re tu rn (lf/ ( l e a d c o e f (f)leadmonom (f))
lg/ ( l e a d c o e f (g)leadmonom (g) ) ) ;
// Note t hat f i r s t m ul ti pl ic at io n must be done , oth er wis e
// Singu lar wi ll swallow the f r act io nal part .
}
// We follow the notatio n s of
// ht tp : //www. s ch o la rp e di a . o rg/ a r t i c l e /B uchberge r ’ s_ algo rith m ,
// and al s o GreuelPf i s ter : A Singu l ar Intro ducti on to
// Commutative Alg ebra , page 50 , Al gorith m "NFBuchberger " .
// Gh i s t he s ub set o f G whose e ach e leme nt can be a pp li ed
// as a reductor f or h.
proc compute_Gh(list G,po ly h) {
l i s t Gh;
i n t i;
f o r (i= 1 ; i<= size(G) ; i++) {
i f (leadmonom(h)/ leadmonom(G[i] ) != 0) {
Gh =ap pen di (Gh,i) ;
}
}
re tu rn (Gh) ;
}
// Reduce f by using polynomials in G.
// Note t ha t many s i mi l ar re d () pr oc s a re p os si b le ,
// here the "item " s e tt in g could be c onfigured by the user .
proc red(po ly f ,l i s t G) {
pol y h =f;
pol y g ,h1 ;
l i s t Gh =compute_Gh(G,h) ;
i n t item ;
i n t chosen ;
wh ile (h!= 0 && s i z e (Gh) > 0) {
item = 1; // USER CONFIGURABLE
chosen =Gh[item ] ;
g=G[chosen ] ;
243
Chapter C Remarks on the Gröbner basis method
h=sp ol (h,g) ;
i f (hidechains != 1) {
printf(" \\ \\ &\ \ un de rs et { (% s )} {\ \ r ig ht ar ro w }% s " ,chosen ,
texpoly("" ,h));
}
Gh =compute_Gh(G,h) ;
}
i f (hidechains == 1) {
printf(" \\ \\ &\ \ un de rs et { %s \ \ ti me s }{ \\ d as hr ig h ta rr ow } % s" ,
step ,texpoly ("" ,h));
}
// Normalization .
i f (h!= 0) {
h1 =simplify (h, 1 ) ;
i f (h1 != h) {
printf(" \\ s im \ \\ \ & \\ q qu ad %s " ,texpoly ("" ,h1 ));
h=h1 ;
}
}
pr int (" .\\\\ \\end { ali gn *}" ) ;
re tu rn (h) ;
}
// Pri nt the e qua tio n system .
pro c p ri ntG (l i s t G) {
pr int (" The equati on syst em is:" ) ;
pr int (" \\beg in{ alig n *}" ) ;
i n t i;
s t r i n g d e li m ="," ;
f o r (i= 1 ; i<= size(G) ; i++) {
i f (i== s i z e (G) ) {
delim ="." ;
}
printf("%s&= 0%s &&(% s )\\\\ " ,texpoly("" ,G[i] ) , delim ,i) ;
}
pr int (" \\en d { a lign *}" ) ;
}
// Buchberger algorithm on polynomials in B.
proc b uc hb er ge r (l i s t B) {
l i s t G =B;
printG(G) ;
l i s t C,p;
i n t i,j,item ;
pol y f ,g,h,s;
f o r (i= 1 ; i<= size(G) ; i++) {
244
C.3 Equation systems after elimination
f o r (j=i+1; j<= size(G) ; j++) {
p=i,j;
C=appendl(C,p) ;
}
}
wh ile (s i z e (C)>0) {
item = 1; // USER CONFIGURABLE
i=C[item ] [ 1 ] ;
j=C[item ] [ 2 ] ;
f=G[i] ;
g=G[j] ;
printf(" Elimin ating le ading te rms of (%s) an d (%s): " ,i,j) ;
C=delete(C,item ) ;
s=sp ol (f,g) ;
pr int (" \\beg in{ alig n *}" ) ;
printf(" %s & \\ u nd er se t {( %s ) }{ \\ r ig h ta rr ow } %s " ,texpoly("" ,f) , j,
texpoly("" ,s));
h=red(s,G) ;
i f (h!= 0) {
f o r (i=1; i<= size(G) ; i++) {
p=i,s i z e (G) + 1 ;
C=appendl(C,p) ;
}
G=append(G,h) ;
pr int (" Equa t ion a dded :" ) ;
pr int (" \\beg in{ alig n *}" ) ;
printf("%s&= 0. &&(% s)\\\\" ,texpoly("" ,h) , s i z e (G));
pr int (" \\en d { a lign *}" ) ;
}
}
re tu rn (G) ;
}
// LaTeX related
proc begin_document () {
pr int (" \ \ do cu m en tc la s s {a rt i cl e }" ) ;
pr int (" \ \ us ep ac k ag e { ams ma th , a ms sy mb } " ) ;
pr int (" \\beg in{ d ocum e nt }" ) ;
}
pr oc end_document ( ) {
pr int (" \\en d { doc u ment }" ) ;
}
// Main program .
begin_document ();
l i s t output =bu ch be rg er (input ) ;
245
Chapter C Remarks on the Gröbner basis method
end_document ();
C.3.3. Freedom of choice in the Buchberger algorithm
In this section first we change the red operation to select the last possible polynomial
when computing the reduction chains. We use Example 46 again.
The equation system is:
3a+ 2b+c5=0,(1)
2a+ 3b4c+ 2 = 0,(2)
5ab+ 2c7=0.(3)
Eliminating leading terms of (1) and (2):
3a+ 2b+c5
(2) 5
6b+7
3c8
3
b14
5c+16
5.
Equation added:
b14
5c+16
5= 0.(4)
Eliminating leading terms of (1) and (3):
3a+ 2b+c5
(3)
13
15 b1
15 c4
15
(4)
177
65 c228
65
c76
59 .
Equation added:
c76
59 = 0.(5)
Eliminating leading terms of (2) and (3):
2a+ 3b4c+ 2
(3)
17
10 b12
5c+12
5
(4)
118
85 c152
85
(5) 0.
246
C.3 Equation systems after elimination
Eliminating leading terms of (1) and (4):
3a+ 2b+c5
(4)
14
5ac 16
5a+2
3b2+1
3bc 5
3b
(5)
60
413 a+5
21 b2+5
42 bc 25
42 b
(3)
59
36 b2+59
72 bc 1403
360 b2
5c+7
5
(4)
33
10 bc 3291
590 b72
295 c+252
295
(5) 261
649 b48
649 c+168
649
(4)
1298
435 c1672
435
(5) 0.
Eliminating leading terms of (2) and (4):
2a+ 3b4c+ 2
(4)
14
5ac 16
5a+3
2b22bc +b
(5)
60
413 a+15
28 b25
7bc +5
14 b
(3)
59
16 b259
12 bc +319
120 b2
5c+7
5
(4)
22
15 bc 2194
885 b32
295 c+112
295
(5) 261
649 b48
649 c+168
649
(4)
1298
435 c1672
435
(5) 0.
Eliminating leading terms of (3) and (4):
5ab+ 2c7
(4)
14
5ac 16
5a1
5b2+2
5bc 7
5b
(5)
60
413 a1
14 b2+1
7bc 1
2b
(3) 59
120 b2+59
60 bc 389
120 b2
5c+7
5
(4)
4
5bc +1001
295 b+48
59 c168
59
(5)
1305
236 b+60
59 c210
59
(4)
1298
435 c1672
435
(5) 0.
247
Chapter C Remarks on the Gröbner basis method
Eliminating leading terms of (1) and (5):
3a+ 2b+c5
(5)
76
59 a+2
3bc +1
3c25
3c
(3)
59
114 bc +1
5b+59
228 c21931
1140 c+7
5
(5)
494
295 b+1
2c21931
590 c+798
295
(4)
295
988 c2+4177
4940 c103
65
(5)
103
25 c7828
1475
(5) 0.
Eliminating leading terms of (2) and (5):
2a+ 3b4c+ 2
(5)
76
59 a+3
2bc 2c2+c
(3)
177
152 bc +1
5b59
38 c2+143
380 c+7
5
(5)
1292
885 b4
3c2+286
885 c+1064
885
(4) 295
323 c2+9759
3230 c202
85
(5) 101
50 c+3838
1475
(5) 0.
Eliminating leading terms of (3) and (5):
5ab+ 2c7
(5)
76
59 a1
5bc +2
5c27
5c
(3) 59
380 bc +1
5b+59
190 c2113
76 c+7
5
(5) 2c2+565
59 c532
59
(5) 7
2c+266
59
(5) 0.
Eliminating leading terms of (4) and (5):
b14
5c+16
5
(5)
76
59 b14
5c2+16
5c
(4) 413
190 c2+502
95 c16
5
(5) 8
7c+608
413
(5) 0.
248
C.3 Equation systems after elimination
When eliminating leading terms of (1) and (4), the reductors here are (4), (5), (3),
(4), (5), (4) and (5)—formerly they were (4), (1), (1), (4), (4), (4); therefore the
reduction chains can be different when different polynomial selection strategies are
used. The output Gröbner basis is, however, the same (at least in this example).
On the other hand, by changing the polynomial selection algorithm in the Buch-
berger algorithm, also the Gröbner basis may change. We will change the algorithm
to use the last set of the 2-element sets. In Singular we implemented sets by us-
ing lists, so that technically it means that we use the last element of a continuously
appended list. (We changed the red operation algorithm back to its original setting.)
The equation system is:
3a+ 2b+c5=0,(1)
2a+ 3b4c+ 2 = 0,(2)
5ab+ 2c7=0.(3)
Eliminating leading terms of (2) and (3):
2a+ 3b4c+ 2
(3)
17
10 b12
5c+12
5
b24
17 c+24
17 .
Equation added:
b24
17 c+24
17 = 0.(4)
Eliminating leading terms of (3) and (4):
5ab+ 2c7
(4)
24
17 ac 24
17 a1
5b2+2
5bc 7
5b
(1) a17
120 b223
60 bc 119
120 b1
3c2+5
3c
(1)
17
120 b2+23
60 bc +13
40 b+1
3c22c+5
3
(4)
70
17 bc +15
17 b+40
17 c2240
17 c+200
17
(4)
3
14 b+236
119 c2576
119 c+20
7
(4)
472
51 c2360
17 c+608
51
c2135
59 c+76
59 .
249
Chapter C Remarks on the Gröbner basis method
Equation added:
c2135
59 c+76
59 = 0.(5)
Eliminating leading terms of (4) and (5):
b24
17 c+24
17
(5)
135
59 bc 76
59 b24
17 c3+24
17 c2
(4) 76
135 b472
765 c3+1552
765 c224
17 c
(4)
354
323 c31164
323 c2+1266
323 c24
17
(5) c2+135
59 c76
59
(5) 0.
Eliminating leading terms of (3) and (5):
5ab+ 2c7
(5)
135
59 ac 76
59 a1
5bc2+2
5c37
5c2
(1) 76
135 a59
675 bc22
3bc +118
675 c3638
675 c2+5
3c
(1)
59
380 bc2+45
38 bc 2
3b59
190 c3+319
190 c2751
228 c+5
3
(4)
450
59 bc 760
177 b10
17 c3+9430
1003 c23755
177 c+1900
177
(4) 76
135 b59
765 c3+119
45 c219247
4590 c+38
27
(4)
177
1292 c3357
76 c2+1205
136 c133
34
(5) 32c2+22439
354 c5054
177
(5)
59
192 c19
48
c76
59 .
Equation added:
c76
59 = 0.(6)
Eliminating leading terms of (5) and (6):
c2135
59 c+76
59
(6) c+76
59
(6) 0.
250
C.3 Equation systems after elimination
Eliminating leading terms of (4) and (6):
b24
17 c+24
17
(6)
76
59 b24
17 c2+24
17 c
(4) 354
323 c2+810
323 c24
17
(5) 0.
Eliminating leading terms of (3) and (6):
5ab+ 2c7
(6)
76
59 a1
5bc +2
5c27
5c
(1) 59
380 bc 2
3b+59
190 c21619
1140 c+5
3
(4)
760
177 b10
17 c2+23275
3009 c1900
177
(4) 177
1292 c2+437
136 c133
34
(5) 127
6c+4826
177
(6) 0.
Eliminating leading terms of (2) and (6):
2a+ 3b4c+ 2
(6)
76
59 a+3
2bc 2c2+c
(1)
177
152 bc 2
3b59
38 c2+101
228 c+5
3
(4) 304
531 b+4
51 c29310
9027 c+760
531
(4) 177
1292 c2+437
136 c133
34
(5) 127
6c+4826
177
(6) 0.
Eliminating leading terms of (1) and (6):
3a+ 2b+c5
(6)
76
59 a+2
3bc +1
3c25
3c
(1)
59
114 bc 2
3b+59
228 c2371
228 c+5
3
(4) 76
59 b+65
34 c29139
2006 c+190
59
(4) 3835
2584 c2+673
136 c133
34
(5) 68
65 c+5168
3835
(6) 0.
251
Chapter C Remarks on the Gröbner basis method
Eliminating leading terms of (2) and (5):
2a+ 3b4c+ 2
(5)
135
59 ac 76
59 a+3
2bc22c3+c2
(1) 76
135 a+59
90 bc22
3bc 118
135 c3+14
135 c2+5
3c
(1) 177
152 bc2+45
38 bc 2
3b+59
38 c37
38 c2751
228 c+5
3
(4) 60
59 bc +304
531 b+4
51 c33772
3009 c2+1502
531 c760
531
(4) 76
135 b59
765 c3+119
45 c219247
4590 c+38
27
(4)
177
1292 c3357
76 c2+1205
136 c133
34
(5) 32c2+22439
354 c5054
177
(5)
59
192 c19
48
(6) 0.
Eliminating leading terms of (1) and (5):
3a+ 2b+c5
(5)
135
59 ac 76
59 a+2
3bc2+1
3c35
3c2
(1) 76
135 a+118
405 bc22
3bc +59
405 c386
81 c2+5
3c
(1) 59
114 bc2+45
38 bc 2
3b59
228 c3+215
114 c2751
228 c+5
3
(4) 135
59 bc +76
59 b+65
34 c35071
1003 c2+751
118 c190
59
(4) 76
135 b767
918 c3+8311
2295 c219247
4590 c+38
27
(4)
3835
2584 c38311
1292 c2+1205
136 c133
34
(5) 133
65 c2+3591
767 c10108
3835
(5) 0.
252
C.3 Equation systems after elimination
Eliminating leading terms of (2) and (4):
2a+ 3b4c+ 2
(4)
24
17 ac 24
17 a+3
2b22bc +b
(1) a+17
16 b225
12 bc +17
24 b1
3c2+5
3c
(1) 17
16 b2+25
12 bc 11
8b+1
3c22c+5
3
(4) 28
51 bc 2
17 b16
51 c2+32
17 c80
51
(4)
3
14 b+236
119 c2576
119 c+20
7
(4)
472
51 c2360
17 c+608
51
(5) 0.
Eliminating leading terms of (1) and (4):
3a+ 2b+c5
(4)
24
17 ac 24
17 a+2
3b2+1
3bc 5
3b
(1) a+17
36 b231
72 bc 85
72 b1
3c2+5
3c
(1) 17
36 b2+31
72 bc +37
72 b+1
3c22c+5
3
(4)
1
2bc 5
2b12
17 c2+72
17 c60
17
(4) 5b+120
17 c120
17
(4) 0.
Eliminating leading terms of (1) and (3):
3a+ 2b+c5
(3)
13
15 b1
15 c4
15
(4)
295
221 c380
221
(6) 0.
Eliminating leading terms of (1) and (2):
3a+ 2b+c5
(2) 5
6b+7
3c8
3
(4) 118
85 c+152
85
(6) 0.
Now three new equations were produced, and only the last one is the same as in the
previous outputs. Surprisingly a quadratic equation has also been introduced.
253
Chapter C Remarks on the Gröbner basis method
C.3.4. Uniqueness of a minimal–reduced–normed Gröbner basis
Here we continue the last example of the previous section as follows:
Removing (2) since its leading term ais a multiple of leading term ain (1).
Removing (3) since its leading term ais a multiple of leading term ain (1).
Removing (5) since its leading term c2is a multiple of leading term cin (6).
An echelon form of the equation system is:
3a+ 2b+c5=0,(1)
b24
17 c+24
17 = 0,(4)
c76
59 = 0.(6)
(1) can be reduced by (4) to 3a+65
17 c133
17 a+65
51 c133
51 (10), equation updated.
(10)can be reduced by (6) to a57
59 (100), equation updated.
(4) can be reduced by (6) to b24
59 (40), equation updated.
The minimal reduced normed form of the equation system is:
a57
59 = 0,(100)
b24
59 = 0,(40)
c76
59 = 0.(6)
The used source code is the same as before, but the following extra subroutines need
to be defined with the extended version of the main program:
// Remove unneeded el eme nts of G ( we assume G i s a Groebner
// b asis ) by min imal izi ng .
proc gb_minimize(l i s t G) {
l i s t R,O1,O2 ,O;
i n t i,j,last ;
pol y lmi ,Gj ,lmj ;
s t r i n g d e li m ="," ;
pr int (" \\beg in{ itemi ze } " ) ;
f o r (i=1; i<= size(G) ; i++) {
R[i] = 1 ;
}
f o r (i= 1 ; i<= size(G) ; i++) {
i f (R[i] == 1) {
lmi =leadmonom(G[i]);
f o r (j= 1 ; j<= s i z e (G) ; j++) {
i f (i!= j&& R[j] == 1) {
lmj =leadmonom(G[j]);
254
C.3 Equation systems after elimination
i f (lmj /lmi != 0) {
pr int (" " ) ;
printf("\\ite m Remo v ing (% s ) sin ce it s lead ing te rm $% s$ "
+"is a multi ple of lea ding term $%s$ in (%s). " ,j,
texpoly("" ,lmj ) , texpoly("" ,lmi) , i) ;
R[j] = 0 ;
}// i f 3
}// i f 2
}// fo r 2
}// i f 1
}// fo r 1
pr int (" \\en d { ite mize}" ) ;
pr int (" An eche lon for m of the equa tion sys tem is : " ) ;
pr int (" \\beg in{ alig n *}" ) ;
f o r (i= 1 ; i<= size(G) ; i++) {
i f (R[i] == 1) {
l a s t =i;
}
}
f o r (i= 1 ; i<= size(G) ; i++) {
i f (i== l a s t ) {
delim ="." ;
}
i f (R[i] == 1) {
printf("%s&= 0%s &&(% s )\\\\ " ,texpoly("" ,G[i] ) , delim ,i) ;
O1 =append(O1,G[i]);
O2 =ap pe nd i (O2,i) ;
}
}
pr int (" \\en d { a lign *}" ) ;
O=appen dl (O,O1 ) ;
O=appen dl (O,O2 ) ;
re tu rn (O) ;
}
// S im pl if y G ( we assume G i s a Groebner b a s is ) by f i n a l
// (nonlead )reduction .
pro c g b_ fred (l i s t G,l i s t N) {
l i s t R;
i n t i,j,f;
pol y Gi ,Gj ,s,lmi ,lmj ;
s t r i n g d e li m ="," ;
f= 1;
pr int (" \\beg in{ itemi ze } " ) ;
f o r (i= 1 ; i<= size(G) ; i++) {
R[i] = "" ;
255
Chapter C Remarks on the Gröbner basis method
}
wh ile (f== 1) {
f= 0;
f o r (i= 1 ; i<= size(G) ; i++) {
lmi =leadmonom(G[i]);
f o r (j= 1 ; j<= s i z e (G) ; j++) {
i f (i!= j) {
Gj =G[j] ;
wh ile (Gj != 0 ) {
lmj =leadmonom(Gj ) ;
i f (lmj /lmi != 0) {
s=G[j](lmj /lmi l e a d c o e f (Gj ) ) G[i] ;
i f (s!= 0) {
printf("\\ite m $ (%s%s)$ can be reduce d b y $ (%s%s) $ to $%s$" ,
N[j] , R[j] , N[i] , R[i] , texpoly("" ,s));
i f (l e a d c o e f (s) != 1) {
s=s/l e a d c o e f (s) ;
printf(" $\\sim %s$" ,texpoly("" ,s));
}
printf("$(% s% s )$, equa t ion u pdate d . " ,N[j] , R[j]);
R[j] = R[j] + "’" ;
G[j] = s;
Gj = 0 ; // technical
f= 1;
}// i f 3
}// i f 2
Gj =Gj lmj l e a d c o e f (Gj ) ;
}// while
}// i f 1
}// fo r 2
}// fo r 1
}// while
pr int (" \\en d { ite mize}" ) ;
pr int (" The minim al reduc ed norm ed for m of the eq uatio n " +
"sys tem is:" ) ;
pr int (" \\beg in{ alig n *}" ) ;
f o r (i=1; i<= size(G) ; i++) {
i f (i== s i z e (G) ) {
delim ="." ;
}
printf("%s&= 0%s &&(% s % s ) \\\\ " ,texpoly("" ,G[i] ) , delim ,
N[i] , R[i]);
}
pr int (" \\en d { a lign *}" ) ;
}
256
C.3 Equation systems after elimination
// Main program .
begin_document ();
l i s t gb =b uc hb er ge r (input ) ;
gb_fred(gb_minimize(gb ));
end_document ();
C.3.5. Euler’s line
Here we show all the 24 possible equation systems for Euler’s line.
We may create a couple of basic Unix shell scripts to rearrange the variable ordering
in an existing Singular script. Basically, a fast permutor can be used after putting
the permutable free variables into line 2 in the “input” file:
# Some parts of the following code was taken from
# http://stackoverflow.com/a/3846321.
perm() {
local items="$1"
local out="$2"
local i
[[ "$items" == "" ]] && echo "$out" && return
for (( i=0; i<${#items}; i++ )) ; do
perm "${items:0:i}${items:i+1}" "$out${items:i:1}"
done
}
CASE=1
perm 3456 | sed s/"\([0-9]\)"/"v\\1,"/g | while read PERM; do
INPUT=input-$PERM
OUTPUT=output-$PERM
test -r $OUTPUT || {
echo "Generating $OUTPUT... (case $CASE)"
head -1 input >> $OUTPUT
$PERM" > $INPUT
tail -n +3 input >> $INPUT
cat $INPUT | Singular > $OUTPUT
rm $INPUT
}
CASE=$((CASE+1))
done
The following AWK script helps to rewrite the Singular output to show different
equations on different lines, but different factors of the same equation should be
shown on the same line:
{
if (substr($0,4,3)=="[2]")
print "";
else if (substr($0,1,7)==" _" && substr($0,9,2)!="1]")
printf("(%s)", substr($0,12));
}
257
Chapter C Remarks on the Gröbner basis method
Finally, this loop iterates on the generated output files to get the final report:
find -name ’output-*’ | while read FILENAME; do
LENGTH=‘cat $FILENAME | grep "^\[" | tail -1 |\
sed s/:// | sed s/"\["// | sed s/"\]"//‘
NAME=‘echo $FILENAME | sed s/",$"/""/‘
echo "--- $NAME ($LENGTH eqs) ---" >> $OUTPUT
cat $FILENAME | ./rewrite >> $OUTPUT
done
The output is:
--- ./output-v3,v5,v6,v4 (5 eqs) ---
(-v3*v6+v5*v4)(v6)
(-v3*v6+v5*v4)(v5)
(v5^2+v6^2)(-v6+v4)(v4)
(v3*v5-v5^2-v6^2+v6*v4)(v4)(v5)
(v3^2-v3*v5-v6*v4+v4^2)(v5)
--- ./output-v5,v6,v3,v4 (5 eqs) ---
(-v6*v3+v5*v4)(v6)
(-v6*v3+v5*v4)(v5)
(v5^2+v6^2)(-v6+v4)(v4)
(-v5^2-v6^2+v5*v3+v6*v4)(v4)(v5)
(-v5*v3+v3^2-v6*v4+v4^2)(v5)
--- ./output-v4,v3,v6,v5 (5 eqs) ---
(v3*v6-v4*v5)(v5)
(-v3*v6+v4*v5)(v6)
(-v4^2-v3^2+v4*v6+v3*v5)(v5)
(v4)(-v4*v6+v6^2-v3*v5+v5^2)(v5)
(-v4^2*v6^2+v4*v6^3+v3^2*v5^2-v3*v5^3)
--- ./output-v6,v5,v4,v3 (5 eqs) ---
(-v5*v4+v6*v3)(v5)
(-v5*v4+v6*v3)(v6)
(v6^2+v5^2)(-v5+v3)(v3)
(-v6^2-v5^2+v6*v4+v5*v3)(v3)(v6)
(v6^3*v4-v6^2*v4^2-v5^3*v3+v5^2*v3^2)
--- ./output-v3,v4,v5,v6 (5 eqs) ---
(v4*v5-v3*v6)(v6)
(-v4*v5+v3*v6)(v5)
(-v3^2-v4^2+v3*v5+v4*v6)(v6)
(v3)(-v3*v5+v5^2-v4*v6+v6^2)(v6)
(v3-v5)(v3)(v5^2+v6^2)
--- ./output-v3,v4,v6,v5 (5 eqs) ---
(v3*v6-v4*v5)(v5)
(-v3*v6+v4*v5)(v6)
(-v3^2-v4^2+v4*v6+v3*v5)(v5)
(v4)(-v4*v6+v6^2-v3*v5+v5^2)(v5)
(v4-v6)(v4)(v6^2+v5^2)
258
C.3 Equation systems after elimination
--- ./output-v4,v6,v5,v3 (5 eqs) ---
(-v4*v5+v6*v3)(v5)
(-v4*v5+v6*v3)(v6)
(v6^2+v5^2)(-v5+v3)(v3)
(v4*v6-v6^2-v5^2+v5*v3)(v3)(v6)
(-v4^2*v6^2+v4*v6^3-v5^3*v3+v5^2*v3^2)
--- ./output-v6,v3,v4,v5 (5 eqs) ---
(-v6*v3+v4*v5)(v5)
(-v6*v3+v4*v5)(v6)
(v3^2-v6*v4+v4^2-v3*v5)(v5)
(-v6^2+v6*v4+v3*v5-v5^2)(v4)(v5)
(-v6+v4)(v4)(v6^2+v5^2)
--- ./output-v4,v5,v3,v6 (5 eqs) ---
(-v4*v5+v3*v6)(v6)
(-v4*v5+v3*v6)(v5)
(v4^2-v5*v3+v3^2-v4*v6)(v6)
(-v5^2+v5*v3+v4*v6-v6^2)(v3)(v6)
(-v5+v3)(v3)(v5^2+v6^2)
--- ./output-v4,v3,v5,v6 (5 eqs) ---
(v4*v5-v3*v6)(v6)
(-v4*v5+v3*v6)(v5)
(-v4^2-v3^2+v3*v5+v4*v6)(v6)
(v3)(-v3*v5+v5^2-v4*v6+v6^2)(v6)
(v3-v5)(v3)(v5^2+v6^2)
--- ./output-v5,v6,v4,v3 (5 eqs) ---
(-v5*v4+v6*v3)(v6)
(-v5*v4+v6*v3)(v5)
(-v5^2-v6^2+v6*v4+v5*v3)(v3)(v6)
(v5^2+v6^2)(-v5+v3)(v3)
(-v6*v4+v4^2-v5*v3+v3^2)(v6)
--- ./output-v6,v3,v5,v4 (5 eqs) ---
(-v6*v3+v5*v4)(v5)
(-v6*v3+v5*v4)(v6)
(-v6^2+v3*v5-v5^2+v6*v4)(v4)(v5)
(v6^2+v5^2)(-v6+v4)(v4)
(v3^2-v3*v5-v6*v4+v4^2)(v5)
--- ./output-v5,v4,v3,v6 (5 eqs) ---
(-v5*v4+v3*v6)(v6)
(-v5*v4+v3*v6)(v5)
(v4^2-v5*v3+v3^2-v4*v6)(v6)
(-v5^2+v5*v3+v4*v6-v6^2)(v3)(v6)
(-v5+v3)(v3)(v5^2+v6^2)
--- ./output-v6,v4,v5,v3 (5 eqs) ---
(-v4*v5+v6*v3)(v5)
(-v4*v5+v6*v3)(v6)
(v6^2+v5^2)(-v5+v3)(v3)
(-v6^2+v6*v4-v5^2+v5*v3)(v3)(v6)
(v6^3*v4-v6^2*v4^2-v5^3*v3+v5^2*v3^2)
--- ./output-v3,v6,v5,v4 (5 eqs) ---
(-v3*v6+v5*v4)(v5)
(-v3*v6+v5*v4)(v6)
(-v6^2+v3*v5-v5^2+v6*v4)(v4)(v5)
(v6^2+v5^2)(-v6+v4)(v4)
(v3^2-v3*v5-v6*v4+v4^2)(v5)
--- ./output-v5,v3,v6,v4 (5 eqs) ---
(-v3*v6+v5*v4)(v6)
(-v3*v6+v5*v4)(v5)
(v5^2+v6^2)(-v6+v4)(v4)
(-v5^2+v5*v3-v6^2+v6*v4)(v4)(v5)
(-v5*v3+v3^2-v6*v4+v4^2)(v5)
--- ./output-v3,v5,v4,v6 (5 eqs) ---
(v5*v4-v3*v6)(v6)
(-v5*v4+v3*v6)(v5)
(v3^2-v3*v5+v4^2-v4*v6)(v6)
(v3)(v3*v5-v5^2+v4*v6-v6^2)(v6)
(v3-v5)(v3)(v5^2+v6^2)
--- ./output-v4,v5,v6,v3 (5 eqs) ---
(-v4*v5+v6*v3)(v6)
(-v4*v5+v6*v3)(v5)
(-v5^2+v4*v6-v6^2+v5*v3)(v3)(v6)
(v5^2+v6^2)(-v5+v3)(v3)
(v4^2-v4*v6-v5*v3+v3^2)(v6)
--- ./output-v4,v6,v3,v5 (5 eqs) ---
(v6*v3-v4*v5)(v5)
(-v6*v3+v4*v5)(v6)
(v4^2-v4*v6+v3^2-v3*v5)(v5)
(v4)(v4*v6-v6^2+v3*v5-v5^2)(v5)
(-v4^2*v6^2+v4*v6^3+v3^2*v5^2-v3*v5^3)
--- ./output-v6,v5,v3,v4 (5 eqs) ---
(-v6*v3+v5*v4)(v5)
(-v6*v3+v5*v4)(v6)
(-v6^2-v5^2+v5*v3+v6*v4)(v4)(v5)
(v6^2+v5^2)(-v6+v4)(v4)
(-v5*v3+v3^2-v6*v4+v4^2)(v5)
--- ./output-v5,v3,v4,v6 (6 eqs) ---
(v5*v4-v3*v6)(v6)
(-v5*v4+v3*v6)(v5)
(-v5*v3+v3^2+v4^2-v4*v6)(v6)
(v3)(-v5^2+v5*v3+v4*v6-v6^2)(v6)
(-v5+v3)(v3)(v5^2+v6^2)
(v4-v6)(v3^2+v4^2)(v6)
--- ./output-v5,v4,v6,v3 (5 eqs) ---
(-v5*v4+v6*v3)(v6)
(-v5*v4+v6*v3)(v5)
(-v5^2+v4*v6-v6^2+v5*v3)(v3)(v6)
(v5^2+v6^2)(-v5+v3)(v3)
(v4^2-v4*v6-v5*v3+v3^2)(v6)
--- ./output-v6,v4,v3,v5 (6 eqs) ---
(v6*v3-v4*v5)(v5)
(-v6*v3+v4*v5)(v6)
(-v6*v4+v4^2+v3^2-v3*v5)(v5)
(v4)(-v6^2+v6*v4+v3*v5-v5^2)(v5)
(v6^3*v4-v6^2*v4^2+v3^2*v5^2-v3*v5^3)
(v3-v5)(v4^2+v3^2)(v5)
--- ./output-v3,v6,v4,v5 (5 eqs) ---
(-v3*v6+v4*v5)(v5)
(-v3*v6+v4*v5)(v6)
(v3^2-v6*v4+v4^2-v3*v5)(v5)
(-v6^2+v6*v4+v3*v5-v5^2)(v4)(v5)
(-v6+v4)(v4)(v6^2+v5^2)
259
Chapter C Remarks on the Gröbner basis method
C.3.6. Pappus’ hexagon theorem
The following table shows the number of equations among the 40320 possible equa-
tion sets:
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
65 230 623 985 1648 5111 8168 11995 5973 3344 459 274 1124 262 45 14
Here we provide example sets for each number of equations.
--- ./output-v3,v5,v9,v11,v6,v4,v8,v7 (10 eqs) ---
(-v9+v11)(v6-v4)(v7)
(-v3+v5)(v9-v11)(v7)
(-v9+v11)(v6-v4)(v8)
(-v9+v11)(-v3*v8+v5*v8-v6*v7+v4*v7)
(-v5+v9)(-v5*v8+v6*v7)
(-v3*v5*v8+v3*v9*v8+v3*v6*v7-v9*v4*v7)
(-v5+v9)(v11)(v4-v8)
(v3*v11*v6-v5*v11*v4-v5^2*v8+v3*v9*v8-v3*v11*v8+v5*v11*v8+v5*v6*v7-
v11*v6*v7-v9*v4*v7+v11*v4*v7)
(v3-v7)(-v5+v9)(v11)
(v5-v7)(-v5+v9)(-v9+v11)(v11)(v7)
--- ./output-v7,v3,v5,v6,v4,v9,v11,v8 (11 eqs) ---
(-v6+v4)(v9-v11)(v8)
(-v3+v5)(v9-v11)(v8)
(v4-v8)(-v5+v9)(v11)
(v3*v6-v5*v4)(v11)
(-v7+v3)(v5-v9)(v11)
(-v7*v6*v9+v7*v4*v9+v7*v6*v11-v3*v6*v11-v7*v4*v11+v5*v4*v11
-v3*v9*v8+v5*v9*v8+v3*v11*v8-v5*v11*v8)
(-v7*v3*v9+v7*v5*v9+v7*v3*v11-v3*v5*v11-v7*v9*v11+v3*v9*v11)
(-v7*v5*v6+v7*v4*v9+v7*v6*v11-v3*v6*v11-v7*v4*v11+v5*v4*v11
+v5^2*v8-v3*v9*v8+v3*v11*v8-v5*v11*v8)
(-v7*v3*v6+v7*v4*v9+v3*v5*v8-v3*v9*v8)
(v7*v5*v4*v9-v7*v4*v9^2-v5^2*v9*v8+v5*v9^2*v8-v3*v5*v11*v8
+v5^2*v11*v8+v3*v11^2*v8-v5*v11^2*v8)
(v3)(-v3+v5)(-v5+v9)(v9-v11)(v11)
--- ./output-v4,v8,v3,v5,v6,v9,v11,v7 (12 eqs) ---
(-v3+v5)(v9-v11)(v7)
(-v4+v6)(v9-v11)(v7)
(v3-v7)(-v5+v9)(v11)
(-v8*v5*v11+v3*v6*v11-v4*v9*v11+v8*v9*v11+v4*v9*v7-v6*v9*v7
-v4*v11*v7+v6*v11*v7)
(v4*v5-v3*v6)(v11)
(v8*v3*v9-v8*v5*v9-v8*v3*v11-v4*v5*v11+v8*v5*v11+v3*v6*v11-v4*v9*v7
+v6*v9*v7+v4*v11*v7-v6*v11*v7)
(v8)(-v4+v6)(v9-v11)
(v8*v5^2-v8*v3*v9+v8*v3*v11+v4*v5*v11-v8*v5*v11-v3*v6*v11-v5*v6*v7
+v4*v9*v7-v4*v11*v7+v6*v11*v7)
(-v8*v3*v5+v8*v3*v9+v3*v6*v7-v4*v9*v7)
(v3^2*v6-v4*v3*v9-v3*v6*v7+v6*v9*v7+v4*v11*v7-v6*v11*v7)(v11)
(v4*v3*v6-v8*v3*v6-v4^2*v9+v8*v6*v9+v4*v8*v11-v8*v6*v11)(v11)
(v5-v7)(-v5+v9)(-v9+v11)(v11)(v7)
--- ./output-v3,v5,v8,v9,v11,v6,v7,v4 (13 eqs) ---
(-v9+v11)(v6-v4)(v7)
(-v3+v5)(v9-v11)(v7)
(v11)(v3*v6-v5*v4)
(v8)(-v9+v11)(v6-v4)
(-v5*v8*v11+v8*v9*v11-v9*v6*v7+v11*v6*v7+v5*v11*v4-v9*v11*v4
+v9*v7*v4-v11*v7*v4)
(v3-v7)(-v5+v9)(v11)
(-v3*v8*v9+v5*v8*v9+v3*v8*v11-v5*v8*v11-v3*v11*v6-v9*v6*v7
260
C.3 Equation systems after elimination
+v11*v6*v7+v5*v11*v4+v9*v7*v4-v11*v7*v4)
(-v5^2*v8+v3*v8*v9-v3*v8*v11+v5*v8*v11+v3*v11*v6+v5*v6*v7-v11*v6*v7
-v5*v11*v4-v9*v7*v4+v11*v7*v4)
(-v3*v5*v8+v3*v8*v9+v3*v6*v7-v9*v7*v4)
(-v5*v6*v7+v11*v6*v7+v5^2*v4-v5*v9*v4+v9*v7*v4-v11*v7*v4)(v11)
(-v5+v9)(-v9+v11)(v11)(v6-v4)(v4)
(-v5+v9)(v9-v11)(-v5+v7)(v4)(v11)
(v5-v7)(-v5+v9)(-v9+v11)(v11)(v7)
--- ./output-v9,v7,v5,v11,v6,v3,v4,v8 (14 eqs) ---
(-v9+v11)(v6-v4)(v8)
(v5-v3)(-v9+v11)(v8)
(-v9+v5)(v11)(v4-v8)
(v11)(v6*v3-v5*v4)
(-v7*v6*v3+v9*v7*v4-v9*v3*v8+v5*v3*v8)
(-v7*v5*v6+v7*v11*v6-v11*v6*v3+v9*v7*v4-v7*v11*v4+v5*v11*v4
+v5^2*v8-v5*v11*v8-v9*v3*v8+v11*v3*v8)
(-v9*v7*v6+v7*v11*v6-v11*v6*v3+v9*v7*v4-v7*v11*v4+v5*v11*v4
+v9*v5*v8-v5*v11*v8-v9*v3*v8+v11*v3*v8)
(v7-v3)(-v9+v5)(v11)
(v7)(v5-v3)(-v9+v11)
(-v9^2+v5*v11+v9*v3-v11*v3)(-v7*v4+v3*v8)
(v5-v3)(-v7*v5+v7*v11-v9*v3+v5*v3)(v11)
(-v5+v11)(v11)(-v6+v4)(v4-v8)(v8)
(-v5+v11)(v11)(-v5+v3)(v4-v8)(v8)
(-v9+v5)(v5-v3)(-v9+v11)(v11)(v3)
--- ./output-v6,v4,v7,v11,v9,v8,v3,v5 (15 eqs) ---
(-v11+v9)(v8)(v3-v5)
(v7)(-v11+v9)(v3-v5)
(v11)(v6*v3-v4*v5)
(-v6+v4)(v11-v9)(v8)
(v11)(v9-v5)(-v7+v3)
(v11)(v9-v5)(-v4+v8)
(-v4*v7*v9+v6*v7*v3+v9*v8*v3-v8*v3*v5)
(v9-v5)(-v6*v7+v8*v5)
(v6*v7*v11-v4*v7*v11+v6*v7*v3-v6*v11*v3+v11*v8*v3-v6*v7*v5
+v4*v11*v5-v11*v8*v5-v8*v3*v5+v8*v5^2)
(v9)(v8)(v6*v3-v4*v5)
(v9-v5)(-v7*v9+v11*v3)(v3-v5)
(-v6*v7+v8*v5)(v6*v3-v4*v5)
(v11)(-v11+v9)(v9-v5)(v3-v5)(v3)
(v9-v5)(v9)(-v4+v8)(v8)(v3-v5)
(-v6+v4)(v4-v8)(v9)(-v9+v5)(v8)
--- ./output-v6,v4,v7,v11,v9,v8,v5,v3 (16 eqs) ---
(-v11+v9)(v8)(v5-v3)
(v7)(-v11+v9)(v5-v3)
(v11)(v4*v5-v6*v3)
(-v6+v4)(v11-v9)(v8)
(-v7*v11*v9+v7*v9*v5+v7*v11*v3-v7*v9*v3+v11*v9*v3-v11*v5*v3)
(v4*v11*v9-v11*v9*v8+v9*v8*v5-v6*v11*v3+v11*v8*v3-v9*v8*v3)
(v4*v7*v9-v6*v7*v3-v9*v8*v3+v8*v5*v3)
(v9-v5)(-v6*v7+v8*v5)
(v6*v7*v11-v4*v7*v11-v6*v7*v5+v4*v11*v5-v11*v8*v5+v8*v5^2
+v6*v7*v3-v6*v11*v3+v11*v8*v3-v8*v5*v3)
(-v9^2*v8*v5+v9*v8*v5^2+v6*v11*v9*v3-v11*v9*v8*v3+v9^2*v8*v3
-v6*v11*v5*v3+v11*v8*v3^2-v9*v8*v3^2)
(v9)(v8)(v4*v5-v6*v3)
(v7*v9-v11*v3)(-v9+v5)(v5-v3)
(-v6*v7+v8*v5)(-v4*v5+v6*v3)
(v11)(-v11+v9)(-v9+v5)(v5-v3)(v3)
(v11)(-v11+v9)(-v6*v9+v9*v8+v6*v5-v8*v3)(v3)
(v9)(v6*v4*v9-v4^2*v9-v6*v9*v8+v4*v9*v8+v6*v8*v5-v6^2*v3
+v6*v4*v3-v6*v8*v3)(v8)
--- ./output-v7,v4,v6,v9,v3,v8,v11,v5 (17 eqs) ---
(v6*v3-v4*v5)(v11)
(v9-v5)(-v4+v8)(v11)
(v9-v5)(-v7+v3)(v11)
261
Chapter C Remarks on the Gröbner basis method
(v3-v5)(v8)(-v9+v11)
(-v4+v6)(v9-v11)(v8)
(v7)(v3-v5)(-v9+v11)
(v7*v6*v3-v7*v4*v11+v7*v6*v11-v6*v3*v11+v3*v8*v11-v7*v6*v5
-v3*v8*v5+v4*v11*v5-v8*v11*v5+v8*v5^2)
(v9-v5)(-v7*v6+v8*v5)
(-v7*v4*v9+v7*v6*v3+v9*v3*v8-v3*v8*v5)
(-v7*v4+v7*v6+v3*v8-v8*v5)(v11-v5)(v11)
(v8)(v6*v9-v9*v8+v4*v11-v6*v11-v4*v5+v8*v5)(v11)
(v3-v5)(-v9*v3+v7*v11-v7*v5+v3*v5)(v11)
(-v4+v6)(-v7*v6+v8*v5)(v11-v5)
(v3-v5)(-v4+v8)(v8)(v11-v5)(v11)
(-v7+v3)(v3-v5)(v8)(v11-v5)(v11)
(-v4+v6)(-v4+v8)(v8)(-v11+v5)(v11)
(v7)(-v7+v3)(v3-v5)(v11-v5)(v11)
--- ./output-v3,v8,v6,v4,v7,v5,v11,v9 (18 eqs) ---
(-v8+v4)(v5-v9)(v11)
(-v3+v7)(v5-v9)(v11)
(-v6+v4)(v7)(v11-v9)
(v7)(-v3+v5)(v11-v9)
(v8)(-v6+v4)(v11-v9)
(-v3*v6+v4*v5)(v11)
(v3*v8*v11-v3*v6*v11+v6*v7*v11-v4*v7*v11-v8*v5*v11
+v4*v5*v11-v3*v8*v9-v6*v7*v9+v4*v7*v9+v8*v5*v9)
(-v6*v7*v5+v8*v5^2+v3*v8*v11-v3*v6*v11+v6*v7*v11
-v4*v7*v11-v8*v5*v11+v4*v5*v11-v3*v8*v9+v4*v7*v9)
(-v3*v6*v7+v3*v8*v5-v3*v8*v9+v4*v7*v9)
(-v3*v8+v4*v7)(v5-v9)(v9)
(v8)(-v3*v6+v4*v5)(v9)
(v7)(v5-v9)(-v7*v11+v5*v11+v3*v9-v5*v9)
(v5-v9)(-v4*v7*v11+v4*v5*v11+v4*v7*v9-v8*v5*v9)
(-v6+v4)(v5-v9)(v4*v11-v8*v9)
(-v8+v4)(-v4*v7+v8*v5)(v5-v9)(v9)
(v7)(-v3*v4+v4*v7-v8*v5+v4*v5)(v5-v9)(v9)
(-v3+v7)(v7)(-v3+v5)(v5-v9)(v9)
(v8)(-v8+v4)(-v6+v4)(v5-v9)(v9)
--- ./output-v7,v8,v6,v4,v9,v3,v5,v11 (19 eqs) ---
(v6*v3-v4*v5)(v11)
(-v8+v4)(v9-v5)(v11)
(v9-v5)(-v7+v3)(v11)
(v8)(v9-v11)(-v3+v5)
(v7)(v9-v11)(-v3+v5)
(-v7*v6*v3+v7*v6*v5+v8*v3*v5-v8*v5^2-v7*v6*v11+v7*v4*v11
-v8*v3*v11+v6*v3*v11+v8*v5*v11-v4*v5*v11)
(-v7*v4*v9+v7*v6*v3+v8*v9*v3-v8*v3*v5)
(v8)(-v6+v4)(v9-v11)
(v7*v6-v8*v5)(v9-v5)
(-v7*v6+v7*v4-v8*v3+v8*v5)(v5-v11)(v11)
(-v9*v3-v7*v5+v3*v5+v7*v11)(-v3+v5)(v11)
(-v4*v9-v8*v5+v4*v5+v8*v11)(-v3+v5)(v11)
(-v6+v4)(-v4*v9-v8*v5+v4*v5+v8*v11)(v11)
(v7*v6-v8*v5)(-v6+v4)(-v5+v11)
(-v7*v4+v8*v3)(-v3+v5)(v5-v11)(v11)
(v8)(-v8+v4)(-v3+v5)(v5-v11)(v11)
(v8)(-v7+v3)(-v3+v5)(v5-v11)(v11)
(v7)(-v7+v3)(-v3+v5)(v5-v11)(v11)
(v8)(-v8+v4)(-v6+v4)(v5-v11)(v11)
--- ./output-v9,v5,v8,v4,v6,v11,v3,v7 (20 eqs) ---
(v9-v11)(-v4+v6)(v7)
(v5-v3)(-v9+v11)(v7)
(-v9+v5)(v11)(v3-v7)
(v9*v8*v3-v5*v8*v3-v9*v4*v7+v6*v3*v7)
(-v5*v4+v6*v3)(v11)
(v9*v8*v11-v5*v8*v11-v9*v4*v11+v6*v11*v3+v9*v4*v7
-v9*v6*v7-v4*v11*v7+v6*v11*v7)
(v9-v11)(v8)(-v4+v6)
262
C.3 Equation systems after elimination
(v5^2*v8-v5*v8*v11+v5*v4*v11-v5*v8*v3+v8*v11*v3
-v6*v11*v3-v5*v6*v7-v4*v11*v7+v6*v11*v7+v6*v3*v7)
(-v9*v5*v8+v5*v8*v11-v5*v4*v11+v5*v8*v3-v8*v11*v3
+v6*v11*v3+v9*v6*v7+v4*v11*v7-v6*v11*v7-v6*v3*v7)
(v4-v6)(-v5*v8*v3+v8*v11*v3-v4*v11*v7+v6*v3*v7)
(v9*v4^2-v5*v8*v6-v9*v4*v6-v8*v4*v11+v8*v6*v11
+v8*v6*v3-v4*v6*v3+v6^2*v3)(v11)
(v11)(-v5*v6-v4*v11+v6*v11+v6*v3)(v3-v7)(v7)
(-v5+v11)(v11)(-v5+v3)(v3-v7)(v7)
(-v5*v8*v6-v8*v4*v11+v4^2*v11+v8*v6*v11-v4*v6*v11
+v8*v6*v3-v4*v6*v3+v6^2*v3)(v7)(v11)
(v11)(v5*v8*v6*v3+v8*v4*v11*v3-v8*v6*v11*v3
-v8*v6*v3^2-v4^2*v11*v7+v4*v6*v11*v7+v4*v6*v3*v7-v6^2*v3*v7)
(v8)(-v5*v8*v6-v8*v4*v11+v4^2*v11+v8*v6*v11-v4*v6*v11
+v8*v6*v3-v4*v6*v3+v6^2*v3)(v11)
(-v4+v6)(v11)(-v4*v11+v6*v3)(v3-v7)(v7)
(v8-v4)(-v4+v6)(v11)(-v4*v11+v6*v3)(v7)
(-v4+v6)(v11)(-v4*v11+v6*v3)(-v8*v3+v4*v7)
(v8-v4)(v8)(-v4+v6)(v11)(-v4*v11+v6*v3)
--- ./output-v11,v4,v6,v8,v5,v3,v9,v7 (21 eqs) ---
(v11-v9)(-v5+v3)(v7)
(v11-v9)(-v4+v6)(v7)
(-v8*v5*v3+v8*v3*v9+v6*v3*v7-v4*v9*v7)
(-v11*v5*v3+v11*v3*v9+v11*v3*v7-v11*v9*v7+v5*v9*v7-v3*v9*v7)
(-v11*v6*v3+v11*v8*v3+v11*v4*v9-v11*v8*v9+v8*v5*v9-v8*v3*v9)
(-v5+v9)(-v8*v5+v6*v7)
(-v8*v5+v8*v3-v4*v7+v6*v7)(-v11+v9)
(v11*v4*v5-v11*v8*v5+v8*v5^2-v11*v6*v3+v11*v8*v3-v8*v3*v9
-v11*v4*v7+v11*v6*v7-v6*v5*v7+v4*v9*v7)
(v11-v9)(-v4+v6)(v8)
(v4*v5-v6*v3)(v9)(v7)
(v3-v7)(-v11*v3+v11*v9-v5*v9+v3*v9)(v7)
(v8)(v4*v5-v6*v3)(v9)
(-v11*v8*v3^2+v11*v8*v3*v9+v8*v3^2*v9-v8*v3*v9^2+v11*v8*v3*v7
-v11*v8*v9*v7+v8*v5*v9*v7-v6*v3*v9*v7-v8*v3*v9*v7+v4*v9^2*v7)
(-v5+v3)(v3-v7)(-v5+v9)(v9)(v7)
(v3-v7)(-v6*v5+v6*v3-v4*v9+v6*v9)(v9)(v7)
(-v6*v8*v5-v4*v6*v3+v6^2*v3+v6*v8*v3+v4^2*v9-v4*v6*v9
-v4*v8*v9+v6*v8*v9)(v7)(v9)
(v6*v3-v4*v9)(-v8*v3+v4*v7)(v9)
(v8)(-v6*v8*v5-v4*v6*v3+v6^2*v3+v6*v8*v3+v4^2*v9-v4*v6*v9
-v4*v8*v9+v6*v8*v9)(v9)
(-v4+v6)(v3-v7)(-v6*v3+v4*v9)(v9)(v7)
(-v4+v6)(-v4+v8)(-v6*v3+v4*v9)(v9)(v7)
(-v4+v6)(-v4+v8)(v8)(-v6*v3+v4*v9)(v9)
--- ./output-v7,v8,v5,v11,v6,v4,v3,v9 (22 eqs) ---
(-v8*v11*v3+v11*v6*v3-v8*v5*v9+v8*v11*v9-v11*v4*v9+v8*v3*v9)
(-v7*v11*v3+v5*v11*v3-v7*v5*v9+v7*v11*v9+v7*v3*v9-v11*v3*v9)
(-v8*v5*v3+v7*v6*v3-v7*v4*v9+v8*v3*v9)
(v11)(v5*v4-v6*v3)
(v8)(v11-v9)(-v6+v4)
(v7)(v11-v9)(-v6+v4)
(v8*v5*v11-v7*v11*v6+v7*v11*v4-v5*v11*v4-v8*v11*v3
+v11*v6*v3-v8*v5*v9+v7*v6*v9-v7*v4*v9+v8*v3*v9)
(v5-v9)(v11)(-v7+v3)
(-v8*v5^2+v8*v5*v11+v7*v5*v6-v7*v11*v6+v7*v11*v4-v5*v11*v4
-v8*v11*v3+v11*v6*v3-v7*v4*v9+v8*v3*v9)
(v8)(v5*v4-v6*v3)(v9)
(v7)(v5*v4-v6*v3)(v9)
(-v11*v6^2*v3+v11*v6*v4*v3+v8*v5*v6*v9+v11*v6*v4*v9
-v11*v4^2*v9-v8*v6*v3*v9-v8*v6*v9^2+v8*v4*v9^2)
(v11*v3-v7*v9)(-v5*v6+v6*v3+v6*v9-v4*v9)
(v5-v9)(-v5+v3)(v11*v3-v7*v9)
(-v7*v4+v8*v3)(v6*v3-v4*v9)(v9)
(v8)(v8*v5*v6-v8*v6*v3-v6^2*v3+v6*v4*v3
-v8*v6*v9+v8*v4*v9+v6*v4*v9-v4^2*v9)(v9)
263
Chapter C Remarks on the Gröbner basis method
(v7*v8*v5*v6-v7*v8*v6*v3-v7*v6^2*v3+v8*v6*v3^2-v7*v8*v6*v9
+v7*v8*v4*v9+v7*v6*v4*v9-v8*v4*v3*v9)(v9)
(v7)(-v7+v3)(-v5*v6+v6*v3+v6*v9-v4*v9)(v9)
(v7)(v5-v9)(-v7+v3)(-v5+v3)(v9)
(v8-v4)(v8)(v6-v4)(-v6*v3+v4*v9)(v9)
(v8)(v7*v6-v8*v3-v6*v3+v4*v3)(v6*v3-v4*v9)(v9)
(v7^2*v6-v7*v8*v3-v7*v6*v3+v8*v3^2-v7*v4*v9+v8*v3*v9)
(v6*v3-v4*v9)(v9)
--- ./output-v6,v8,v5,v4,v11,v7,v3,v9 (23 eqs) ---
(-v5*v11*v3+v11*v7*v3+v5*v7*v9-v11*v7*v9+v11*v3*v9-v7*v3*v9)
(-v6*v11*v3+v8*v11*v3+v8*v5*v9-v8*v11*v9+v4*v11*v9-v8*v3*v9)
(-v8*v5*v3+v6*v7*v3-v4*v7*v9+v8*v3*v9)
(v11-v9)(v7)(-v5+v3)
(-v6+v4)(v11-v9)(v7)
(v5*v4-v6*v3)(v11)
(-v8*v5*v11+v5*v4*v11+v6*v11*v7-v4*v11*v7-v6*v11*v3
+v8*v11*v3+v8*v5*v9-v6*v7*v9+v4*v7*v9-v8*v3*v9)
(v8)(-v6+v4)(v11-v9)
(-v8*v5^2+v8*v5*v11-v5*v4*v11+v6*v5*v7-v6*v11*v7
+v4*v11*v7+v6*v11*v3-v8*v11*v3-v4*v7*v9+v8*v3*v9)
(v5*v4-v6*v3)(v7)(v9)
(v8)(v5*v4-v6*v3)(v9)
(v7-v3)(v7)(-v11*v3-v5*v9+v11*v9+v3*v9)
(-v4*v11*v7*v3+v8*v11*v3^2-v5*v4*v7*v9+v4*v11*v7*v9
-v8*v11*v3*v9+v6*v7*v3*v9+v4*v7*v3*v9-v8*v3^2*v9-v4*v7*v9^2+v8*v3*v9^2)
(-v8*v11*v7*v3+v8*v11*v3^2-v8*v5*v7*v9-v5*v4*v7*v9+v8*v11*v7*v9
-v8*v11*v3*v9+2*v6*v7*v3*v9+v8*v7*v3*v9-v8*v3^2*v9-v4*v7*v9^2+v8*v3*v9^2)
(v8*v11*v3-v4*v11*v3+v8*v5*v9-v8*v11*v9+v4*v11*v9-v6*v3*v9
-v8*v3*v9+v4*v3*v9)(v8)
(v6*v3-v4*v9)(-v4*v7+v8*v3)(v9)
(v5-v9)(v7)(-v5+v3)(-v7+v3)(v9)
(v7)(-v6*v5+v6*v3+v6*v9-v4*v9)(-v7+v3)(v9)
(v6*v8*v5*v7-v6^2*v7*v3-v6*v8*v7*v3+v6*v8*v3^2-v6*v8*v7*v9
+v6*v4*v7*v9+v8*v4*v7*v9-v8*v4*v3*v9)(v9)
(v8)(v6*v8*v5-v6^2*v3-v6*v8*v3+v6*v4*v3-v6*v8*v9
+v6*v4*v9+v8*v4*v9-v4^2*v9)(v9)
(v6*v7^2-v6*v7*v3-v8*v7*v3+v8*v3^2-v4*v7*v9+v8*v3*v9)(v6*v3-v4*v9)(v9)
(v8)(v6*v7-v6*v3-v8*v3+v4*v3)(v6*v3-v4*v9)(v9)
(v6-v4)(v8-v4)(v8)(-v6*v3+v4*v9)(v9)
--- ./output-v4,v8,v6,v5,v9,v3,v7,v11 (24 eqs) ---
(-v5+v9)(v3-v7)(v11)
(-v8*v5-v4*v9+v8*v9+v6*v3)(v11)
(v4*v5-v6*v3)(v11)
(v9-v11)(-v5+v3)(v7)
(-v4+v6)(v9-v11)(v7)
(-v8*v5*v3+v8*v9*v3-v4*v9*v7+v6*v3*v7)
(-v8*v5*v9+v8*v9*v3-v4*v9*v7+v6*v9*v7-v4*v5*v11+v8*v5*v11
-v8*v3*v11+v6*v3*v11+v4*v7*v11-v6*v7*v11)
(v8)(-v4+v6)(v9-v11)
(v8*v5^2-v8*v9*v3-v6*v5*v7+v4*v9*v7+v4*v5*v11-v8*v5*v11
+v8*v3*v11-v6*v3*v11-v4*v7*v11+v6*v7*v11)
(v4*v9*v3-v6*v3^2-v6*v9*v7+v6*v3*v7-v4*v7*v11+v6*v7*v11)(v11)
(v9-v11)(-v4*v9+v8*v9-v8*v3+v6*v3)(v11)
(v4^2*v9-v8*v6*v9-v4*v6*v3+v8*v6*v3-v4*v8*v11+v8*v6*v11)(v11)
(v9-v3)(-v8*v3+v6*v7)(-v9+v11)
(v9-v11)(-v9+v3)(-v3+v7)(v7)(v11)
(-v6*v9+v6*v3-v4*v11+v6*v11)(-v3+v7)(v7)(v11)
(-v8*v9^2+v6*v9^2+v8*v9*v3-v6*v3^2-v6*v9*v7+v6*v3*v7+v8*v9*v11
-v6*v9*v11+v4*v3*v11-v8*v3*v11-v4*v7*v11+v6*v7*v11)(v7)(v11)
(-v8*v6*v9+v6^2*v9-v4*v6*v3+v8*v6*v3+v4^2*v11-v4*v8*v11
+v8*v6*v11-v6^2*v11)(v7)(v11)
(v8*v6*v9*v3-v8*v6*v3^2-v6^2*v9*v7+v4*v6*v3*v7+v4*v8*v3*v11
-v8*v6*v3*v11-v4^2*v7*v11+v6^2*v7*v11)(v11)
(-v8^2*v9^2+v8*v6*v9^2+v8^2*v9*v3-v8*v6*v3^2-v6^2*v9*v7
+v4*v6*v3*v7+v8^2*v9*v11-v8*v6*v9*v11+v4*v8*v3*v11
-v8^2*v3*v11-v4^2*v7*v11+v6^2*v7*v11)(v11)
264
C.3 Equation systems after elimination
(v8)(-v8*v6*v9+v6^2*v9-v4*v6*v3+v8*v6*v3+v4^2*v11
-v4*v8*v11+v8*v6*v11-v6^2*v11)(v11)
(-v4+v6)(v6*v3-v4*v11)(-v3+v7)(v7)(v11)
(-v4+v8)(-v4+v6)(v7)(-v6*v3+v4*v11)(v11)
(v8)(-v4+v6)(v6*v3-v4*v11)(-v3+v7)(v11)
(-v4+v8)(v8)(-v4+v6)(-v6*v3+v4*v11)(v11)
--- ./output-v4,v8,v5,v6,v11,v9,v3,v7 (25 eqs) ---
(v5-v3)(-v11+v9)(v7)
(-v4+v6)(v11-v9)(v7)
(-v5*v11*v3+v11*v9*v3+v5*v9*v7-v11*v9*v7+v11*v3*v7-v9*v3*v7)
(-v8*v5*v3+v8*v9*v3-v4*v9*v7+v6*v3*v7)
(-v8*v5*v9-v4*v11*v9+v8*v11*v9-v8*v11*v3+v6*v11*v3+v8*v9*v3)
(-v11+v9)(-v8*v5+v8*v3-v4*v7+v6*v7)
(-v4*v5*v11+v8*v5*v11-v8*v5*v9-v8*v11*v3+v6*v11*v3
+v8*v9*v3+v4*v11*v7-v6*v11*v7-v4*v9*v7+v6*v9*v7)
(v8)(-v4+v6)(v11-v9)
(v8*v5^2+v4*v5*v11-v8*v5*v11+v8*v11*v3-v6*v11*v3
-v8*v9*v3-v5*v6*v7-v4*v11*v7+v6*v11*v7+v4*v9*v7)
(-v5*v9+v11*v9-v11*v3+v9*v3)(v3-v7)(v7)
(-v4*v5+v6*v3)(v9)(v7)
(-v11+v9)(v9-v3)(-v8*v3+v6*v7)
(-v4*v11*v9*v3+v8*v11*v9*v3-v8*v9^2*v3-v8*v11*v3^2
+v6*v11*v3^2+v8*v9*v3^2+v4*v9^2*v7-v6*v9*v3*v7)
(-v11+v9)(-v4*v11*v9+v8*v11*v9-v8*v11*v3+v6*v11*v3
-v8*v9*v3+v8*v3^2+v6*v9*v7-v6*v3*v7)
(v4^2*v11*v9-v8*v6*v11*v9-v4*v8*v9^2+v8*v6*v9^2
-v4*v6*v11*v3+v8*v6*v11*v3)
(v11)(-v11+v9)(-v9+v3)(v3-v7)(v7)
(-v6*v11*v9-v4*v9^2+v6*v9^2+v6*v11*v3)(v3-v7)(v7)
(-v8*v11^2*v9+v6*v11^2*v9+v8*v11*v9^2-v6*v11*v9^2
+v8*v11^2*v3-v6*v11^2*v3-v4*v9^2*v3-v8*v9^2*v3+v6*v9^2*v3
-v8*v11*v3^2+v6*v11*v3^2+v8*v9*v3^2+v4*v9^2*v7-v6*v9*v3*v7)(v7)
(v8*v6*v11*v9-v6^2*v11*v9-v4^2*v9^2+v4*v8*v9^2-v8*v6*v9^2
+v6^2*v9^2-v8*v6*v11*v3+v6^2*v11*v3+v4*v6*v9*v3-v6^2*v9*v3)(v7)
(v4*v9-v6*v3)(v9)(-v8*v3+v4*v7)
(-v8^2*v11^2*v9+v8*v6*v11^2*v9+v8^2*v11*v9^2-v8*v6*v11*v9^2
+v8^2*v11^2*v3-v8*v6*v11^2*v3-v8^2*v9^2*v3+v8*v6*v9^2*v3
-v8^2*v11*v3^2+v8*v6*v11*v3^2+v8^2*v9*v3^2-v8*v6*v9*v3^2
-v4^2*v9^2*v7+v4*v8*v9^2*v7+v4*v6*v9*v3*v7-v8*v6*v9*v3*v7)
(v8)(v8*v6*v11*v9-v6^2*v11*v9-v4^2*v9^2+v4*v8*v9^2
-v8*v6*v9^2+v6^2*v9^2-v8*v6*v11*v3+v6^2*v11*v3+v4*v6*v9*v3-v6^2*v9*v3)
(-v4+v6)(v9)(-v4*v9+v6*v3)(v3-v7)(v7)
(-v4+v8)(-v4+v6)(v9)(-v4*v9+v6*v3)(v7)
(-v4+v8)(v8)(-v4+v6)(v9)(-v4*v9+v6*v3)
After some investigation one can find two occurences of the collinearity conditions
among the equation sets for 15 and 16 equations.
C.3.6.1. “Good” permutations for achieving the collinearity conditions
12468735
12486735
12487365
12487635
12573846
12578346
12578436
12578463
12587346
12587436
12587463
12648735
12678345
12678354
12678435
12684735
12687345
12687354
12687435
12735846
12738456
12738546
12753846
12758346
12758436
12758463
12768345
12768354
12768435
12783456
12783465
12783546
12783645
12783654
12784356
12784365
12784536
12784563
12784635
12785346
12785436
12785463
12786345
12786354
12786435
12846735
12847365
12847635
12857346
12857436
12857463
12864735
12867345
12867354
12867435
12873456
12873465
12873546
12873645
12873654
12874356
12874365
12874536
12874563
12874635
12875346
12875436
12875463
12876345
12876354
12876435
14267853
14268753
14276853
14278653
14286753
14287653
14627853
14628753
14672853
14678253
14678523
14678532
14682753
14687253
14687523
14687532
14726853
14728653
14762853
14768253
14768523
14768532
14782653
14786253
14786523
14786532
14826753
14827653
14862753
14867253
14867523
14867532
14872653
14876253
14876523
14876532
15273846
15278346
15278436
15278463
15287346
15287436
15287463
15678423
15678432
15687342
15687423
15687432
15723846
15728346
15728436
15728463
15732846
15738246
15768423
15768432
15782346
15782436
15782463
15783246
15786423
15786432
15827346
15827436
15827463
15867342
15867423
15867432
15872346
15872436
15872463
15873246
15873642
15876342
15876423
15876432
16248735
16278345
16278354
16278435
16284735
16287345
16287354
16287435
16427853
16428753
16472853
16478253
16478523
16478532
16482753
16487253
16487523
16487532
16578423
16578432
16587342
16587423
16587432
265
Chapter C Remarks on the Gröbner basis method
16728345
16728354
16728435
16742853
16748253
16748523
16748532
16758423
16758432
16782345
16782354
16782435
16783245
16783254
16783524
16784253
16784523
16784532
16785423
16785432
16824735
16827345
16827354
16827435
16842753
16847253
16847523
16847532
16857342
16857423
16857432
16872345
16872354
16872435
16873245
16873254
16873524
16874253
16874523
16874532
16875342
16875423
16875432
17235846
17238456
17238546
17253846
17258346
17258436
17258463
17268345
17268354
17268435
17283456
17283465
17283546
17283645
17283654
17284356
17284365
17284536
17284563
17284635
17285346
17285436
17285463
17286345
17286354
17286435
17325846
17328456
17328546
17352846
17358246
17382456
17382546
17385246
17426853
17428653
17462853
17468253
17468523
17468532
17482653
17486253
17486523
17486532
17523846
17528346
17528436
17528463
17532846
17538246
17568423
17568432
17582346
17582436
17582463
17583246
17586423
17586432
17628345
17628354
17628435
17642853
17648253
17648523
17648532
17658423
17658432
17682345
17682354
17682435
17683245
17683254
17683524
17684253
17684523
17684532
17685423
17685432
17823456
17823465
17823546
17823645
17823654
17824356
17824365
17824536
17824563
17824635
17825346
17825436
17825463
17826345
17826354
17826435
17832456
17832465
17832546
17832645
17832654
17835246
17836245
17836254
17836524
17842653
17846253
17846523
17846532
17852346
17852436
17852463
17853246
17856423
17856432
17862345
17862354
17862435
17863245
17863254
17863524
17864253
17864523
17864532
17865423
17865432
18246735
18247365
18247635
18257346
18257436
18257463
18264735
18267345
18267354
18267435
18273456
18273465
18273546
18273645
18273654
18274356
18274365
18274536
18274563
18274635
18275346
18275436
18275463
18276345
18276354
18276435
18426753
18427653
18462753
18467253
18467523
18467532
18472653
18476253
18476523
18476532
18527346
18527436
18527463
18567342
18567423
18567432
18572346
18572436
18572463
18573246
18573642
18576342
18576423
18576432
18624735
18627345
18627354
18627435
18642753
18647253
18647523
18647532
18657342
18657423
18657432
18672345
18672354
18672435
18673245
18673254
18673524
18674253
18674523
18674532
18675342
18675423
18675432
18723456
18723465
18723546
18723645
18723654
18724356
18724365
18724536
18724563
18724635
18725346
18725436
18725463
18726345
18726354
18726435
18732456
18732465
18732546
18732645
18732654
18735246
18735642
18736245
18736254
18736524
18742653
18746253
18746523
18746532
18752346
18752436
18752463
18753246
18753642
18756342
18756423
18756432
18762345
18762354
18762435
18763245
18763254
18763524
18764253
18764523
18764532
18765342
18765423
18765432
21468735
21486735
21487365
21487635
21573846
21578346
21578436
21578463
21587346
21587436
21587463
21648735
21678345
21678354
21678435
21684735
21687345
21687354
21687435
21735846
21738456
21738546
21753846
21758346
21758436
21758463
21768345
21768354
21768435
21783456
21783465
21783546
21783645
21783654
21784356
21784365
21784536
21784563
21784635
21785346
21785436
21785463
21786345
21786354
21786435
21846735
21847365
21847635
21857346
21857436
21857463
21864735
21867345
21867354
21867435
21873456
21873465
21873546
21873645
21873654
21874356
21874365
21874536
21874563
21874635
21875346
21875436
21875463
21876345
21876354
21876435
24168735
24186735
24187365
24187635
24567813
24568713
24576813
24578136
24578163
24578613
24586713
24587136
24587163
24587613
24618735
24657831
24658731
24675831
24678135
24678531
24681735
24685731
24687135
24687531
24756813
24758136
24758163
24758613
24765831
24768135
24768531
24781356
24781365
24781536
24781563
24781635
24785136
24785163
24785613
24786135
24786531
24816735
24817365
24817635
24856713
24857136
24857163
24857613
24861735
24865731
24867135
24867531
24871356
24871365
24871536
24871563
24871635
24875136
24875163
24875613
24876135
24876531
25173846
25178346
25178436
25178463
25187346
25187436
25187463
25467813
25468713
25476813
25478136
25478163
25478613
25486713
25487136
25487163
25487613
25647831
25648731
25674831
25678314
25678341
25678431
25684731
25687314
25687341
25687431
25713846
25718346
25718436
25718463
25746813
25748136
25748163
25748613
25764831
25768314
25768341
25768431
25781346
25781436
25781463
25783164
25783614
25783641
25784136
25784163
25784613
25786314
25786341
25786431
25817346
25817436
25817463
25846713
25847136
25847163
25847613
25864731
25867314
25867341
25867431
25871346
25871436
25871463
25873164
25873614
25873641
25874136
25874163
25874613
25876314
25876341
25876431
26148735
26178345
26178354
26178435
26184735
26187345
26187354
26187435
26418735
26457831
26458731
26475831
26478135
26478531
26481735
26485731
26487135
26487531
26547831
26548731
26574831
26578314
26578341
26578431
26584731
26587314
26587341
26587431
26718345
26718354
26718435
26745831
26748135
26748531
26754831
26758314
26758341
26758431
26781345
26781354
26781435
26784135
26784531
26785314
26785341
26785431
26814735
26817345
26817354
26817435
26841735
26845731
26847135
26847531
26854731
26857314
26857341
26857431
26871345
26871354
26871435
26874135
26874531
26875314
26875341
26875431
27135846
27138456
27138546
27153846
27158346
27158436
27158463
27168345
27168354
27168435
27183456
27183465
27183546
27183645
27183654
27184356
27184365
27184536
27184563
27184635
27185346
27185436
27185463
27186345
27186354
27186435
27456813
27458136
27458163
27458613
27465831
27468135
27468531
27481356
27481365
27481536
27481563
27481635
27485136
27485163
27485613
27486135
27486531
27513846
27518346
27518436
27518463
27546813
27548136
27548163
27548613
27564831
27568314
27568341
27568431
27581346
27581436
27581463
27583164
27583614
27583641
27584136
27584163
27584613
27586314
27586341
27586431
27618345
27618354
27618435
27645831
27648135
27648531
27654831
27658314
27658341
27658431
27681345
27681354
27681435
27684135
27684531
27685314
27685341
27685431
27813456
27813465
27813546
27813645
27813654
27814356
27814365
27814536
27814563
27814635
27815346
27815436
27815463
27816345
27816354
27816435
27831564
27835164
27835614
27835641
27841356
27841365
27841536
27841563
27841635
27845136
27845163
27845613
27846135
27846531
27851346
27851436
27851463
27853164
27853614
27853641
27854136
27854163
27854613
27856314
27856341
27856431
27861345
27861354
27861435
27864135
27864531
27865314
27865341
27865431
28146735
28147365
28147635
28157346
28157436
28157463
28164735
28167345
28167354
28167435
28173456
28173465
28173546
28173645
28173654
28174356
28174365
28174536
28174563
28174635
28175346
28175436
28175463
28176345
28176354
28176435
28416735
28417365
28417635
28456713
28457136
28457163
28457613
28461735
28465731
28467135
28467531
28471356
28471365
28471536
28471563
28471635
28475136
28475163
28475613
28476135
28476531
28517346
28517436
28517463
28546713
28547136
28547163
28547613
28564731
28567314
28567341
28567431
28571346
28571436
28571463
28573164
28573614
28573641
28574136
28574163
28574613
28576314
28576341
28576431
28614735
28617345
28617354
28617435
28641735
28645731
28647135
28647531
28654731
28657314
28657341
28657431
28671345
28671354
28671435
28674135
28674531
28675314
28675341
28675431
28713456
28713465
28713546
28713645
28713654
28714356
28714365
28714536
28714563
28714635
28715346
28715436
28715463
28716345
28716354
28716435
28731564
28735164
28735614
28735641
28741356
28741365
28741536
28741563
28741635
28745136
28745163
28745613
28746135
28746531
28751346
28751436
28751463
28753164
28753614
28753641
28754136
28754163
28754613
28756314
28756341
28756431
28761345
28761354
28761435
28764135
28764531
28765314
28765341
28765431
41267853
41268753
41276853
41278653
41286753
41287653
41627853
41628753
41672853
41678253
41678523
41678532
41682753
41687253
41687523
41687532
41726853
41728653
41762853
41768253
41768523
41768532
41782653
41786253
41786523
41786532
41826753
41827653
41862753
41867253
41867523
41867532
41872653
41876253
41876523
41876532
42168735
42186735
42187365
42187635
42567813
42568713
42576813
42578136
42578163
42578613
42586713
42587136
42587163
42587613
42618735
42657831
42658731
42675831
42678135
42678531
42681735
42685731
42687135
42687531
42756813
42758136
266
C.3 Equation systems after elimination
42758163
42758613
42765831
42768135
42768531
42781356
42781365
42781536
42781563
42781635
42785136
42785163
42785613
42786135
42786531
42816735
42817365
42817635
42856713
42857136
42857163
42857613
42861735
42865731
42867135
42867531
42871356
42871365
42871536
42871563
42871635
42875136
42875163
42875613
42876135
42876531
45267813
45268713
45276813
45278136
45278163
45278613
45286713
45287136
45287163
45287613
45627813
45628713
45672813
45678213
45682713
45687213
45726813
45728136
45728163
45728613
45762813
45768213
45782136
45782163
45782613
45786213
45826713
45827136
45827163
45827613
45862713
45867213
45872136
45872163
45872613
45876213
46127853
46128753
46172853
46178253
46178523
46178532
46182753
46187253
46187523
46187532
46218735
46257831
46258731
46275831
46278135
46278531
46281735
46285731
46287135
46287531
46527831
46528731
46572831
46578231
46578321
46582731
46587231
46587321
46712853
46718253
46718523
46718532
46725831
46728135
46728531
46752831
46758231
46758312
46758321
46781253
46781523
46781532
46782135
46782531
46785123
46785132
46785231
46785312
46785321
46812753
46817253
46817523
46817532
46821735
46825731
46827135
46827531
46852731
46857231
46857321
46871253
46871523
46871532
46872135
46872531
46875123
46875132
46875231
46875312
46875321
47126853
47128653
47162853
47168253
47168523
47168532
47182653
47186253
47186523
47186532
47256813
47258136
47258163
47258613
47265831
47268135
47268531
47281356
47281365
47281536
47281563
47281635
47285136
47285163
47285613
47286135
47286531
47526813
47528136
47528163
47528613
47562813
47568213
47582136
47582163
47582613
47586213
47612853
47618253
47618523
47618532
47625831
47628135
47628531
47652831
47658231
47658312
47658321
47681253
47681523
47681532
47682135
47682531
47685123
47685132
47685231
47685312
47685321
47812653
47816253
47816523
47816532
47821356
47821365
47821536
47821563
47821635
47825136
47825163
47825613
47826135
47826531
47852136
47852163
47852613
47856213
47861253
47861523
47861532
47862135
47862531
47865123
47865132
47865231
47865312
47865321
48126753
48127653
48162753
48167253
48167523
48167532
48172653
48176253
48176523
48176532
48216735
48217365
48217635
48256713
48257136
48257163
48257613
48261735
48265731
48267135
48267531
48271356
48271365
48271536
48271563
48271635
48275136
48275163
48275613
48276135
48276531
48526713
48527136
48527163
48527613
48562713
48567213
48572136
48572163
48572613
48576213
48612753
48617253
48617523
48617532
48621735
48625731
48627135
48627531
48652731
48657231
48657321
48671253
48671523
48671532
48672135
48672531
48675123
48675132
48675231
48675312
48675321
48712653
48716253
48716523
48716532
48721356
48721365
48721536
48721563
48721635
48725136
48725163
48725613
48726135
48726531
48752136
48752163
48752613
48756213
48761253
48761523
48761532
48762135
48762531
48765123
48765132
48765231
48765312
48765321
51273846
51278346
51278436
51278463
51287346
51287436
51287463
51678423
51678432
51687342
51687423
51687432
51723846
51728346
51728436
51728463
51732846
51738246
51768423
51768432
51782346
51782436
51782463
51783246
51786423
51786432
51827346
51827436
51827463
51867342
51867423
51867432
51872346
51872436
51872463
51873246
51873642
51876342
51876423
51876432
52173846
52178346
52178436
52178463
52187346
52187436
52187463
52467813
52468713
52476813
52478136
52478163
52478613
52486713
52487136
52487163
52487613
52647831
52648731
52674831
52678314
52678341
52678431
52684731
52687314
52687341
52687431
52713846
52718346
52718436
52718463
52746813
52748136
52748163
52748613
52764831
52768314
52768341
52768431
52781346
52781436
52781463
52783164
52783614
52783641
52784136
52784163
52784613
52786314
52786341
52786431
52817346
52817436
52817463
52846713
52847136
52847163
52847613
52864731
52867314
52867341
52867431
52871346
52871436
52871463
52873164
52873614
52873641
52874136
52874163
52874613
52876314
52876341
52876431
54267813
54268713
54276813
54278136
54278163
54278613
54286713
54287136
54287163
54287613
54627813
54628713
54672813
54678213
54682713
54687213
54726813
54728136
54728163
54728613
54762813
54768213
54782136
54782163
54782613
54786213
54826713
54827136
54827163
54827613
54862713
54867213
54872136
54872163
54872613
54876213
56178423
56178432
56187342
56187423
56187432
56247831
56248731
56274831
56278314
56278341
56278431
56284731
56287314
56287341
56287431
56427831
56428731
56472831
56478231
56478321
56482731
56487231
56487321
56718423
56718432
56724831
56728314
56728341
56728431
56742831
56748231
56748312
56748321
56781342
56781423
56781432
56782314
56782341
56782431
56783142
56783214
56783241
56783412
56783421
56784123
56784132
56784231
56784312
56784321
56817342
56817423
56817432
56824731
56827314
56827341
56827431
56842731
56847231
56847321
56871342
56871423
56871432
56872314
56872341
56872431
56873142
56873214
56873241
56873412
56873421
56874123
56874132
56874231
56874312
56874321
57123846
57128346
57128436
57128463
57132846
57138246
57168423
57168432
57182346
57182436
57182463
57183246
57186423
57186432
57213846
57218346
57218436
57218463
57246813
57248136
57248163
57248613
57264831
57268314
57268341
57268431
57281346
57281436
57281463
57283164
57283614
57283641
57284136
57284163
57284613
57286314
57286341
57286431
57312846
57318246
57381246
57426813
57428136
57428163
57428613
57462813
57468213
57482136
57482163
57482613
57486213
57618423
57618432
57624831
57628314
57628341
57628431
57642831
57648231
57648312
57648321
57681342
57681423
57681432
57682314
57682341
57682431
57683142
57683214
57683241
57683412
57683421
57684123
57684132
57684231
57684312
57684321
57812346
57812436
57812463
57813246
57813642
57816342
57816423
57816432
57821346
57821436
57821463
57823164
57823614
57823641
57824136
57824163
57824613
57826314
57826341
57826431
57831246
57831642
57832164
57832614
57832641
57836142
57836214
57836241
57836412
57836421
57842136
57842163
57842613
57846213
57861342
57861423
57861432
57862314
57862341
57862431
57863142
57863214
57863241
57863412
57863421
57864123
57864132
57864231
57864312
57864321
58127346
58127436
58127463
58167342
58167423
58167432
58172346
58172436
58172463
58173246
58173642
58176342
58176423
58176432
58217346
58217436
58217463
58246713
58247136
58247163
58247613
58264731
58267314
58267341
58267431
58271346
58271436
58271463
58273164
58273614
58273641
58274136
58274163
58274613
58276314
58276341
58276431
58426713
58427136
58427163
58427613
58462713
58467213
58472136
58472163
58472613
58476213
58617342
58617423
58617432
58624731
58627314
58627341
58627431
58642731
58647231
58647321
58671342
58671423
58671432
58672314
58672341
58672431
58673142
58673214
58673241
58673412
58673421
58674123
58674132
58674231
58674312
58674321
58712346
58712436
58712463
58713246
58713642
58716342
58716423
58716432
58721346
58721436
58721463
58723164
58723614
58723641
58724136
58724163
58724613
58726314
58726341
58726431
58731246
58731642
58732164
58732614
58732641
58736142
58736214
58736241
58736412
58736421
58742136
58742163
58742613
58746213
58761342
58761423
58761432
58762314
58762341
58762431
58763142
58763214
58763241
58763412
58763421
58764123
58764132
58764231
58764312
58764321
61248735
61278345
61278354
61278435
61284735
61287345
61287354
61287435
61427853
61428753
61472853
61478253
61478523
61478532
61482753
61487253
61487523
61487532
61578423
61578432
61587342
61587423
61587432
61728345
61728354
61728435
61742853
61748253
61748523
61748532
61758423
61758432
61782345
61782354
61782435
61783245
61783254
61783524
61784253
61784523
61784532
61785423
61785432
61824735
61827345
61827354
61827435
61842753
61847253
61847523
61847532
61857342
61857423
61857432
61872345
61872354
61872435
61873245
61873254
61873524
61874253
61874523
61874532
61875342
61875423
61875432
62148735
62178345
62178354
62178435
62184735
62187345
62187354
62187435
62418735
62457831
62458731
62475831
62478135
62478531
62481735
62485731
62487135
62487531
62547831
62548731
62574831
62578314
62578341
62578431
62584731
62587314
62587341
62587431
62718345
62718354
62718435
62745831
62748135
62748531
62754831
62758314
62758341
62758431
62781345
62781354
62781435
267
Chapter C Remarks on the Gröbner basis method
62784135
62784531
62785314
62785341
62785431
62814735
62817345
62817354
62817435
62841735
62845731
62847135
62847531
62854731
62857314
62857341
62857431
62871345
62871354
62871435
62874135
62874531
62875314
62875341
62875431
64127853
64128753
64172853
64178253
64178523
64178532
64182753
64187253
64187523
64187532
64218735
64257831
64258731
64275831
64278135
64278531
64281735
64285731
64287135
64287531
64527831
64528731
64572831
64578231
64578321
64582731
64587231
64587321
64712853
64718253
64718523
64718532
64725831
64728135
64728531
64752831
64758231
64758312
64758321
64781253
64781523
64781532
64782135
64782531
64785123
64785132
64785231
64785312
64785321
64812753
64817253
64817523
64817532
64821735
64825731
64827135
64827531
64852731
64857231
64857321
64871253
64871523
64871532
64872135
64872531
64875123
64875132
64875231
64875312
64875321
65178423
65178432
65187342
65187423
65187432
65247831
65248731
65274831
65278314
65278341
65278431
65284731
65287314
65287341
65287431
65427831
65428731
65472831
65478231
65478321
65482731
65487231
65487321
65718423
65718432
65724831
65728314
65728341
65728431
65742831
65748231
65748312
65748321
65781342
65781423
65781432
65782314
65782341
65782431
65783142
65783214
65783241
65783412
65783421
65784123
65784132
65784231
65784312
65784321
65817342
65817423
65817432
65824731
65827314
65827341
65827431
65842731
65847231
65847321
65871342
65871423
65871432
65872314
65872341
65872431
65873142
65873214
65873241
65873412
65873421
65874123
65874132
65874231
65874312
65874321
67128345
67128354
67128435
67142853
67148253
67148523
67148532
67158423
67158432
67182345
67182354
67182435
67183245
67183254
67183524
67184253
67184523
67184532
67185423
67185432
67218345
67218354
67218435
67245831
67248135
67248531
67254831
67258314
67258341
67258431
67281345
67281354
67281435
67284135
67284531
67285314
67285341
67285431
67412853
67418253
67418523
67418532
67425831
67428135
67428531
67452831
67458231
67458312
67458321
67481253
67481523
67481532
67482135
67482531
67485123
67485132
67485231
67485312
67485321
67518423
67518432
67524831
67528314
67528341
67528431
67542831
67548231
67548312
67548321
67581342
67581423
67581432
67582314
67582341
67582431
67583142
67583214
67583241
67583412
67583421
67584123
67584132
67584231
67584312
67584321
67812345
67812354
67812435
67813245
67813254
67813524
67814253
67814523
67814532
67815342
67815423
67815432
67821345
67821354
67821435
67824135
67824531
67825314
67825341
67825431
67841253
67841523
67841532
67842135
67842531
67845123
67845132
67845231
67845312
67845321
67851342
67851423
67851432
67852314
67852341
67852431
67853142
67853214
67853241
67853412
67853421
67854123
67854132
67854231
67854312
67854321
68124735
68127345
68127354
68127435
68142753
68147253
68147523
68147532
68157342
68157423
68157432
68172345
68172354
68172435
68173245
68173254
68173524
68174253
68174523
68174532
68175342
68175423
68175432
68214735
68217345
68217354
68217435
68241735
68245731
68247135
68247531
68254731
68257314
68257341
68257431
68271345
68271354
68271435
68274135
68274531
68275314
68275341
68275431
68412753
68417253
68417523
68417532
68421735
68425731
68427135
68427531
68452731
68457231
68457321
68471253
68471523
68471532
68472135
68472531
68475123
68475132
68475231
68475312
68475321
68517342
68517423
68517432
68524731
68527314
68527341
68527431
68542731
68547231
68547321
68571342
68571423
68571432
68572314
68572341
68572431
68573142
68573214
68573241
68573412
68573421
68574123
68574132
68574231
68574312
68574321
68712345
68712354
68712435
68713245
68713254
68713524
68714253
68714523
68714532
68715342
68715423
68715432
68721345
68721354
68721435
68724135
68724531
68725314
68725341
68725431
68731245
68731254
68731524
68735124
68741253
68741523
68741532
68742135
68742531
68745123
68745132
68745231
68745312
68745321
68751342
68751423
68751432
68752314
68752341
68752431
68753142
68753214
68753241
68753412
68753421
68754123
68754132
68754231
68754312
68754321
71235846
71238456
71238546
71253846
71258346
71258436
71258463
71268345
71268354
71268435
71283456
71283465
71283546
71283645
71283654
71284356
71284365
71284536
71284563
71284635
71285346
71285436
71285463
71286345
71286354
71286435
71325846
71328456
71328546
71352846
71358246
71382456
71382546
71385246
71426853
71428653
71462853
71468253
71468523
71468532
71482653
71486253
71486523
71486532
71523846
71528346
71528436
71528463
71532846
71538246
71568423
71568432
71582346
71582436
71582463
71583246
71586423
71586432
71628345
71628354
71628435
71642853
71648253
71648523
71648532
71658423
71658432
71682345
71682354
71682435
71683245
71683254
71683524
71684253
71684523
71684532
71685423
71685432
71823456
71823465
71823546
71823645
71823654
71824356
71824365
71824536
71824563
71824635
71825346
71825436
71825463
71826345
71826354
71826435
71832456
71832465
71832546
71832645
71832654
71835246
71836245
71836254
71836524
71842653
71846253
71846523
71846532
71852346
71852436
71852463
71853246
71856423
71856432
71862345
71862354
71862435
71863245
71863254
71863524
71864253
71864523
71864532
71865423
71865432
72135846
72138456
72138546
72153846
72158346
72158436
72158463
72168345
72168354
72168435
72183456
72183465
72183546
72183645
72183654
72184356
72184365
72184536
72184563
72184635
72185346
72185436
72185463
72186345
72186354
72186435
72456813
72458136
72458163
72458613
72465831
72468135
72468531
72481356
72481365
72481536
72481563
72481635
72485136
72485163
72485613
72486135
72486531
72513846
72518346
72518436
72518463
72546813
72548136
72548163
72548613
72564831
72568314
72568341
72568431
72581346
72581436
72581463
72583164
72583614
72583641
72584136
72584163
72584613
72586314
72586341
72586431
72618345
72618354
72618435
72645831
72648135
72648531
72654831
72658314
72658341
72658431
72681345
72681354
72681435
72684135
72684531
72685314
72685341
72685431
72813456
72813465
72813546
72813645
72813654
72814356
72814365
72814536
72814563
72814635
72815346
72815436
72815463
72816345
72816354
72816435
72831564
72835164
72835614
72835641
72841356
72841365
72841536
72841563
72841635
72845136
72845163
72845613
72846135
72846531
72851346
72851436
72851463
72853164
72853614
72853641
72854136
72854163
72854613
72856314
72856341
72856431
72861345
72861354
72861435
72864135
72864531
72865314
72865341
72865431
73125846
73128456
73128546
73152846
73158246
73182456
73182546
73185246
73512846
73518246
73581246
73812456
73812546
73815246
73851246
74126853
74128653
74162853
74168253
74168523
74168532
74182653
74186253
74186523
74186532
74256813
74258136
74258163
74258613
74265831
74268135
74268531
74281356
74281365
74281536
74281563
74281635
74285136
74285163
74285613
74286135
74286531
74526813
74528136
74528163
74528613
74562813
74568213
74582136
74582163
74582613
74586213
74612853
74618253
74618523
74618532
74625831
74628135
74628531
74652831
74658231
74658312
74658321
74681253
74681523
74681532
74682135
74682531
74685123
74685132
74685231
74685312
74685321
74812653
74816253
74816523
74816532
74821356
74821365
74821536
74821563
74821635
74825136
74825163
74825613
74826135
74826531
74852136
74852163
74852613
74856213
74861253
74861523
74861532
74862135
74862531
74865123
74865132
74865231
74865312
74865321
75123846
75128346
75128436
75128463
75132846
75138246
75168423
75168432
75182346
75182436
75182463
75183246
75186423
75186432
75213846
75218346
75218436
75218463
75246813
75248136
75248163
75248613
75264831
75268314
75268341
75268431
75281346
75281436
75281463
75283164
75283614
75283641
75284136
75284163
75284613
75286314
75286341
75286431
75312846
75318246
75381246
75426813
75428136
75428163
75428613
75462813
75468213
75482136
75482163
75482613
75486213
75618423
75618432
75624831
75628314
75628341
75628431
75642831
75648231
75648312
75648321
75681342
75681423
75681432
75682314
75682341
75682431
75683142
75683214
75683241
75683412
75683421
75684123
75684132
75684231
75684312
75684321
75812346
75812436
75812463
75813246
75813642
75816342
75816423
75816432
75821346
75821436
75821463
75823164
75823614
75823641
75824136
75824163
75824613
75826314
75826341
75826431
75831246
75831642
268
C.3 Equation systems after elimination
75832164
75832614
75832641
75836142
75836214
75836241
75836412
75836421
75842136
75842163
75842613
75846213
75861342
75861423
75861432
75862314
75862341
75862431
75863142
75863214
75863241
75863412
75863421
75864123
75864132
75864231
75864312
75864321
76128345
76128354
76128435
76142853
76148253
76148523
76148532
76158423
76158432
76182345
76182354
76182435
76183245
76183254
76183524
76184253
76184523
76184532
76185423
76185432
76218345
76218354
76218435
76245831
76248135
76248531
76254831
76258314
76258341
76258431
76281345
76281354
76281435
76284135
76284531
76285314
76285341
76285431
76412853
76418253
76418523
76418532
76425831
76428135
76428531
76452831
76458231
76458312
76458321
76481253
76481523
76481532
76482135
76482531
76485123
76485132
76485231
76485312
76485321
76518423
76518432
76524831
76528314
76528341
76528431
76542831
76548231
76548312
76548321
76581342
76581423
76581432
76582314
76582341
76582431
76583142
76583214
76583241
76583412
76583421
76584123
76584132
76584231
76584312
76584321
76812345
76812354
76812435
76813245
76813254
76813524
76814253
76814523
76814532
76815342
76815423
76815432
76821345
76821354
76821435
76824135
76824531
76825314
76825341
76825431
76841253
76841523
76841532
76842135
76842531
76845123
76845132
76845231
76845312
76845321
76851342
76851423
76851432
76852314
76852341
76852431
76853142
76853214
76853241
76853412
76853421
76854123
76854132
76854231
76854312
76854321
78123456
78123465
78123546
78123645
78123654
78124356
78124365
78124536
78124563
78124635
78125346
78125436
78125463
78126345
78126354
78126435
78132456
78132465
78132546
78132645
78132654
78135246
78135642
78136245
78136254
78136524
78142653
78146253
78146523
78146532
78152346
78152436
78152463
78153246
78153642
78156342
78156423
78156432
78162345
78162354
78162435
78163245
78163254
78163524
78164253
78164523
78164532
78165342
78165423
78165432
78213456
78213465
78213546
78213645
78213654
78214356
78214365
78214536
78214563
78214635
78215346
78215436
78215463
78216345
78216354
78216435
78231564
78235164
78235614
78235641
78241356
78241365
78241536
78241563
78241635
78245136
78245163
78245613
78246135
78246531
78251346
78251436
78251463
78253164
78253614
78253641
78254136
78254163
78254613
78256314
78256341
78256431
78261345
78261354
78261435
78264135
78264531
78265314
78265341
78265431
78312456
78312465
78312546
78312645
78312654
78315246
78315642
78321564
78325164
78325614
78325641
78351246
78351642
78352164
78352614
78352641
78356142
78356214
78356241
78356412
78356421
78412653
78416253
78416523
78416532
78421356
78421365
78421536
78421563
78421635
78425136
78425163
78425613
78426135
78426531
78452136
78452163
78452613
78456213
78461253
78461523
78461532
78462135
78462531
78465123
78465132
78465231
78465312
78465321
78512346
78512436
78512463
78513246
78513642
78516342
78516423
78516432
78521346
78521436
78521463
78523164
78523614
78523641
78524136
78524163
78524613
78526314
78526341
78526431
78531246
78531642
78532164
78532614
78532641
78536142
78536214
78536241
78536412
78536421
78542136
78542163
78542613
78546213
78561342
78561423
78561432
78562314
78562341
78562431
78563142
78563214
78563241
78563412
78563421
78564123
78564132
78564231
78564312
78564321
78612345
78612354
78612435
78613245
78613254
78613524
78614253
78614523
78614532
78615342
78615423
78615432
78621345
78621354
78621435
78624135
78624531
78625314
78625341
78625431
78641253
78641523
78641532
78642135
78642531
78645123
78645132
78645231
78645312
78645321
78651342
78651423
78651432
78652314
78652341
78652431
78653142
78653214
78653241
78653412
78653421
78654123
78654132
78654231
78654312
78654321
81246735
81247365
81247635
81257346
81257436
81257463
81264735
81267345
81267354
81267435
81273456
81273465
81273546
81273645
81273654
81274356
81274365
81274536
81274563
81274635
81275346
81275436
81275463
81276345
81276354
81276435
81426753
81427653
81462753
81467253
81467523
81467532
81472653
81476253
81476523
81476532
81527346
81527436
81527463
81567342
81567423
81567432
81572346
81572436
81572463
81573246
81573642
81576342
81576423
81576432
81624735
81627345
81627354
81627435
81642753
81647253
81647523
81647532
81657342
81657423
81657432
81672345
81672354
81672435
81673245
81673254
81673524
81674253
81674523
81674532
81675342
81675423
81675432
81723456
81723465
81723546
81723645
81723654
81724356
81724365
81724536
81724563
81724635
81725346
81725436
81725463
81726345
81726354
81726435
81732456
81732465
81732546
81732645
81732654
81735246
81735642
81736245
81736254
81736524
81742653
81746253
81746523
81746532
81752346
81752436
81752463
81753246
81753642
81756342
81756423
81756432
81762345
81762354
81762435
81763245
81763254
81763524
81764253
81764523
81764532
81765342
81765423
81765432
82146735
82147365
82147635
82157346
82157436
82157463
82164735
82167345
82167354
82167435
82173456
82173465
82173546
82173645
82173654
82174356
82174365
82174536
82174563
82174635
82175346
82175436
82175463
82176345
82176354
82176435
82416735
82417365
82417635
82456713
82457136
82457163
82457613
82461735
82465731
82467135
82467531
82471356
82471365
82471536
82471563
82471635
82475136
82475163
82475613
82476135
82476531
82517346
82517436
82517463
82546713
82547136
82547163
82547613
82564731
82567314
82567341
82567431
82571346
82571436
82571463
82573164
82573614
82573641
82574136
82574163
82574613
82576314
82576341
82576431
82614735
82617345
82617354
82617435
82641735
82645731
82647135
82647531
82654731
82657314
82657341
82657431
82671345
82671354
82671435
82674135
82674531
82675314
82675341
82675431
82713456
82713465
82713546
82713645
82713654
82714356
82714365
82714536
82714563
82714635
82715346
82715436
82715463
82716345
82716354
82716435
82731564
82735164
82735614
82735641
82741356
82741365
82741536
82741563
82741635
82745136
82745163
82745613
82746135
82746531
82751346
82751436
82751463
82753164
82753614
82753641
82754136
82754163
82754613
82756314
82756341
82756431
82761345
82761354
82761435
82764135
82764531
82765314
82765341
82765431
84126753
84127653
84162753
84167253
84167523
84167532
84172653
84176253
84176523
84176532
84216735
84217365
84217635
84256713
84257136
84257163
84257613
84261735
84265731
84267135
84267531
84271356
84271365
84271536
84271563
84271635
84275136
84275163
84275613
84276135
84276531
84526713
84527136
84527163
84527613
84562713
84567213
84572136
84572163
84572613
84576213
84612753
84617253
84617523
84617532
84621735
84625731
84627135
84627531
84652731
84657231
84657321
84671253
84671523
84671532
84672135
84672531
84675123
84675132
84675231
84675312
84675321
84712653
84716253
84716523
84716532
84721356
84721365
84721536
84721563
84721635
84725136
84725163
84725613
84726135
84726531
84752136
84752163
84752613
84756213
84761253
84761523
84761532
84762135
84762531
84765123
84765132
84765231
84765312
84765321
85127346
85127436
85127463
85167342
85167423
85167432
85172346
85172436
85172463
85173246
85173642
85176342
85176423
85176432
85217346
85217436
85217463
85246713
85247136
85247163
85247613
85264731
85267314
85267341
85267431
85271346
85271436
85271463
85273164
85273614
85273641
85274136
85274163
85274613
85276314
85276341
85276431
85426713
85427136
85427163
85427613
85462713
85467213
85472136
85472163
85472613
85476213
85617342
85617423
85617432
85624731
85627314
85627341
85627431
85642731
85647231
85647321
85671342
85671423
85671432
85672314
85672341
85672431
85673142
85673214
85673241
85673412
85673421
85674123
85674132
85674231
85674312
85674321
85712346
85712436
85712463
85713246
85713642
85716342
85716423
85716432
85721346
85721436
85721463
85723164
85723614
85723641
85724136
85724163
85724613
85726314
85726341
85726431
85731246
85731642
85732164
85732614
85732641
85736142
85736214
85736241
85736412
85736421
85742136
85742163
85742613
85746213
85761342
85761423
85761432
85762314
85762341
85762431
85763142
85763214
85763241
85763412
85763421
85764123
85764132
85764231
85764312
85764321
86124735
86127345
86127354
86127435
86142753
86147253
86147523
86147532
86157342
86157423
86157432
86172345
86172354
86172435
86173245
86173254
86173524
86174253
86174523
86174532
269
Chapter C Remarks on the Gröbner basis method
86175342
86175423
86175432
86214735
86217345
86217354
86217435
86241735
86245731
86247135
86247531
86254731
86257314
86257341
86257431
86271345
86271354
86271435
86274135
86274531
86275314
86275341
86275431
86412753
86417253
86417523
86417532
86421735
86425731
86427135
86427531
86452731
86457231
86457321
86471253
86471523
86471532
86472135
86472531
86475123
86475132
86475231
86475312
86475321
86517342
86517423
86517432
86524731
86527314
86527341
86527431
86542731
86547231
86547321
86571342
86571423
86571432
86572314
86572341
86572431
86573142
86573214
86573241
86573412
86573421
86574123
86574132
86574231
86574312
86574321
86712345
86712354
86712435
86713245
86713254
86713524
86714253
86714523
86714532
86715342
86715423
86715432
86721345
86721354
86721435
86724135
86724531
86725314
86725341
86725431
86731245
86731254
86731524
86735124
86741253
86741523
86741532
86742135
86742531
86745123
86745132
86745231
86745312
86745321
86751342
86751423
86751432
86752314
86752341
86752431
86753142
86753214
86753241
86753412
86753421
86754123
86754132
86754231
86754312
86754321
87123456
87123465
87123546
87123645
87123654
87124356
87124365
87124536
87124563
87124635
87125346
87125436
87125463
87126345
87126354
87126435
87132456
87132465
87132546
87132645
87132654
87135246
87135642
87136245
87136254
87136524
87142653
87146253
87146523
87146532
87152346
87152436
87152463
87153246
87153642
87156342
87156423
87156432
87162345
87162354
87162435
87163245
87163254
87163524
87164253
87164523
87164532
87165342
87165423
87165432
87213456
87213465
87213546
87213645
87213654
87214356
87214365
87214536
87214563
87214635
87215346
87215436
87215463
87216345
87216354
87216435
87231564
87235164
87235614
87235641
87241356
87241365
87241536
87241563
87241635
87245136
87245163
87245613
87246135
87246531
87251346
87251436
87251463
87253164
87253614
87253641
87254136
87254163
87254613
87256314
87256341
87256431
87261345
87261354
87261435
87264135
87264531
87265314
87265341
87265431
87312456
87312465
87312546
87312645
87312654
87315246
87315642
87316245
87316254
87316524
87321564
87325164
87325614
87325641
87351246
87351642
87352164
87352614
87352641
87356142
87356214
87356241
87356412
87356421
87361245
87361254
87361524
87365124
87412653
87416253
87416523
87416532
87421356
87421365
87421536
87421563
87421635
87425136
87425163
87425613
87426135
87426531
87452136
87452163
87452613
87456213
87461253
87461523
87461532
87462135
87462531
87465123
87465132
87465231
87465312
87465321
87512346
87512436
87512463
87513246
87513642
87516342
87516423
87516432
87521346
87521436
87521463
87523164
87523614
87523641
87524136
87524163
87524613
87526314
87526341
87526431
87531246
87531642
87532164
87532614
87532641
87536142
87536214
87536241
87536412
87536421
87542136
87542163
87542613
87546213
87561342
87561423
87561432
87562314
87562341
87562431
87563142
87563214
87563241
87563412
87563421
87564123
87564132
87564231
87564312
87564321
87612345
87612354
87612435
87613245
87613254
87613524
87614253
87614523
87614532
87615342
87615423
87615432
87621345
87621354
87621435
87624135
87624531
87625314
87625341
87625431
87631245
87631254
87631524
87635124
87641253
87641523
87641532
87642135
87642531
87645123
87645132
87645231
87645312
87645321
87651342
87651423
87651432
87652314
87652341
87652431
87653142
87653214
87653241
87653412
87653421
87654123
87654132
87654231
87654312
87654321
270
D. New command line options
in GeoGebra
The GeoGebra prover system is designed to be as simple as possible. Thus there is
no way to change its behavior on the graphical user interface.
On the other hand, there is a plenty of configuration settings for the command line
for the desktop version. They are listed here, in Appendix D.
While Linux users can easily start GeoGebra on command line, Windows and Mac
users may feel uncomfortable with this task. To help them, here we summarize how
they can start GeoGebra on command line:
For Windows users the easiest way is to use the portable version of GeoGebra.
After unzipping the bundle, the user needs to start a command interpreter win-
dow to enter “jre\bin\java -jar geogebra.jar ... in the folder of the
unzipped .jar files (that is, first a “cd ... command may be required by sub-
stituting the correct path of GeoGebra—usually it is “Downloads\GeoGebra
5.0.VVV.0” where VVV is the version number). Here “... stands for the pos-
sible command line options (see below). By entering “jre\bin\java” above,
the user explicitly asks that the bundled version of Java must be used—by
omitting “jre\bin\” the system-wide Java installation will be used (if Java
is already installed on the system).
Mac OS X users may also prefer the portable version. When using Safari, the
downloaded file will be unzipped automatically. Now the user needs to start
the Terminal and enter “java -jar geogebra.jar ... in the folder of the
unzipped .jar files which take place in GeoGebra.app/Contents/Java. (That
is, entering “cd Downloads/GeoGebra.app/Contents/Java” before starting
GeoGebra should automatically set the correct folder.) See below for the
available command line options “....
Linux users will prefer the installed version of GeoGebra. By entering
geogebra ... in a terminal, the command line options can easily be de-
fined.
While we will refer to the command line way for starting GeoGebra as “java -jar
geogebra.jar ...”, the user may still need to maintain the correct path for the
java executable. Above we assumed that the user starts the command interpreter
window in his or her home directory (which is the default).
271
Chapter D New command line options in GeoGebra
D.1. Prover options
By starting GeoGebra with the --proverhelp option, the user can get a list of the
applicable options (some of them may not be shown in version 5.0, but all of them
are usable):
--prover=OPTIONS set options for the prover subsystem
where OPTIONS is a comma separated list, formed with the following
available settings (defaults in brackets):
engine:ENGINE set engine (Auto|OpenGeoProver|Recio|Botana|PureSymbolic) [Auto]
timeout:SECS set the maximum time attributed to the prover (in seconds) [5]
maxterms:NUMBER set the maximal number of terms [10000] (OpenGeoProver only)
method:METHOD set the method (Wu|Groebner|Area) [Wu] (OpenGeoProver only)
fpnevercoll:BOOLEAN assume three free points are never collinear for Prove [null]
(Botana only, forced to ’yes’ when SingularWS is unavailable)
usefixcoords:N1N2 use fix coordinates for the first number N1 for Prove and N2
for ProveDetails, maximum of 4 both [42] (Botana only)
transcext:BOOLEAN use polynomial ring with coeffs from a transcendental extension
for Prove [true] (Botana only, needs SingularWS)
captionalgebra:BOOLEAN show algebraic debug information in object captions [false]
(Botana only)
Example: --prover=engine:Botana,timeout:10,fpnevercoll:true,usefixcoords:43
D.2. SingularWS options
When starting GeoGebra with the --singularwshelp option (which is not docu-
mented in version 5.0 yet), the following list of options are shown:
--singularWS=OPTIONS set options for SingularWS
where OPTIONS is a comma separated list, formed with the following
available settings (defaults in brackets):
enable:BOOLEAN use Singular WebService when possible [false]
remoteURL:URL set the remote server URL [http://singularws.idm.jku.at/]
timeout:SECS set the timeout [5]
caching:BOOLEAN set server side caching [true]
Example: singularWS=timeout:3
By command line options we can run GeoGebra in several useful modes when we
want to make some detailed tests:
It is suggested setting the prover timeout to 0when testing from Eclipse in
debug mode. Example: java -jar geogebra.jar --prover=timeout:0.
To use Botana’s method exclusively, the engine must be set to Botana. This
will automatically use Singular if there is Internet connection, and SingularWS
is enabled. (SingularWS is disabled by default in GeoGebra 5.) When Sin-
gularWS is disabled, Giac will be used. To force Singular, the enable option
must be set to true for SingularWS. Example: java -jar geogebra.jar
--prover=engine:Botana --singularWS=enable:true.
To force Giac not to use prescribed hypotheses for non-degenerate polygons,
one should set the fpnevercoll prover option to false. This will, however,
slow down the computation significantly, in most cases.
272
D.2 SingularWS options
Various figures in this PhD thesis were created by using the
--prover=captionalgebra:true setting.
Benchmarking of SingularWS should always be done by using the
--prover=caching:false to force Singular to recompute the output.
273
Index
algorithm
–, Buchberger, 96, 157, 242, 246
–, Prove, 187, 188
–, Recio-Vélez (extended), 148,
150, 152
–, Relation Tool (symbolical), 109
Cabri, 12, 15, 29
Cabri-Euclide, 22
Chypre, 22
Cinderella, 16, 38, 218
CoCoAlib, 99
Coq, 10, 23, 28, 47, 50, 233
counterexample, 130
creativity spiral, 6
degeneracy conditions, 48, 141, 148,
215
DrGeo, 16
element
–, transcendental, 184
–s, algebraically independent, 184
elimination process, 171
equation
–, collinearity, 136
–, parallelism, 135
–, point equality, 137
equations
–, midpoint, 134
–, perpendicularity, 145, 152
equivalent equation systems, 133
Euclidean paradigm, 13
field, 184
–, extension, 184
free point, 134
free software, 37, 90
Géométrix, 22, 84
Gauss elimination, 154
GCLC, 39, 91
GDI-Discovery, 83
GeoGebraBook, 217
GeoGebraTube, 16, 30
GEOM, 22
Geometer’s Sketchpad, The, 15
Geometric Supposer, The, 15
Geometry Expert, 16, 27, 71, 90
Geometry Expressions, 16, 82
GeoProof, 47, 91
Giac, 93, 99, 181, 241, 272
Google Web Toolkit, 101
Gröbner basis, 96, 154, 157
–, minimal–reduced–normed, 174,
254
HOL Light, 9
ideal, 133
– theory, 133
Isabelle, 9
JAMA, 98
JAS, 98
Jasymca, 98
JNI, 102
JSCL, 98
kig, 16
lemma
–, Dickson’s, 171
275
Chapter D Index
line
–, Euler’s, 31, 97, 150, 152, 153,
240, 257
–, Simson, 98, 240, 241
Live Geometry, 16
logical consequence, 129
Maple, 16
Mathematica, 16
Mathpiper, 98
Maxima, 98
method
–, Botana’s, 93, 129, 272
–, GDD, 21, 24, 73
–, Gröbner basis, 19, 40, 239
–, Kapur’s, 181
–, Kortenkamp’s, 22
–, Recio’s, 22, 190, 219
–, Wu’s, 19, 40, 181
–, area, 20, 40, 75
–, areaCAD, 22, 94
–, full angle, 21
–, mass point, 22
model
–, DTP, 7
–, de Villiers’, 28
monomial, 155
NaCl, 200
non-consequence, 130
OpenGeoProver, 41, 93, 181, 214, 215,
225
operation
–, fred, 174
–, red, 156
–, spol, 156
ordering, 155
portfolio prover, 91, 199
principle
–, KISS, 86, 105, 271
–, WB/BB, 25
question, 130
Rabinowitsch’s trick, 131
Reduce, 98
reductio ad absurdum, 130
reduction chain, 157
ring, 132
row echelon form, 154
S-polynomial, 156
SATzilla, 92
Singular, 93, 99, 102, 181, 273
SingularWS, 103
Tarski’s system, 10, 22, 50
theorem
–, Desargues’, 225
–, Fermat’s last, 92
–, Morley’s, 96
–, Napoleon’s, 94
–, Pappus’ hexagon, 98, 175, 240,
241, 260
–, Pythagoras’, 18, 201
–, Steiner-Lehmus, 151
–, Thales’, 33, 97, 149, 202, 219,
239
–, Wilkie’s, 94
–, angle bisector, 94, 97, 202, 240
–, intercept, 149, 176
–, midline, 32, 134, 142, 202
–, nine point circle, 97, 111, 232,
240
the fundamental – of algebra, 190
Theorema, 10
variable
–, dependent, 135
–, independent, 135
Varnish, 104
WIRIS, 16
YaCAS, 98
yes/no answer, 23
276
Nomenclature
ADG automated deduction in geometry
API application programming interface
ATP automated theorem proving
CAA computer aided assessment
CAS computer algebra system
CPU central processing unit
DGS dynamic geometry system
DMS dynamic mathematics software
DTP definition–theorem–proof
GDD geometry deductive database
HTML5 hypertext markup language (version 5)
HTTP hypertext transfer protocol
ISO International Standards Organization
JNI Java Native Interface
SCSCP Symbolic Computation Software Composability Protocol
SOAP Simple Object Access Protocol
WB/BB white box, black box
277
List of Figures
1.1. The concept of the “creativity spiral” . . . . . . . . . . . . . . . . . . 6
1.2. First results of GeoGebraTube search for keyword “proof” . . . . . . 17
1.3. Visual proof of Pythagoras’ Theorem in GeoGebraTube . . . . . . . . 18
1.4. Example for diagrammatic proofs . . . . . . . . . . . . . . . . . . . . 25
1.5. Poor man’s verification of the midline theorem . . . . . . . . . . . . . 32
1.6. Abánades’ example to easily reproduce a numerical error . . . . . . . 33
1.7. Painting the Mandelbrot Set . . . . . . . . . . . . . . . . . . . . . . . 34
1.8. Cinderella2.8 ............................... 39
1.9. WinGCLC9.0............................... 40
1.10. Verification with GeoProof 0.5beta . . . . . . . . . . . . . . . . . . . 48
1.11. Proving with GeoProof . . . . . . . . . . . . . . . . . . . . . . . . . 49
1.12. Tarski’s axiomatic system described by Coq commands . . . . . . . . 51
1.13. The Pasch axiom (A7) in Tarski’s system . . . . . . . . . . . . . . . 52
1.14. The Coq IDE (version 8.3pl4) . . . . . . . . . . . . . . . . . . . . . . 53
1.15. Starting a proof with Coq . . . . . . . . . . . . . . . . . . . . . . . . 54
1.16. Rewriting the goal in Coq . . . . . . . . . . . . . . . . . . . . . . . . 55
1.17. Applying an axiom with a hint in Coq . . . . . . . . . . . . . . . . . 55
1.18. Applying an axiom automatically in Coq . . . . . . . . . . . . . . . . 56
1.19. No more subgoals to prove: the proof has been completed . . . . . . . 57
1.20. Coq’s (here temporary) database has been extended by a valid proof . 58
1.21. Coq IDE after loading primary definitions . . . . . . . . . . . . . . . 60
1.22. Schwabhäuser et al. (1983)’s proof for the parallelogram theorem . . . 61
1.23. Some extra lemmas to prepare the proof of Lemma 7.21 . . . . . . . . 63
1.24. Windows version of Geometry Expert (GEX), DGS facility . . . . . . 72
1.25. Geometry Expert (GEX), ATP facility . . . . . . . . . . . . . . . . . 73
1.26. Hierarchy graph of a GDD proof . . . . . . . . . . . . . . . . . . . . . 75
1.27. Look and feel in JGEX . . . . . . . . . . . . . . . . . . . . . . . . . 76
1.28. The list of automatically derived facts in JGEX . . . . . . . . . . . . 77
1.29. Screenshot of an animated step of the automatic proof in JGEX . . . 78
1.30. Constructing and analyzing the parallelogram theorem in GeoGebra . 79
1.31. Defining an RGB color value based on an expression in GeoGebra . . 80
1.32. Painting the map of statement truth in GeoGebra . . . . . . . . . . . 80
1.33. Using the built-in CAS for analytical computations . . . . . . . . . . 81
1.34. Geometry Expressions 3.1 . . . . . . . . . . . . . . . . . . . . . . . . 82
1.35.GDI-Discovery .............................. 83
1.36.Géométrix4.0............................... 84
279
Chapter D List of Figures
1.37. The gap between the educational demand and the ADG supply . . . 86
2.1. Google Trends on GeoGebra . . . . . . . . . . . . . . . . . . . . . . . 91
2.2. Napoleon’s theorem (outward case) . . . . . . . . . . . . . . . . . . . 95
2.3. Napoleon’s theorem (inward case) . . . . . . . . . . . . . . . . . . . . 95
2.4. History of embedded CAS in GeoGebra . . . . . . . . . . . . . . . . . 99
2.5. GeoGebra communicates with SingularWS via the HTTP protocol . . 104
2.6. The Relation Tool algorithm as a flowchart . . . . . . . . . . . . . . . 110
2.7. The nine point circle theorem . . . . . . . . . . . . . . . . . . . . . . 111
2.8. Midlinetheorem..............................134
2.9. Diagonals of a parallelogram bisect each other . . . . . . . . . . . . . 136
2.10. Mini-example: possible need for extra equations on elimination . . . . 140
2.11. Altitudes of a triangle are concurrent . . . . . . . . . . . . . . . . . . 144
2.12. Thales’ (circle) theorem . . . . . . . . . . . . . . . . . . . . . . . . . 149
2.13.Eulersline ................................151
2.14. Intersection of two hyperbolas . . . . . . . . . . . . . . . . . . . . . . 161
2.15. Leading monomials of a reduction chain . . . . . . . . . . . . . . . . 165
2.16. “Unallowed area”, “infinite column” and “infinite rows” . . . . . . . . 171
2.17. Unallowed areas, infinite column and infinite rows, 2nd step . . . . . 172
2.18. Unallowed areas and infinite row, 4th step . . . . . . . . . . . . . . . 173
2.19. Pappus’ hexagon theorem . . . . . . . . . . . . . . . . . . . . . . . . 176
2.20. Extra dashed lines help to investigate degeneracy conditions . . . . . 197
3.1. Hierarchy graph of selected theorems of Hajnal and Némethy (1988) . 203
3.2. Relation Tool checks Theorem 2 by verifying a single occurence . . . 204
3.3. Theorem 2 is constructed step by step in GeoGebra . . . . . . . . . . 205
3.4. Checking Theorem 2 with the Relation Tool . . . . . . . . . . . . . . 206
3.5. A possible way of single occurence check for Theorem 3 . . . . . . . . 206
3.6. Output of the Relation Tool for Theorem 3 . . . . . . . . . . . . . . . 207
3.7. An opportunity of single occurence check for Theorem 4 . . . . . . . 208
3.8. Preparation for a symbolical check for Theorem 6 . . . . . . . . . . . 209
3.9. Output of the Relation Tool for Theorem 6 . . . . . . . . . . . . . . . 209
3.10. Single occurence check for Theorem 7 . . . . . . . . . . . . . . . . . . 210
3.11. Preparations for using the Relation Tool for Theorem 13 . . . . . . . 212
3.12. Using the Relation Tool for Theorem 13 . . . . . . . . . . . . . . . . 212
3.13. Workaround to check concurrence for Theorem 14 . . . . . . . . . . . 213
3.14.Theorem16 ................................214
3.15. Theorem 18 by using “point equality check” approach . . . . . . . . . 215
3.16. Theorem 18 by using the “angle equality check” approach . . . . . . . 215
3.17. Using the Relation Tool with “angle equality check” approach . . . . 216
3.18. Preparing Theorem 20, second part . . . . . . . . . . . . . . . . . . . 216
3.19. Report of the Relation Tool for Theorem 20, second part . . . . . . . 217
3.20. A GeoGebraBook summarizing 7 theorems . . . . . . . . . . . . . . 218
280
List of Tables
1.1. Problem types of the International Mathematical Olympiads . . . . . 15
1.2. Possible ways for computer supported proving in education . . . . . . 29
1.3. Activities supported by various computer software packages . . . . . 36
1.4. Structure of the monograph and its implementation . . . . . . . . . . 59
2.1. Output of Gröbner basis benchmarking . . . . . . . . . . . . . . . . . 100
2.2. Translation of results of some proving methods to GeoGebra . . . . . 108
281
Bibliography
Abbott, J. and Bigatti, A. M. (2013). CoCoALib: a C++ library for doing Com-
putations in Commutative Algebra. Available at http://cocoa.dima.unige.it/
cocoalib.
Adler, C. (1958). Modern Geometry. McGraw-Hill Book, Sydney.
Ancsin, G., Hohenwarter, M., and Kovács, Z. (2013). GeoGebra goes web. The
Electronic Journal of Mathematics and Technology, 7(6):412–418.
Appel, K. and Haken, W. (1977). The solution of the four-color-map problem.
Scientific American, 237:108–121.
Ausubel, D. P. and Sullivan, E. V. (1970). Theory and Problems of Child Develop-
ment. Grune & Stratton, New York.
Babai, L. (1994). Probably true theorems, cry wolf? Notices of the American
Mathematical Society, 41(5):453–454.
Baeta, N. and Quaresma, P. (2013). The full angle method on the OpenGeoProver.
http://ceur-ws.org/Vol-1010/paper-08.pdf, submitted to THedu’13.
Balian, R., Bismut, J.-M., Connes, A., Demailly, J.-P., Lafforgue, L., Lelong, P., and
Serre, J.-P. (2004). Les savoirs fondamentaux au service de l’avenir scientifique et
technique. https://www-fourier.ujf-grenoble.fr/~demailly/manuscripts/
SavoirsFondamentaux.pdf.
Bardet, M. (2002). On the complexity of a Gröbner basis algorithm. INRIA Semi-
nars.http://algo.inria.fr/seminars/summary/Bardet2002.pdf.
Beeson, M. (2013). Proof and computation in geometry. In Ida, T. and Fleuriot,
J., editors, Automated Deduction in Geometry, volume 7993 of Lecture Notes in
Computer Science, pages 1–30. Springer, Berlin, Heidelberg. http://dx.doi.
org/10.1007/978-3-642-40672-0_1.
Beltrán, C. and Pardo, L. M. (2009). Smale’s 17th problem: Average polynomial
time to compute affine and projective solutions. Journal of the American Mathe-
matical Society, 22:363–385.
Bernat, P. (1996). Using dynamic geometry environments for problem solving:
CHYPRE: an interactive environment for elementary geometry problem solv-
ing. abstract of a presentation at The 8th International Congress on Math
Education (ICME 8). http://mathforum.org/mathed/seville/bernat/abst_
bernat.html.
283
Bibliography
Bertot, Y., Guilhot, F., and Pottier, L. (2004). Visualizing geometrical statements
with GeoView. Electronic Notes in Theoretical Computer Science, 103:49–65.
Biermair, C. (2014). Präformale beweise im mathematikunterricht. Master’s thesis,
Johannes Kepler University, Linz, Austria.
Bishop, A. J., Clements, K., Keitel, C., Kilpatrick, J., and Laborde, C., editors
(1996). International Handbook of Mathematics Education, Part Two. Kluwer
Academic Publishers, Dordrecht.
Bloom, B. (1956). Taxonomy of educational objectives: Cognitive Domain. David
O. McKay, New York.
Blum, M. (1986). How to prove a theorem so no-one else can claim it. Proceedings
of the International Congress of Mathematicians, pages 1444–1451.
Blum, W. and Kirsch, A. (1991). Preformal proving: Examples and reflections.
Educational Studies in Mathematics, 22(2):183–203.
Boero, P. (1999). Argumentation and mathematical proof: A complex, productive,
unavoidable relationship in mathematics and mathematics education. Interna-
tional Newsletter on the Teaching and Learning of Mathematical Proof, 7(8).
Borwein, J. M. (2012). Exploratory experimentation: Digitally-assisted discovery
and proof. In Hanna, G. and de Villiers, M., editors, Proof and Proving in Math-
ematics Education. The 19th ICMI Study, pages 69–96. Springer.
Botana, F. (2007). Bringing more intelligence to dynamic geometry by using sym-
bolic computation. In Li, S., Wang, D., and Zhang, J.-Z., editors, Symbolic
Computation and Education, pages 136–149. World Scientific, Singapore.
Botana, F., Abánades, M. A., and Escribano, J. (2011). Exact internet accessi-
ble computation of paths of points in planar linkages and diagrams. Computer
Applications in Engineering Education, 19(4):835–841.
Botana, F., Hohenwarter, M., Janičić, P., Kovács, Z., Petrović, I., Recio, T., and
Weitzhofer, S. (2015). Automated theorem proving in GeoGebra: Current achieve-
ments. Journal of Automated Reasoning, 55(1):39–59. http://dx.doi.org/10.
1007/s10817-015-9326-4.
Botana, F. and Kovács, Z. (2014). A Singular web service for geometric compu-
tations. Annals of Mathematics and Artificial Intelligence, pages 1–12. http:
//dx.doi.org/10.1007/s10472-014-9438-2.
Botana, F., Kovács, Z., Recio, T., and Weitzhofer, S. (2012a). Implementing the-
orem proving in GeoGebra by using a Singular webservice, or by exact check
of a statement in a bounded number of test cases. http://ggb1.idm.jku.at/
~kovzol/talks/eaca12/EACA2012-BotanaKovacsRecioWeitzhofer.pdf.
Botana, F., Kovács, Z., and Weitzhofer, S. (2012b). Implementing theorem proving
in GeoGebra by using a Singular webservice. In Proceedings EACA 2012, Libro de
Resúmenes del XIII Encuentro de Álgebra Computacional y Aplicaciones, pages
67–70. Universidad de Alcalá.
284
Bibliography
Botana, F. and Valcarce, J. (2002). A dynamic-symbolic interface for geometric
theorem discovery. Computers and Education, 38:21–35.
Boutry, P., Narboux, J., Schreck, P., and Braun, G. (2014). Using small scale au-
tomation to improve both accessibility and readability of formal proofs in geome-
try. In Botana, F. and Quaresma, P., editors, Automated Deduction in Geometry
2014, Proceedings of ADG 2014, pages 1–19, Coimbra, Portugal.
Buchberger, B. and the Theorema Working Group (1998). Theorema: Theorem
proving for the masses using Mathematica. Invited Talk at the Worldwide Math-
ematica Conference, Chicago, June 18-21, 1998.
Buchberger, B. (1965). An Algorithm for finding a basis for the residue class ring
of a zero-dimensional polynomial ideal. PhD thesis, Math. Inst. University of
Innsbruck, Austria.
Buchberger, B. (1985). Groebner-bases: An algorithmic method in polynomial ideal
theory. In Bose, N. K., editor, Multidimensional Systems Theory – Progress,
Directions and Open Problems in Multidimensional Systems, chapter 6, pages 184–
232. Reidel Publishing Company, Dordrecht, Boston, Lancaster, The Netherlands.
Buchberger, B. (1988). Applications of Gröbner bases in non-linear computational
geometry. In Janssen, R., editor, Trends in Computer Algebra, volume 296 of
Lecture Notes in Computer Science, pages 52–80. Springer, Berlin, Heidelberg.
http://dx.doi.org/10.1007/3-540-18928-9_5.
Buchberger, B. (1990). Should students learn integration rules? ACM SIGSAM
Bulletin, 24(1):10–17. http://dx.doi.org/10.1145/382276.1095228.
Buchberger, B., Craciun, A., Jebelean, T., Kovács, L., Kutsia, T., Nakagawa, K.,
Piroi, F., Popov, N., Robu, J., Rosenkranz, M., and Windsteiger, W. (2005).
Theorema: Towards computer-aided mathematical theory exploration. Journal
of Applied Logic.
Chen, X., Song, D., and Wang, D. (2014). Automated generation of geometric
theorems from images of diagrams. CoRR, abs/1406.1638. http://arxiv.org/
abs/1406.1638.
Chou, S., Gao, X., and Zhang, J. (1993). Automated production of traditional
proofs for constructive geometry theorems. In Vardi, M., editor, Proceedings of
the Eighth Annual IEEE Symposium on Logic in Computer Science LICS, pages
48–56. IEEE Computer Society Press.
Chou, S., Gao, X., and Zhang, J. (2000). A deductive database approach to au-
tomated geometry theorem proving and discovering. J. Automated Reasoning,
25:219–246.
Chou, S.-C. (1987). Mechanical geometry theorem proving. Kluwer Academic Pub-
lishers Norwell, MA, USA.
285
Bibliography
Chou, S.-C., Gao, X.-S., and Zhang, J.-Z. (1996). Automated Generation of Read-
able Proofs with Geometric Invariants, II. Theorem Proving with Full-Angles.
Journal of Automated Reasoning, 17(13):349–370.
Cipra, B. (1993). New computer insights from ‘transparent’ proofs. What’s happen-
ing in the Mathematical Sciences, 1:7–12.
Cobb, P. (1988). The tension between theories of learning and instruction in math-
ematics education. Educational Psychologist, 23:87–104.
Coelho, H. and Pereira, L. M. (1986). Automated reasoning in geometry theorem
proving with Prolog. J. Autom. Reason., 2(4):329–390. http://dx.doi.org/10.
1007/BF00248249.
Collins, G. E. (1975). Quantifier elimination for real closed fields by cylindrical
algebraic decomposition. Lecture Notes in Computer Science, 33:134–165.
Conti, P. and Traverso, C. (2001). Algebraic and semialgebraic proofs: Methods and
paradoxes. In Richter-Gebert, J. and Wang, D., editors, Automated Deduction in
Geometry, volume 2061 of Lecture Notes in Computer Science, pages 83–103.
Springer, Berlin, Heidelberg.
Coq development team, T. (2004). The Coq proof assistant reference manual. Log-
iCal Project. Version 8.0.
Cox, D., Little, J., and O’Shea, D. (1991). Ideals, Varieties and Algorithms: An
Introduction to Computational Algebraic Geometry and Commutative Algebra.
Springer.
Csabai, B. (2011). Régi és új típusú magyarországi matematikai érettségi tételek
összehasonlítása. Master’s thesis, Eötvös Loránd University. https://www.cs.
elte.hu/blobs/diplomamunkak/bsc_mattan/2011/csabai_bernadett.pdf.
Cucker, F. and Bürgisser, P. (2011). On a problem posed by Steve Smale. Annals
of Mathematics, 174(3):1785–1836.
Davis, P. J. (1993). Visual theorems. Educational Studies in Mathematics,
24(4):333–344.
de Villiers, M. (1990). The role and function of proof in mathematics. Pythagoras,
24:17–24.
de Villiers, M. (1999). Rethink proof with Sketchpad. Key Curriculum Press,
Emeryville.
Decker, W., Greuel, G.-M., Pfister, G., and Schönemann, H. (2012). Singular
3-1-6 — A computer algebra system for polynomial computations. http://www.
singular.uni-kl.de.
Dersch, H. (2009). Jasymca 2.0 – symbolic calculator for Java. http://webuser.
hs-furtwangen.de/~dersch/jasymca2/Jasymca2en/Jasymca2en.html.
286
Bibliography
Desfontaines, D. (2012). Theorem proving in GeoGebra: Implementing the area
method into OpenGeoProver (internship report). http://www.eleves.ens.fr/
home/desfonta/InternshipReport.pdf.
Dewsbury, R. (2007). Google Web Toolkit Applications. Prentice Hall.
Dieudonné, J. (1959). New thinking in school mathematics. the Royamount Semi-
nar, November 23–December 4, 1959. http://www.academia.edu/1645989/New_
Thinking_in_School_Mathematics_by_J._Dieudonne_1959.
Freudenthal, H. (1979). Ways to report on empirical research in education. Educa-
tional Studies in Mathematics, 10(3):275–303.
Gagné, R. M. (1967). Instruction and the conditions of learning. In Siegel, L.,
editor, Instruction: Some contemporary viewpoints, pages 291–313. Chandler, San
Francisco.
Gao, X. and Lin, Q. (2004). MMP/Geometer — a software package for automated
geometric reasoning. In Winkler, F., editor, Automated Deduction in Geome-
try: 4th International Workshop, (ADG 2002), volume 2930 of Lecture Notes in
Computer Science, 4466. Springer.
Gelernter, H. (1959). Realisation of a geometry-proving machine. Proceedings of the
International Conference on Information Processing, Paris, June 15-20, 1959.,
pages 273–282.
Goldwasser, S., Micali, S., and Rackoff, C. (1985). The knowledge complexity of
interactive proof-systems. In Proceedings of the 17th ACM Sysmposium on Theory
of Computing, pages 291–304.
Greuel, G.-M. and Pfister, G. (2008). A Singular Introduction to Commutative
Algebra.
Hajnal, I. and Némethy, K. (1988). Matematika I. Tankönyvkiadó, Budapest.
Hales, T., Adams, M., Bauer, G., Dang, D. T., Harrison, J., Hoang, T. L., Kaliszyk,
C., Magron, V., McLaughlin, S., Nguyen, T. T., Nguyen, T. Q., Nipkow, T.,
Obua, S., Pleso, J., Rute, J., Solovyev, A., Ta, A. H. T., Tran, T. N., Trieu,
D. T., Urban, J., Vu, K. K., and Zumkeller, R. (2015). A formal proof of the
Kepler conjecture. http://arxiv.org/pdf/1501.02155v1.pdf.
Hamada, T. and KNOPPIX/Math committers (2009). KNOPPIX/Math: A live sys-
tem for enjoying mathematics with computer. ACM Commun. Comput. Algebra,
42(3):175–176. http://doi.acm.org/10.1145/1504347.1504375.
Hammer, C. (2009). Vom Argument zum Beweis. logische begründungen und prä-
formale beweise. Mathematik lehren, 155:18–21.
Hanna, G. and de Villiers, M., editors (2012). Proof and Proving in Mathematics
Education. The 19th ICMI Study. Springer.
Hanna, G. and Jahnke, H. N. (1996). Proofs and proving. In Bishop, A. J., Clements,
K., Keitel, C., Kilpatrick, J., and Laborde, C., editors, International Handbook of
287
Bibliography
Mathematics Education, Part Two, pages 877–908. Kluwer Academic Publishers,
Dordrecht.
Hearn, A. C. (2004). REDUCE User’s Manual Version 3.8. http://
reduce-algebra.com/docs/reduce.pdf.
Hilbert, D. (1899). Grundlagen der Geometrie. B. G. Teubner, Leipzig.
Hohenwarter, M. (2002). GeoGebra: Ein Softwaresystem für dynamische Geome-
trie und Algebra der Ebene. Master’s thesis, Paris Lodron University, Salzburg,
Austria.
Hohenwarter, M. (2006). GeoGebra – didaktische Materialien und Anwendungen
für den Mathematikunterricht. PhD thesis, Paris Lodron University, Salzburg,
Austria.
Hohenwarter, M., Borcherds, M., Ancsin, G., Bencze, B., Blossier, M., Delobelle,
A., Denizet, C., Éliás, J., Fekete, A., Gál, L., Konečný, Z., Kovács, Z., Lizelfelner,
S., Parisse, B., and Sturr, G. (2013). GeoGebra 4.4. http://www.geogebra.org.
Hohenwarter, M., Borcherds, M., Ancsin, G., Bencze, B., Blossier, M., Delobelle,
A., Denizet, C., Éliás, J., Fekete, A., Gál, L., Konečný, Z., Kovács, Z., Lizelfelner,
S., Parisse, B., and Sturr, G. (2014a). GeoGebra 5. http://www.geogebra.org.
Hohenwarter, M., Borcherds, M., Ancsin, G., Bencze, B., Blossier, M., Delobelle, A.,
Denizet, C., Éliás, J., Fekete, A., Gál, L., Konečný, Z., Kovács, Z., Lizelfelner, S.,
Parisse, B., and Sturr, G. (2014b). GeoGebraTube. http://www.geogebratube.
org.
Horgan, J. (1993). The death of proof. Scientific American, 269(4):93–103.
Isotani, S. and Brandão, L. O. (2008). An algorithm for automatic checking of
exercises in a dynamic geometry system: iGeom. Computers and Education,
51:1283–1303.
Janičić, P. (2010). Geometry constructions language. Journal of Automated Rea-
soning, 44(1–2):3–24.
Janičić, P., Narboux, J., and Quaresma, P. (2012). The area method: a recapitula-
tion. Journal of Automated Reasoning, 48:489–532.
Jolly, R. and Kredel, H. (2008). How to turn a scripting language into a domain
specific language for computer algebra. CoRR, abs/0811.1061.
Joyce, D. E. (1996). Euclid’s elements. http://aleph0.clarku.edu/~djoyce/
java/elements/bookI/bookI.html.
Kapur, D. (1986). Using Gröbner bases to reason about geometry problems. Jour-
nal of Symbolic Computation, 2(4):399–408. http://www.sciencedirect.com/
science/article/pii/S0747717186800074.
Kieren, T. and Steffe, L. (1994). Radical constructivism and mathematical educa-
tion. Journal for Research in Mathematics Education, 25(6):711–733.
288
Bibliography
Konev, B. and Lisitsa, A. (2014). A SAT attack on the Erdos discrepancy conjecture.
http://arxiv.org/pdf/1402.2184v2.pdf.
Kortenkamp, U. (1999). Foundations of Dynamic Geometry. PhD thesis, ETH
Zürich.
Kosan, T. (2011). MathPiper. http://www.mathpiper.org.
Kovács, Z. (2012a). Preliminary planning for implementing theorem proving
in GeoGebra, GeoGebra Trac Wiki. http://dev.geogebra.org/trac/wiki/
TheoremProvingPlanning.
Kovács, Z. (2012b). Singular WebService documentation and source code. https:
//github.com/kovzol/singularws.
Kovács, Z. (2012c). Singular WebService in GeoGebra. http://dev.geogebra.
org/trac/wiki/SingularWS.
Kovács, Z. (2012d). Singular WebService, VirtualBox ISO image. http://ggb1.
idm.jku.at/~kovzol/VMs/SingularWS-20120711.zip.
Kovács, Z. (2013a). Testing Gröbner basis implementations (computer software).
http://vms.geogebra.org/~kovzol/sw/gbtest3.tgz.
Kovács, Z. (2013b). Testing Gröbner basis implementations (online version). http:
//vms.geogebra.org:8081.
Kovács, Z. (2014a). The portfolio prover in GeoGebra 5. In Botana, F. and
Quaresma, P., editors, Proceedings of the 10th International Workshop on Au-
tomated Deduction in Geometry (ADG 2014), 9-11 July 2014, pages 191–205.
University of Coimbra, Portugal.
Kovács, Z. (2014b). Sturmfels’ counterexample. http://www.geogebratube.org/
student/m93563.
Kovács, Z. and Parisse, B. (2013). Giac and GeoGebra — improved Gröbner basis
computations, Special semester on applications of algebra and number theory,
workshop 3 on computer algebra and polynomials. https://www.ricam.oeaw.
ac.at/specsem/specsem2013/workshop3/slides/parisse-kovacs.pdf.
Kovács, Z. and Parisse, B. (2015). Giac and GeoGebra – improved Gröbner basis
computations. In Gutierrez, J., Schicho, J., and Weimann, M., editors, Computer
Algebra and Polynomials, Lecture Notes in Computer Science, pages 126–138.
Springer.
Kovács, Z., Recio, T., and Weitzhofer, S. (2012). Implementing theorem proving in
GeoGebra by using exact check of a statement in a bounded number of test cases.
In Proceedings EACA 2012, Libro de Resúmenes del XIII Encuentro de Álgebra
Computacional y Aplicaciones, pages 123–126. Universidad de Alcalá.
Kredel, H. (2008). Evaluation of a Java computer algebra system. In Kapur, D., ed-
itor, Computer Mathematics, volume 5081 of Lecture Notes in Computer Science,
pages 121–138. Springer, Berlin, Heidelberg.
289
Bibliography
Kutzler, B. and Stifter, S. (1986). On the application of Buchberger’s algorithm to
automated geometry theorem proving. J. Symb. Comput., 2:389–397.
Lampert, M., Rittenhouse, P., and Crumbaugh, C. (1994). From personal disagree-
ment to mathematical discourse in the fifth grade. Paper presented at the annual
meeting of the American Educational Research Association, New Orleans.
Libbrecht, P. (2015). Adaptations to a learning resource. Acta Didactica Napocensia,
8(1).
Lin, F.-L., Yang, K.-L., Lee, K.-H., Tabach, M., and Stylianides, G. (2012). Prin-
ciples of task design for conjecturing and proving. In Hanna, G. and de Villiers,
M., editors, Proof and Proving in Mathematics Education. The 19th ICMI Study,
pages 305–326. Springer.
Losada, R. (2014). El color dinámico en GeoGebra. La Gaceta de la Real Sociedad
Matemática Española, 17(3).
Losada, R., Recio, T., and Valcarce, J. L. (2010). On the automatic discovery of
Steiner-Lehmus generalizations. Proceedings of ADG’2010, pages 171–174.
Luengo, V. (1997). Cabri-Euclide: Un micromonde de Preuve intégrant la réfutation.
PhD thesis, Université Joseph Fourier, Grenoble.
Magajna, Z. (2011). An observation tool as an aid for building proofs. Electronic
Journal of Mathematics and Technology, 5(3). http://www.freepatentsonline.
com/article/Electronic-Journal-Mathematics-Technology/270980194.
html.
Mariotti, M. A. (2000). Introduction to proof: The mediation of a dynamic software
environment. Educational Studies in Mathematics, 44:25–53.
Marrades, R. and Guttiérrez, A. (2000). Proofs produced by secondary school stu-
dents learning geometry in a dynamic computer environment. Educational Studies
in Mathematics, 44(1/2):87–125.
Maxima (2013). Maxima, a computer algebra system. Version 5.30.0. http://
maxima.sourceforge.net/.
Monk, D. (1976). Mathematical Logic. Springer.
Narboux, J. (2006). GeoProof web site. http://home.gna.org/geoproof/.
Narboux, J. (2007a). GeoProof, a user interface for formal proofs in geometry.
In Mathematical User-Interfaces Workshop, Electronic Proceedings. Schloss Ha-
genberg, Linz, Austria. http://www.activemath.org/workshops/MathUI/07/
proceedings/Narboux-Geoproof-MathUI07.html.
Narboux, J. (2007b). A graphical user interface for formal proofs in geometry.
Journal of Automated Reasoning, 39(2):161–180.
Narboux, J. (2007c). Mechanical theorem proving in Tarski’s geometry. Automated
Deduction in Geometry – Lecture Notes in Computer Science, 4869:139–156.
290
Bibliography
Narboux, J. and Braun, G. (2013). Formalization of Tarski’s geometry in the Coq
proof assistant. http://dpt-info.u-strasbg.fr/~narboux/tarski.html.
Nesterenko, Y. V. (1996). Modular functions and transcendence questions. Sbornik:
Mathematics, 187(9).
Nikolić, M., Marić, F., and Janičić, P. (2009). Instance-based selection of policies
for SAT solvers. Theory and Applications of Satisfiability Testing – SAT 2009,
Lecture Notes in Computer Science, 5584:326–340.
OECD (2007). Giving Knowledge for Free: The Emergence of Open Educational
Resources.http://www.oecd.org/edu/ceri/38654317.pdf.
Oracle Corporation (2013). Java Native Interface. http://docs.oracle.com/
javase/7/docs/technotes/guides/jni/index.html.
Parisse, B. (2013). Giac/Xcas, a free computer algebra system. http://
www-fourier.ujf-grenoble.fr/~parisse/giac.html.
Peltomäki, M. and Back, R.-J. (2009). An empirical evaluation of structured deriva-
tions in high school mathematics. In Lin, F.-L., Hsieh, F.-J., Hanna, G., and
de Villiers, M., editors, Proceedings of the ICMI Study 19 conference: Proof and
Proving in Mathematics Education.http://140.122.140.1/~icmi19/files/
Volume_2.pdf.
Petrović, I. and Janićič, P. (2012). Integration of OpenGeoProver with
GeoGebra. http://argo.matf.bg.ac.rs/events/2012/fatpa2012/slides/
IvanPetrovic.pdf.
Pham, T.-M., Bertot, Y., and Narboux, J. (2011). A Coq-based library for in-
teractive and automated theorem proving in plane geometry. In Murgante,
B., Gervasi, O., Iglesias, A., Taniar, D., and Apduhan, B., editors, Com-
putational Science and Its Applications – ICCSA 2011, volume 6785 of Lec-
ture Notes in Computer Science, pages 368–383. Springer, Berlin, Heidelberg.
http://dx.doi.org/10.1007/978-3-642-21898-9_32.
Pinkus, A. Z. and Winitzki, S. (2002). Yacas: A do-it-yourself symbolic algebra
environment. In Calmet, J., Benhamou, B., Caprotti, O., Henocque, L., and
Sorge, V., editors, Artificial Intelligence, Automated Reasoning, and Symbolic
Computation, volume 2385 of Lecture Notes in Computer Science, pages 332–336.
Springer Berlin Heidelberg.
Pólya, G. (1973). How to solve it: A new aspect of mathematical method. Princeton
University Press, Princeton, NJ.
Pósa, L. (2001). Matematikai táboraim. A természet világa, 132(3). http://www.
termeszetvilaga.hu/tv2001/tv0103/tartalom.html.
Preiner, J. (2008). Introducing Dynamic Mathematics Software to Mathematics
Teachers: the Case of GeoGebra. PhD thesis, Paris Lodron University, Salzburg,
Austria.
291
Bibliography
Proclus (1992). A commentary on the First Book of Euclid’s Elements. Princeton
University Press. Translated by Glenn Raymond Morrow.
Rabinowitsch, J. (1929). Zum Hilbertschen Nullstellensatz. Math. Ann., 102(1):520.
Recio, T. and Botana, F. (2004). Where the truth lies (in automatic theorem
proving in elementary geometry). In Laganá, A., Gavrilova, M. L., Kumar, V.,
Mun, Y., Tan, C. J. K., and Gervasi, O., editors, Computational Science and Its
Applications – ICCSA 2004, volume 3044 of Lecture Notes in Computer Science,
pages 761–770. Springer, Berlin, Heidelberg.
Recio, T. and Dalzotto, G. (2009). On protocols for the automated discovery of
theorems in elementary geometry. Journal of Automated Reasoning, 43:203–236.
Recio, T. and Vélez, M. (1999). Automatic discovery of theorems in elementary
geometry. J. Autom. Reasoning, 23:63–82.
Rembowski, V. (2012). Begriffslernen: ‘Los von Euklid!’ und wieder zurück? Presen-
tation at 29. Herbsttagung des AK-Geometrie, Saarbücken, 15 September 2012.
Richter-Gebert, J., Kortenkamp, U. H., and Kohler, E. (2011). Pappus’s Theorem.
http://doc.cinderella.de/tiki-index.php?page=Pappus+Theorem.
Roanes-Macías, E. and Roanes-Lozano, E. (2007). A Maple package for automatic
theorem proving and discovery in 3d-geometry. In Proceedings of the 6th Interna-
tional Conference on Automated Deduction in Geometry, ADG’06, pages 171–188,
Berlin, Heidelberg. Springer. http://dl.acm.org/citation.cfm?id=1784950.
1784961.
Robu, J. (2007). Automated Geometry Theorem Proving. Solutions using the Theo-
rema System. Cluj University Press.
Rokicki, T., Kociemba, H., Davidson, M., and Dethridge, J. (2010). God’s number
is 20. http://www.cube20.org.
Schwabhäuser, W., Szmielew, W., and Tarski, A. (1983). Metamathematische Meth-
oden in der Geometrie. Springer.
Schwartz, J. L. and Yerushalmy, M. (1983). The Geometric Supposer. Sunburst
Communications, Pleasantville, NY.
Silver, E. A., editor (1985). Teaching and learning mathematical problem solving:
Multiple research perspectives. Lawrence Erlbaum Associates, Hillsdale, NJ.
Skemp, R. (1976). Relational understanding and instrumental understanding. Math-
ematics Teaching, 77:20–26.
Strang, G. (2009). Introduction to Linear Algebra, Fourth Edition. Wellesley-
Cambridge Press.
Sturmfels, B. (1989). Computing final polynomials and final syzygies using Buch-
berger’s Gröbner bases method. Results in Mathematics, 15(3–4):351–360.
292
Bibliography
Sutherland, I. E. (1963). Sketchpad: A man-machine graphical communication
system, Lincoln Laboratory, Massachusetts Institute of Technology via Defense
Technical Information Center, technical report no. 296, lexington, ma. http:
//handle.dtic.mil/100.2/AD404509.
Thurston, W. P. (1994). On proof and progress in mathematics. Bulletin of the
American Mathematical Society, 30(2):161–177.
Ufer, S. and Heinze, A. (2009). . . . mehr als nur dir Lösung formulieren. Phasen des
geometrischen Beweisprozesses aufzeigen. Mathematik lehren, 155:43–49.
van der Hoeven, J. (2003). Why freedom is important for scientists. http://www.
texmacs.org/tmweb/about/philosophy.en.html.
von Glaserfeld, E. (1983). Learning as a constructive activity. In Bergeron, J. C.
and Herscovics, N., editors, Proceedings of the North American Chapter of the In-
ternational Group for the Psychology of Mathematics Education, volume 1, pages
41–69. PME-NA, Montreal.
Weitzhofer, S. (2013). Mechanic proving of theorems in plane geometry. Master’s
thesis, Johannes Kepler University, Linz, Austria. http://test.geogebra.org/
~kovzol/guests/SimonWeitzhofer/DiplArbeit.pdf.
Wikipedia (2013a). Algebraic independence — Wikipedia, the free encyclopedia.
https://en.wikipedia.org/w/index.php?title=Algebraic_independence&
oldid=561258880.
Wikipedia (2013b). Jama (numerical linear algebra library) — Wikipedia,
the free encyclopedia. http://en.wikipedia.org/w/index.php?title=JAMA_
(numerical_linear_algebra_library)&oldid=562606435.
Wikipedia (2013c). List of computer algebra systems — Wikipedia, the free ency-
clopedia. http://en.wikipedia.org/w/index.php?title=List_of_computer_
algebra_systems&oldid=573253512.
Wikipedia (2014a). Coq — Wikipedia, the free encyclopedia. http://en.
wikipedia.org/w/index.php?title=Coq.
Wikipedia (2014b). Lajos Pósa (mathematician) — Wikipedia, the free ency-
clopedia. http://en.wikipedia.org/w/index.php?title=Lajos_P%C3%B3sa_
(mathematician).
Wikipedia (2014c). List of interactive geometry software — Wikipedia, the
free encyclopedia. http://en.wikipedia.org/w/index.php?title=List_of_
interactive_geometry_software.
Wikipedia (2014d). Pagerank — Wikipedia, the free encyclopedia. http://en.
wikipedia.org/w/index.php?title=PageRank.
Wikipedia (2014e). Tarski’s axioms — Wikipedia, the free encyclopedia. http://en.
wikipedia.org/w/index.php?title=Tarski%27s_axioms&oldid=589985861.
293
Bibliography
Wikipedia (2015a). Cache (computing) — Wikipedia, the free encyclo-
pedia. http://en.wikipedia.org/w/index.php?title=Cache_(computing)
&oldid=662827581.
Wikipedia (2015b). Colossus computer — Wikipedia, the free encyclope-
dia. https://en.wikipedia.org/w/index.php?title=Colossus_computer&
oldid=666336138.
Wikipedia (2015c). Common Core State Standards Initiative — Wikipedia, the free
encyclopedia. http://en.wikipedia.org/w/index.php?title=Common_Core_
State_Standards_Initiative&oldid=661231145.
Wikipedia (2015d). Gröbner basis — Wikipedia, the free encyclopedia. http://en.
wikipedia.org/w/index.php?title=Gr%C3%B6bner_basis&oldid=639873328.
Wikipedia (2015e). Java (programming language) — Wikipedia, the free encyclo-
pedia. http://en.wikipedia.org/w/index.php?title=Java_(programming_
language)&oldid=663207614.
Wikipedia (2015f). Kepler conjecture — Wikipedia, the free encyclo-
pedia. http://en.wikipedia.org/w/index.php?title=Kepler_conjecture&
oldid=651803804.
Wiles, A. J. (1995). Modular elliptic curves and Fermat’s last theorem. Annals of
Math, 141:141.
Wilkie, A. J. (1996). Model completeness results for expansions of the ordered field
of real numbers by restricted Pfaffian functions and the exponential functions. J.
Amer. Math. Soc., 9.
Wilson, S. and Fleuriot, J. (2005). Geometry Explorer: Combining dynamic geom-
etry, automated geometry theorem proving and diagrammatic proofs. In Proceed-
ings of the User Interfaces for Theorem Provers Workshop.http://www.nesc.
ac.uk/talks/417/Session%204/wilson/Wilson-GeometryExplorer.pdf.
Wilson, S. and Fleuriot, J. (2006). Geometry Explorer: A tool for generating di-
agrammatic full-angle method proofs. http://webs.uvigo.es/adg2006/talks_
files/wilson.pdf.
Winkler, F. (1990). Gröbner bases in geometry theorem proving and simplest de-
generacy conditions. Mathematica Pannonica, 1(1):15–32. http://eudml.org/
doc/226707.
Winkler, F. (1996). Polynomial Algorithms in Computer Algebra. Springer.
Wu, W.-T. (1978). On the decision problem and the mechanization of theorem
proving in elementary geometry. Scientia Sinica, 21:157–179.
Ye, Z., Chou, S., and Gao, X. (2010a). Visually dynamic presentation of proofs in
plane geometry, part 1. Basic features and the manual input method. Journal of
Automated Reasoning, 45:213–241.
294
Bibliography
Ye, Z., Chou, S., and Gao, X. (2010b). Visually dynamic presentation of proofs
in plane geometry, part 2. Automated generation of visually dynamic presenta-
tions with the full-angle method and the deductive database method. Journal of
Automated Reasoning, 45:243–266.
Ye, Z., Chou, S. C., and Gao, X. S. (2011). An introduction to Java Geometry
Expert. In Automated Deduction in Geometry, 7th International Workshop, ADG
2008, Shanghai, China, September 22-24, 2008, Revised Papers, Lecture Notes in
Computer Science, volume 6301, pages 189–195. Springer.
Zakai, A. (2013). Emscripten: An LLVM-to-JavaScript compiler. https://github.
com/kripken/emscripten/blob/master/docs/paper.pdf?raw=true.
Zeilberger, D. (2001). Plane geometry: An elementary textbook by Shalosh B. Ekhad,
XIV (circa 2050). Downloaded from the future by Doron Zeilberger.http://www.
math.rutgers.edu/~zeilberg/GT.html.
Zou, Y. and Zhang, J. (2011). Automated generation of readable proofs for construc-
tive geometry statements with the mass point method. In Proceeding ADG’10:
Proceedings of the 8th international conference on Automated Deduction in Ge-
ometry, pages 221–258. Springer, Berlin, Heidelberg.
295
Eidesstattliche Erklärung
Ich erkläre an Eides statt, dass ich die vorliegende Dissertation selbstständig und
ohne fremde Hilfe verfasst, andere als die angegebenen Quellen und Hilfsmittel nicht
benutzt bzw. die wörtlich oder sinngemäß entnommenen Stellen als solche kenntlich
gemacht habe.
Die vorliegende Dissertation ist mit dem elektronisch übermittelten Textdokument
identisch.
Linz, 13. Juli 2015
_________________
Zoltán Kovács
297
Curriculum Vitae
Name: Zoltán Kovács
Nationality: Hungarian
Date of birth: 31 October 1975
Email: zoltan@geogebra.org
Education
2012–2015 Doctoral studies at Department of Mathematics Education, Johannes
Kepler University, Linz, Austria
2004–2007 Doctoral studies at Bolyai Institute, University of Szeged, Hungary (ab-
solutorium)
1994–1999 University studies at József Attila University of Szeged, Hungary, diplom
in mathematics and computer science
299
... Thus, the different steps of the geometric construction are internally and automatically translated into a collection of algebraic equations with variables representing the coordinates of the elements (free or constrained) in the construction. Likewise, the property under investigation is expressed as a polynomial equation, and, then, some automated reasoning algorithms ( [22], [15]) are executed to rigorously verify if the thesis (the property) holds for the given hypotheses (the geometric construction). Figure 1 shows the use of the Relation tool. ...
... But the precedent Section collects only a very pale image of the complete story behind GeoGebra's automated reasoning tools. It is not the purpose of this paper to get into technical details concerning the theoretical background and algorithms implemented in GeoGebra (see, for instance [15], [3]), but to exemplify how the cooperation of Maple can help understanding some challenging issues involved in the algebraic approach to the verification of some geometric property, contributing to the interpretation of the outcome. Consider, for instance, Figure 9, displaying the following construction: given a couple of points A(a 1 , a 2 ), B(b 1 , b 2 ), we consider three points D(d 1 , d 2 ), F (f 1 , f 2 ), G(g 1 , g 2 ) on the line AB. ...
Chapter
A branch of the Automated Deduction in Geometry (ADG) theory deals with the automatic proof and discovery of theses holding on a given collection of hypotheses. The mechanical proof and derivation of such statements, through computational complex algebraic geometry methods, will be exemplify in this paper through the performance of Ge-oGebra Automated Reasoning Tools. Then we will refer to some challenging issues that rise in this context, regarding the translation in algebraic terms of the given geometric facts, the verification or the finding of the sought properties, and the interpretation of the outcome. We will show how some of these involved issues could be be better approached through the collaboration of Maple packages for polynomial ideal manipulation, requiring, as well, diverse theoretical concepts recently introduced by the authors.
... The well known dynamic geometry program GeoGebra includes automated reasoning commands in its standard versions, introduced through the doctoral dissertation [22] of the first author several years ago (for GeoGebra version 5, since September 2014). ...
Article
Full-text available
We use a quite simple, yet challenging, elementary geometry statement, the so-called "never proved" (by a mathematician) theorem, introduced by Prof. Jiawei Hong in his communication to the IEEE 1986 Symposium on Foundations of Computer Science, to exemplify and analyze the current situation of achievements, ongoing improvements and limitations of GeoGebra's automated reasoning tools, as well as other computer algebra systems, in dealing with geometric inequalities. We present a large collection of facts describing the curious (and confusing) history behind the statement and its connection to automated deduction. An easy proof of the "never proved" theorem, relying on some previous (but not trivial) human work is included. Moreover, as part of our strategy to address this challenging result with automated tools, we formulate a large list of variants of the "never proved" statement (generalizations, special cases, etc.). Addressing such variants with GeoGebra Discovery, Maple{\texttt{Maple}}, REDUCE/Redlog{\texttt{REDUCE/Redlog}} or Mathematica{\texttt{Mathematica}} leads us to introduce and reflect on some new approaches (e.g., partial elimination of quantifiers, consideration of symmetries, relevance of discovery vs. proving, etc.) that could be relevant to consider for future improvements of automated reasoning in geometry algorithms. As a byproduct, we obtain an original result (to our knowledge) concerning the family of triangles inscribable in a given triangle.
... For example, Fig. 4 shows a strange situation where the lines AB and CD are not reported to be perpendicular anymore after zooming out from the initial view (Fig. 5). Here the numerically evaluated value of g, which is defined as AB ⊥ CD, can be false in several positions of A and B. Since D is defined to be the orthocenter of triangle ABC as the intersection of altitudes through A and B, g should be true in theory, but the numerical check is erroneous (see also [Kov15,p. 33] and https://dev.geogebra.org/trac/attachment/ticket/1044/miguels_prover.ggb). In such cases the internal low-level command Prove can be issued to double-check the truth, in fact, symbolically (Fig. 6). ...
Conference Paper
Full-text available
GeoGebra Automated Reasoning Tools is a module of the dynamic mathematics software GeoGebra that combines dynamic geometry and computer algebra to exploit modern methods in formalizing and proving conjectures based on algebraic geometry. In this paper we address some unequivocal results on this novel tool, and also give a list of challenges on the educational use as well.
... This deeply rooted view on such technology as being there for exploration and conjecturing, and on proofs as being formal in their representation, led to attempts on doing proofs by integrating such technology and formal proofs in digital environments. This manifests, for example in, the implementation of proof assistants in dynamic geometry environments (Albano et al. 2019;Nam 2012;Kovács 2015;Miyazaki et al. 2017;Hanna et al. 2019). ...
Article
Full-text available
Digital transformation has made possible the implementation of environments in which mathematics can be experienced in interplay with the computer. Examples are dynamic geometry environments or interactive computational environments, for example GeoGebra or Jupyter Notebook, respectively. We argue that a new possibility to construct and experience proofs arises alongside this development, as it enables the construction of environments capable of not only showing predefined animations, but actually allowing user interaction with mathematical objects and in this way supporting the construction of proofs. We precisely define such environments and call them “mathematical simulations.” Following a theoretical dissection of possible user interaction with these mathematical simulations, we categorize them in relation to other environments supporting the construction of mathematical proofs along the dimensions of “interactivity” and “formality.” Furthermore, we give an analysis of the functions of proofs that can be satisfied by simulation-based proofs. Finally, we provide examples of simulation-based proofs in Ariadne, a mathematical simulation for topology. The results of the analysis show that simulation-based proofs can in theory yield most functions of traditional symbolic proofs, showing promise for the consideration of simulation-based proofs as an alternative form of proof, as well as their use in this regard in education as well as in research. While a theoretical analysis can provide arguments for the possible functions of proof, they can fulfil their actual use and, in particular, their acceptance is of course subject to the sociomathematical norms of the respective communities and will be decided in the future.
... Yet, the very recent survey (Sinclair et al., 2016) by Sinclair, Bartolini Bussi, de Villiers, Jones, Kortenkamp, Leung and Owens does not refer at all to automated reasoning tools. We think it is an urgent issue to address in future surveys of this kind, given the large expansion of GeoGebra in the classrooms worldwide-over 100 million users of its apps and website in 2017-and the fact that ART features have recently been included in it (see Kovács, 2015). This quantitative fact, indeed, has made a qualitative difference: as with pocket calculators, people will probably use ART for checking geometric facts with or without the consensus of the pedagogical community on its role. ...
Chapter
Full-text available
GeoGebra, a very popular software tool for dynamic mathematics, has recently been extended with an automated reasoning tool (ART). A description of the ART features and some examples and reflections regarding its prospective use in the classroom are the main goals of this chapter. ART is based on automatically algebraizing a given geometric construction and then applying effective algebraic geometry tools. This robust approach has already been implemented in several programs but never, until now, with the ability to merge features of dynamic geometry and computer algebra, address non-experts, and achieve worldwide dissemination in the educational community. GeoGebra’s automatic reasoning tools allow, through the Relation command, the automatic finding of geometric conjectures and the verification or denial of these conjectures. Moreover, if the conjecture fails, GeoGebra might suggest (by means of the LocusEquation command) some extra hypotheses, in order to turn true, if suitably modified, the given statement. We argue and exemplify how these tools can be considered potentially useful in a technology-mediated educational framework, where GeoGebra could play the role of a mentor, helping students both to foster their creativity with the discovery of new geometric facts and to develop their own explanations on the truth of these facts. We conclude with some reflections on the challenges that could arise from the popularization of this new technology in mathematics education.
... By means of the deductive database method [48], GATPs also enable students to explore new knowledge and discover new results and theorems (e.g., the algebraic formula of a loci [1,34]). An important addition to any learning environment would be a GATP with the ability to produce human readable formal proofs with, eventually, visual counterparts [8,9,15,20,41,42]. ...
Chapter
Given its formal, logical, and spatial properties, geometry is well suited to teaching environments that include dynamic geometry systems (DGSs) , geometry automated theorem provers (GATPs), and repositories of geometric problems. These tools enable students to explore existing knowledge in addition to creating new constructions and testing new conjectures. In this chapter, we trace the evolution of current automatic proving technologies, how these technologies are beginning to be used by geometry practitioners in general to validate geometric conjectures and generate proofs with natural language and visual rendering, and foresee their evolution and applicability in an educational setting.
... A remarkable contribution is [25] that expresses the importance of the order of introducing non-degeneracy by adding new variables and then performing elimination before or after the algebraic computations, concerning the statement truth. Also, a "before"-type approach has already been used in GeoGebra for automated theorem proving tasks, to avoid further investigation of the result (see [26,Chapter 2.3.6.2]). However, this approach was recently removed in version 5.0.519.0 because of some speed related and technical considerations (see [27]). ...
Chapter
Full-text available
In automated reasoning in geometry, in particular in computing locus equations, degenerate components usually play an important role. Although degeneracy may have multiple meanings by considering different mathematical traditions, avoiding degenerate components is useful from the geometrical point of view.
Article
The purpose of this study is to examine the capabilities of ChatGPT as a tool for supporting students in generating mathematical arguments that can be considered proofs. To examine this, we engaged students enrolled in a mathematics pathways course in evaluating and revising their original arguments using ChatGPT feedback. Students attempted to find and prove a method for the area of a triangle given its side lengths. Instead of directly asking students to prove a formula, we asked them to explore a method to find the area of a triangle given the lengths of its sides and justify why their methods work. Students completed these ChatGPT-embedded proving activities as class homework. To investigate the capabilities of ChatGPT as a proof tutor, we used these student homework responses as data for this study. We analyzed and compared original and revised arguments students constructed with and without ChatGPT assistance. We also analyzed student-written responses about their perspectives on mathematical proof and proving and their thoughts on using ChatGPT as a proof assistant. Our analysis shows that our participants’ approaches to constructing, evaluating, and revising their arguments aligned with their perspectives on proof and proving. They saw ChatGPT’s evaluations of their arguments as similar to how they usually evaluate arguments of themselves and others. Mostly, they agreed with ChatGPT’s suggestions to make their original arguments more proof-like. They, therefore, revised their original arguments following ChatGPT’s suggestions, focusing on improving clarity, providing additional justifications, and showing the generality of their arguments. Further investigation is needed to explore how ChatGPT can be effectively used as a tool in teaching and learning mathematical proof and proof-writing.
Article
In the article, we prove 18 inequalities involving inradius, a length of one side and one additional element of a given triangle. 14 of these inequalities are the necessary and sufficient conditions for the existence and uniqueness of such a triangle. All proofs are based on standard methods of calculus and can serve as a good demonstration of the relationship between different branches of mathematics (geometry, algebra, trigonometry, calculus). The article can be used by teachers and students in courses on advanced classical geometry.
Article
The present paper describes a dynamic investigation of polygons obtained by reflecting an arbitrary point located inside or outside a given polygon through the midpoints of its sides. The activity was based on hypothesizing on the shape of the reflection polygon that would be obtained, testing the hypotheses using dynamic software, and finding a justified mathematical proof. The activity was also applied to properties that are conserved or not conserved as a result of the reflection. Additionally, we find the mathematical relation for the ratio between the area of the reflection polygon and the area of the original polygon. The population of the study was pre-service teachers and experienced teachers who study in teaching college.
ResearchGate has not been able to resolve any references for this publication.