Computer Based Conjectures and Proofs in Teaching ...

5 downloads 0 Views 6MB Size Report
Feb 3, 2017 - KISS, an abbreviation for “keep it simple and straightforward” is a design principle to ...... Botana, F., Abánades, M. A., and Escribano, J. (2011).
JOHANNES KEPLER ¨ UNIVERSITAT LINZ

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

JKU

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 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.

Zusammenfassung Das Ziel dieser Dissertation ist es, effektive Lehrmethoden zur Ausweitung des Unterrichts für Vermutungen und Beweise in euklidschen Geometrie in Schulen durch Computeranwendung zu identifizieren, und geignete Technologien und SoftwareTools durch die Erweiterung bestehender dynamischer Geometriesysteme zu entwickeln. Basierend auf einer Analyse der möglichen Grundziele des Mathematikunterrichtes und einem Überblick der vorhandenen Software-Tools und der Theorie, wird folgendes thematisiert: • Ein allgemeiner Bericht hebt Bereiche, in denen Computer im Unterricht tatsächlich helfen können, und Bereiche der typischen Gefahren des Computermissbrauchs 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 euklidische 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. Proofs in education 1.1. Proof and proving in mathematics education . . . . . . . . . 1.1.1. A historical overview . . . . . . . . . . . . . . . . . . 1.1.2. Computer based proofs in mathematics . . . . . . . . 1.1.3. The teacher’s role . . . . . . . . . . . . . . . . . . . . 1.1.4. Teaching Euclidean proofs: arguments and traditions 1.1.5. Dynamic geometry tools . . . . . . . . . . . . . . . . 1.1.6. Automated theorem proving methods . . . . . . . . . 1.1.7. The ADG supply . . . . . . . . . . . . . . . . . . . . 1.1.8. The educational demand . . . . . . . . . . . . . . . . 1.1.9. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Proving with computer support . . . . . . . . . . . . . . . . 1.2.1. Cinderella . . . . . . . . . . . . . . . . . . . . . . . . 1.2.2. GCLC . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.3. GeoProof . . . . . . . . . . . . . . . . . . . . . . . . 1.2.4. Coq . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.5. GEX and JGEX . . . . . . . . . . . . . . . . . . . . 1.2.6. GeoGebra 4.4 . . . . . . . . . . . . . . . . . . . . . . 1.2.7. Other software packages . . . . . . . . . . . . . . . . 1.2.8. Conclusion . . . . . . . . . . . . . . . . . . . . . . . .

1

. . . . . . . . . . . . . . . . . . .

2. Implementation in GeoGebra 2.1. Rationale behind improving GeoGebra . . . . . . . . . . . . . 2.2. The portfolio prover . . . . . . . . . . . . . . . . . . . . . . . 2.2.1. The algebraic approach: benefits and limitations . . . . 2.2.2. New commands in GeoGebra: Prove and ProveDetails 2.2.3. The Relation Tool . . . . . . . . . . . . . . . . . . . . 2.2.4. Summary . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. The Gröbner basis method . . . . . . . . . . . . . . . . . . . . 2.3.1. Logical consequence . . . . . . . . . . . . . . . . . . . 2.3.2. Structure of geometry theorems . . . . . . . . . . . . . 2.3.3. Elimination instead of equation solving . . . . . . . . . 2.3.4. “Generally false” and “other” statements, discovery . . 2.3.5. Readable sufficient conditions . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

5 5 5 8 10 13 15 17 22 28 34 35 38 39 47 49 71 78 82 85

. . . . . . . . . . . .

89 89 91 94 105 108 113 129 129 134 136 142 144

i

Contents 2.3.6. Evaluation . . 2.3.7. Extensions . . 2.4. Recio’s method . . . 2.5. Java implementation 2.6. Conclusion . . . . . .

Contents . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

3. Application and examples 3.1. The Relation Tool . . . . . . . . . . 3.1.1. The framework . . . . . . . 3.1.2. GeoGebra files and applets . 3.1.3. Triangles . . . . . . . . . . . 3.1.4. Polygons . . . . . . . . . . . 3.1.5. Parallelograms . . . . . . . 3.1.6. Various lines and circles of a 3.1.7. Various theorems . . . . . . 3.1.8. Conclusion . . . . . . . . . . 3.2. Other applications, future work . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

181 183 190 195 198

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . triangle . . . . . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

201 201 201 203 203 210 210 213 216 217 218

4. Summary

221

Acknowledgments

223

A. Readability of algebraic proofs 225 A.1. Desargues’ theorem with Wu’s method . . . . . . . . . . . . . . . . . 225 B. Coq B.1. B.2. B.3.

code for proving the parallelogram theorem in Tarski’s Primary definitions for chapter 7 . . . . . . . . . . . . . Definition for Lemma 7.20 . . . . . . . . . . . . . . . . . Proving Lemma 7.21 . . . . . . . . . . . . . . . . . . . .

system 233 . . . . . . . 233 . . . . . . . 235 . . . . . . . 235

C. Remarks on the Gröbner basis method C.1. Equation systems for testing various CAS . . . . . . . . . . . . C.2. The Buchberger algorithm . . . . . . . . . . . . . . . . . . . . . C.3. Equation systems after elimination . . . . . . . . . . . . . . . . C.3.1. Giac code to mimic Singular output . . . . . . . . . . . . C.3.2. The Buchberger algorithm in Singular . . . . . . . . . . C.3.3. Freedom of choice in the Buchberger algorithm . . . . . . C.3.4. Uniqueness of a minimal–reduced–normed Gröbner basis C.3.5. Euler’s line . . . . . . . . . . . . . . . . . . . . . . . . . C.3.6. Pappus’ hexagon theorem . . . . . . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

239 . 239 . 241 . 241 . 241 . 242 . 246 . 254 . 257 . 260

D. New command line options in GeoGebra 271 D.1. Prover options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 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 of proofs.

Objectives of the thesis In this dissertation literature about technology integration into mathematics classrooms for teaching of proofs is reviewed, and existing dynamic geometry and automated 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 perspective. 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 mathematics education in the twentieth century, and the influence of computers is discussed. 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 empowered 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 mathematics 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 community 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 conditions 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 situations. 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 implemented 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 describes 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 perspective. 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 reasoning.” 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 certain 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 generalize 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 mathematical problem or to complete a computer process. • A conjecture 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 argumentation will also be used as synonyms.) • A proof or proving is a test which shows that a calculation is correct. • A theorem 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 International 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 critics who emphasized that the back-to-basics movement did not imply any real understanding 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 significantly 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 conclusions 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 mathematics, revining an interest in algorithmic and discrete methods, leading to in1

8

http://www.europarl.europa.eu/sides/getDoc.do?type=TA&reference= P6-TA-2006-0365&format=XML&language=EN

1.1 Proof and proving in mathematics education creased reliance on constructive proofs, and making possible new ways of justification, 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 experiments 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 nontraditional 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 education (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 mathematics who implicitly or explicitly claim that humans may no longer play an important role not only in proving, but in discovering mathematics: Zeilberger’s Elementary Textbook on plane geometry (Zeilberger (2001)) contains only computer generated 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 exploration. 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 human 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 Euclidean 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 mathematical 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 teaching 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 Educational 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 terminology). 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 including 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 mathematical complexity, teachers have to deal with a high level of epistemological 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 relationship 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, communication” model (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 interest 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 (hereafter 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 adequate, 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 geometry 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) including 2 : 2

On 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 volumes 3 in 1991 and 1995) suggests a shift of emphasis in the teaching of geometry for the secondary level. Its 2009 “successor”, the Common Core State Standards 4 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 documents. An example is “High School: Geometry » Circles”,5 in 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 quadrilateral 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 geometry. 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 A lying on the y-axis, its neighbor vertex B is lying on the x-axis; prove that coordinates of center K of 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 3

http://www.nctm.org/Standards-and-Positions/Principles-and-Standards/ http://www.corestandards.org/Math/Practice/ 5 http://www.corestandards.org/Math/Content/HSG/C/ 6 http://dload.oktatas.educatio.hu/erettsegi/feladatok_2014tavasz_kozep/k_mat_ 14maj_fl.pdf 4

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

2014 2013 2012 2011 2010 2009

South Africa Columbia Argentina The Netherlands Kazakhstan Germany

6 6 6 6 6 6

Proving type problems 5 5 4 4 3 4

Euclidean geometry problems 2 2 2 1 2 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 (Borwein (2012)) several figures are included to support the need of a DGS for exploring 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 currently it is the most widely used DGS in mathematics education in the world.7 Also 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 c2 in 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). 7

According 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 information 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 Expressions, 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 geometry 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 ↓ Geometric Proof

→ Algebraic Translation ↓ ← Algebraic Proof

Instead of following the direct connection from “Geometric Theorem” to “Geometric 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 classic 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 geometric 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 including “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 unreadably 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 footnote 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 address 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 geometric 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 dependent variables.

19

Chapter 1

Proofs in education

3. Reading off the algebraic degeneracy conditions and converting them to geometric 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 humanreadable 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 lemmas. 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 segments, signed area and Pythagorean difference. Janičić et al. (2012) give an exhausitve 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 l and m and 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) k u and K(m) k v. 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 remarkable 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 argumentation. 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 interactive 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 process 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 written in universal-existential form. . . This form has all universal quantifiers preceding any existential quantifiers, so that all sentences can be recast in the form ∀u∀v . . . ∃a∃b . . . This fact allowed Tarski to prove that Euclidean geometry is decidable: there exists an algorithm which can determine 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 theorem 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 intelligent, 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 properties 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 system 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 abstract 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: socalled 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 diagrammatic proofs [are] less intuitive but they can be used to prove hard theorems.” 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 educational 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 simple 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

5

6

1.1 Proof and proving in mathematics education

iagrammatic Forward-Chaining A Diagrammatic Proof Backward-Chaining Pr

ques D. Fleuriot

Sean Wilson ARW-05 and Jacques D. Fleuriot

Geometry ARW-05 Explorer

G

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 required for adding auxiliary elements.8 Thus heuristics for adding auxiliary 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 definitions and do not work for many theorems. The best such method (GDD) seems programmatically rather an algorithm using AI than a “simple” ADG algorithm. 8

Auxiliary 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 application 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 mathematical 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 comfortable 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 (“introduction, 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

1 2 3 4 5 6 7 8

2

3

4

5

Verification

Challenge

Systematization

Activity Per theory framework Experiments Controlled discovery with questions Uncontrolled discovery (automatized) Level 1–6 verifications Collecting relationships Obtaining readable proofs Confirmation

1

Discovery

Steps

Introduction

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.

X X X X X X

X X X 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 mathematical 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 mathematical 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 dependent 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 =(A1+B1)/2 ↓

1 2

E =(A1+C1)/2 ↓

6 5 4 3 2 1 0

0

1

2

3

4

5

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, B and C must 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 forever. 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 crucial 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 provide advanced tools (including a programming language) for defining mathematical problems and to solve them efficiently (see Chapter 2, 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 B and C were originally set to (4, 0) and (3, 3), respectively. D is the orthocenter of triangle ABC, Boolean value g is defined to check whether AB ⊥ CD. By changing B and C to (40000, 0) and (30000, 30000), respectively, there is no numerical error yet (that is, g is “true”), but when dragging C one 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, D and E are points on a circle where the line DE is a diameter of the circle, then the angle DBE∠ is a right angle), assuming that A is 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 2 show the elements of the sequence zn = zn−1 + z1 where z1 corresponds one of the pixels of the paintbrush. (z1 is 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 already 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.

GeoGebra 4.4

GEX and JGEX

Coq

GeoProof

GCLC

Activity Per theory framework Experiments Controlled discovery with questions Uncontrolled discovery (automatized) Verifications: 1 single occurrence 2 numerical check 3 different positions 4 extra verification 5 statistics 6 ATP 6 Collecting relationships 7 Obtaining readable proofs 8 Confirmation 1 2 3 4 5

Cinderella

Software

X X X

X

X

X X

X X X

X X X

X X X

X X X X

X X

X

X

X X

X X X

X

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 multiple 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 educational 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 relevant 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 pragmatical 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 committers (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.9 It 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 instructions 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, B and C), then draw two segments (a and b) by dragging the mouse. The next step is drawing two parallel lines (c and d) by dragging the segments to the appropriate point. Intersection point of these two lines gives point D. Now let us define segment e as 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 B and 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 philosophically) 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 discovery is supported by exporting a construction into HTML format and show the 9

One 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 GCLC 10 (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, B and B, C, respectively. Then parallel lines p and q through A and C are defined, respectively, and their intersection point D is 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 E are constructed. 10

GCLC is an acronym for Geometry Constructions language to LATEX 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 supported, 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 LATEX 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.

11

By 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

Chapter 1

Proofs in education

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

42

1.2 Proving with computer support

Conjecture(s): 1. Given conjecture • GCLC code: same_length A E E C • Expression: AE ∼ = EC

2

Resolving constructed lines • ab 3 A, B ; line is horizontal (i.e., y(A) = y(B)) • bc 3 B, C • p 3 A, D • q 3 C, D ; line is horizontal (i.e., y(C) = y(D)) • ac 3 A, C, E • bd 3 B, D, E

3

Creating polynomials from hypotheses • Point A

no condition

• Point B

no condition

• Point C

no condition

• Line ab: A B – point A is on the line (A, B) no condition – point B is on the line (A, B) no condition • Line bc: B C – point B is on the line (B, C) no condition – point C is on the line (B, C) no condition 2

43

Chapter 1

Proofs in education

• Parallel, p: A bc – Line (A, D) parallel with line (B, C) p1 = u3 x2 + (−u3 u2 + u3 u1 ) • Parallel, q: C ab – Line (C, D) parallel with line (A, B) — true by the construction • Intersection of lines, D: p q – point D is on the line (A, D) no condition – point D is on the line (C, D) no condition • Line ac: A C – point A is on the line (A, C) no condition – point C is on the line (A, C) no condition • Line bd: B D – point B is on the line (B, D) no condition – point D is on the line (B, D) no condition • Intersection of lines, E: ac bd – point E is on the line (A, C) p2 = −u3 x4 + u2 x3 – point E is on the line (B, D) p3 = −u3 x4 + x3 x2 − u1 x3 + u3 u1

4

Creating polynomial from the conjecture • Processing given conjecture(s). • Segment [A, E] equal size as segment [E, C] p4 = 2u2 x4 + 2u3 x3 + (−u23 − u22 )

Conjecture 1: p5 = 2u2 x4 + 2u3 x3 + (−u23 − u22 ) 3

44

1.2 Proving with computer support

5

Invoking the theorem prover

The used proving method is Buchberger’s method. Input polynomial system is:

5.1

p0

=

u3 x2 + (−u3 u2 + u3 u1 )

p1

=

p2

=

−u3 x4 + u2 x3

−u3 x4 + x3 x2 − u1 x3 + u3 u1

Iteration 1

Current set is S1 = p0

=

u3 x2 + (−u3 u2 + u3 u1 )

p1

=

p2

=

−u3 x4 + u2 x3

−u3 x4 + x3 x2 − u1 x3 + u3 u1

1. Creating S-polynomial from the pair (p0 , p1 ). Skipping pair p0 and p1 because gcd of their leading monoms is zero. 2. Creating S-polynomial from the pair (p0 , p2 ). Skipping pair p0 and p2 because gcd of their leading monoms is zero. 3. Creating S-polynomial from the pair (p1 , p2 ). Forming S-pol of p1 and p2 : p12 = u3 x3 x2 + (−u3 u2 − u3 u1 )x3 + u23 u1 S-pol added.

5.2

Iteration 2

Current set is S2 = p0

=

u3 x2 + (−u3 u2 + u3 u1 )

p1

=

p2

=

−u3 x4 + u2 x3

p3

=

−u3 x4 + x3 x2 − u1 x3 + u3 u1 −2u23 u1 x3 + u33 u1

1. Creating S-polynomial from the pair (p0 , p3 ). Skipping pair p0 and p3 because gcd of their leading monoms is zero. 2. Creating S-polynomial from the pair (p1 , p3 ). Skipping pair p1 and p3 because gcd of their leading monoms is zero. 3. Creating S-polynomial from the pair (p2 , p3 ). Skipping pair p2 and p3 because gcd of their leading monoms is zero. 4

45

Chapter 1

Proofs in education

5.3

Groebner Basis

Groebner basis has 4 polynomials: p0

=

u3 x2 + (−u3 u2 + u3 u1 )

p1

=

p2

=

−u3 x4 + u2 x3

p3

=

−u3 x4 + x3 x2 − u1 x3 + u3 u1 −2u23 u1 x3 + u33 u1

Groebner basis succesfully computed.

6

Reducing Polynomial Conjecture

Reducing with polynomial p1 , the result is: p21 = (−2u23 − 2u22 )x3 + (u33 + u3 u22 ) 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 proof process contained 4 terms. Time Complexity: Time spent by the prover is 0.001 seconds.There are no ndg conditions.

5

46

1.2 Proving with computer support

1.2.3. GeoProof GeoProof (Narboux (2007b,a)) is a DGS written by Julien Narboux and some contributors (including former developer Nicolas Francois). It supports proving Euclidean 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 E as midpoint of the virtual segment BD) one could verify if points A, E and C are 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 numerical 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 Chapter 2, 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 parallels CD and AD, respectively; GeoProof introduces these points for its own work for setting up the hypotheses properly. Point D is 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 A and B, or B and C are the same; in short negated form: A 6= B and B 6= C, b) point C differs from Line_3_b, and D differs 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. E itself 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 ABC4 is 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 mathematical assertions, mechanically checks proofs of these assertions, helps to find formal proofs, and extracts a certified program from the constructive 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 πr2 team 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 → AD → exists x, exists y, Bet A B x ∧ Bet A C y ∧ Bet x T y; five_segments : forall A A’ B B’ C C’ D D’ : Tpoint, Cong A B A’ B’ → Cong B C B’ C’ → Cong A D A’ D’ → Cong B D B’ D’ → Bet A B C → Bet A’ B’ C’ → A B → Cong C D C’ D’; 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 Q → Cong 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 A1–A10, 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 E 3 and E 4 . In a nutshell, Bet is the “between” relation, Bet A B C holds if and only if B is between A and C on 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. inner_pasch is called A7 in the monograph and listed as

For example,

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 x of 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 A and B points 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 todo 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 := B 0 , E := A0 , F := B 0 , 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 recognizing 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 subgoal (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 0

Name in the monograph (in German) Einleitung

7

Das Tarskische Axiomensystem, kartesiche Räume Folgerungen aus A1 bis A5 Einfache Sätze über die Zwischenbeziehung Einfache Sätze über Kongruenz und Zwischenbeziehung Konnexität der Zwischenbeziehung und Streckenvergleich Halbgeraden und Geraden Punktspiegelungen

8

Rechte Winkel

1 2 3 4

5 6

9 10

11

12

Library names in Coq

Halbebenen und Ebenen, Unterräume Geradenspiegelungen Kongruenz und Größenvergleich von Winkeln, Kongruenzsätze, Orthogonalität für Unterräume Parallelität

Topics (translation from German) Introduction

tarski_axioms

Tarski’s axiomatic system, Cartesian spaces

cong

Consequences of A1–A5

bet

Basic theorems about Bet

cong_bet, col

bet_le

Basic theorems about Cong and Bet Relationship of Bet and equality of segments

out_lines

Rays and lines

midpoint

Point mirrorings

orthogonality plane line_reflexivity

angles

parallel

Right angles Halfplanes and planes, subspaces Line mirrorings Congruence and comparison of angles, congruence theorems, ortogonality for subspaces 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 , H3 and 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 → BD → Cong 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 ∧ b 6= d ∧ ab ≡ 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 P 0 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. BDP 4 ∼ = DBP 0 4). 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 H5 as 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 H5 to be split into the point definition x : “user defined” relation by using command

62

Tpoint and Cong_3

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 : ~ Col A B C H0 : B D H1 : Cong A B C D H2 : Cong B C D A H3 : Col A P C H4 : Col B P D x : Tpoint H5 : Cong_3 B D P D B x ______________________________________(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 (x and H5 ) now. 2. Now we will show that D, B and x are 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 H5 and a suitable Col hypothesis (here H4 again) 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 H5 will be rewritten by using the long definition of Cong_3. The command spliter then turns H5 (which is a conjunction of three relations) into three different hypotheses (here H5 , H7 and H8 will 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 , H7 and H8 will 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. H8 will 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 H0 resolves 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 A is 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 = P 0 (= x). Following the proof in the monograph (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 → CD → Col 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 = Q must 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 conjunctions to separated hypotheses. Then we apply Theorem 6.21 by aligning A := A, B := C, C := B, D := D and 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 : ~ Col A B C H0 : B D H1 : Cong A B C D H2 : Cong B C D A H3 : Col A P C H4 : Col B P D

66

1.2 Proving with computer support x : Tpoint H5 : Cong_3 B D P D B x H6 : Col D B x H7 : Col B D P H16 : Cong_3 B D P D B x H17 : Cong B A D C H18 : Cong D A B C H8 : Col B D P H13 : Cong_3 B D P D B x H14 : Cong B C D A H15 : Cong D C B A H9 : Cong P A x C 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 := x matches 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 -> BD -> 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 H and some properties of Col, b) BD holds due to H0 , c) Col A C P is because of H3 and 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 H8 which is the same), f) Col B D x holds because of H6 and some properties of Col. So we can move P = x to the hypotheses list, but we also change the occurences of x to P to get the status 1 subgoal MT : Tarski A : Tpoint B : Tpoint C : Tpoint D : Tpoint P : Tpoint

67

Chapter 1

Proofs in education

H : ~ Col A B C H0 : B D H1 : Cong A B C D H2 : Cong B C D A H3 : Col A P C H4 : Col B P D H5 : Cong_3 B D P D B P H6 : Col D B P H7 : FSC B D P A D B P C H8 : FSC B D P C D B P A H9 : Cong P A P C 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 = A ∨ is_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 = D ∨ is_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 B and D. By typing induction H14.

the first part of the conjunction will be temporarily assumed, but when entering 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 : ~ Col A B C H0 : B D H1 : Cong A B C D H2 : Cong B C D A H3 : Col A P C H4 : Col B P D H5 : Cong B D D B H27 : Cong B P D P H28 : Cong D P B P H6 : Col D B P H7 : Col B D P 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 : Col B D P 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 : Cong P A P C 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 \/ Bet C P A /\ Cong C P P A H14 : Bet B P D H29 : Cong B P P D ______________________________________(1/1) (Bet A P C /\ Cong A P P C) /\ Bet B P D /\ Cong B P P D

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 = A and 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 C is 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 remaining 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 contraindicated. Despite this, the following educational remarks can be concluded: 1. Coq implementation of mathematical monographs can be a trustworthy reflection 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 framework, 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 languages as well. Also using speech recognition might be a research topic. Combining 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 computer. 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 nonsimple 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 computer 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 developments, 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 D and 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.

12

Due 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. E is a midpoint of DB, because E, D and B are 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 ∼ = AEB4 because • CD = AB (see Step 4 why), • ECD∠ = 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. ECD∠ = EAB∠ because of CD k AB (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∠ = CAB∠ because of CD k AB (which is a hypothesis). 8. CAD∠ = ACB∠ since AD k BC (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∠ = EAB∠ and 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 theorems, 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 successful run, but (like for GCLC and OpenGeoProver) the produced outputs are useless for classroom purposes. The full angle method cannot prove the parallelogram 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, A and 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 13

At the most time of writing this dissertation 4.4 was the latest version of GeoGebra. Meanwhile, 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 Chapter 2.

78

1.2 Proving with computer support In Fig. 1.30 the construction is drawn by creating free points A, B and C, then segments a, b, and two parallel lines c, d are drawn to get D as their intersection. Segments e, f are defined as segments AC and BD. Now E is the intersection of e and f , and F is the midpoint of BD. (Label of F was moved away to show the two last definitions.) Now coordinates of E and F can be dynamically verified in the Algebra View (on the left). When using the Relation Tool in the toolbar, the user can select points E and F directly 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 “isEqualEF ” (which is defined by the “E = F ” Boolean Value expression). In case the dragged points cause a situation when E 6= F this 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 = F is 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 C has dynamic colors depending on the output value of expression ? E = F , and Trace On is checked. When A and B are fixed, its visibly important for C that 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 E 0 and F 0 , 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 GeoGebraTube 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 public, 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 d0 and AC to d1 . Hence when asking the application to compute the length of EC symbolically, the correct answer d1 /2 is 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 prototype. 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 k BC and DC k BA, 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 explicitly 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 consequences 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 opinion is that the current technology is good enough for the classroom use. Also many materials are already available as examples for controlled discovery with questions 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 support these educational aims. In my opinion, however, it offers too much functionality: 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 Experiments Controlled discovery Uncontrolled discovery Level 1–6 verifications Collecting relationships Obtaining readable proofs Confirmation Educational demand

99K −→ −→

Frameworks for advanced users in some DGS in some DGS

−→ −→ 99K 99K

Algebraic proofs: yes/no answers in some DGS Readable for mathematicians Frameworks for advanced users 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, 14

CICM 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 traditional proving, but computer proving will in time, with suitable advances in mechanized mathematics, replace traditional proving just as text editing 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 environment 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 commands are introduced and explained, and also how they are integrated into GeoGebra. Also the Relation Tool, their primary graphical user interface is demonstrated. Then a detailed explanation follows by describing the most effectively used algebraic method, emphasizing its basics by the terms of undergraduate level mathematics. 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 Chapter 1, 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 application 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 JGEX 1 met 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 magnitude and success of the project is obvious. Also GeoGebra won several educational 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 Moodle, 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 In this chapter we will refer to several software packages which were already mentioned and cited in Chapter 1. 2 Explanation 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.” 1

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 computations can be done internally, or by outsourcing some heavy computations to external software packages. Later, in 2012 we contacted the developers of the debuting 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 Chapter 1, 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 complicated 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, Buchberger 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 Spanish school of applied algebraic geometry, lead by professors Tomás Recio and Francisco 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 equation 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 Chapter 1, Sec. 1.2.2). Other researchers also contacted the GeoGebra Team about implementing their algorithm with GeoGebra. The international 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 communication 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 basis 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 programming interface (API) for OpenGeoProver and a command line driven interface to choose from the offered services and configure them. On the other hand, GeoGebra 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: • Botana 3 /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. 3

Other 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 problems which can be turned into polynomial equation systems. This is not the case for many problems discussed in the secondary school, including exponentional or logarithmical equations. Even worse, inequalities (i. e. expressions like a < b) cannot be converted into equations by GeoGebra currently, however, there is theoretical background 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, however, 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 constructed on the sides of any triangle, either all outward, or all inward, the centres of those equilateral triangles themselves form an equilateral triangle. Here, unfortunately, 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 appears 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 rotations 5 since the theorem is valid for both outward and inward (Fig. 2.3) triangles. (Rotations are not completely implemented in GeoGebra’s prover subsytem yet.) At the time of finishing this dissertation in 2015 there are a number of related articles 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 Computation, 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. 5 Let coordinates of triange ABC be A = (a1 , a2 ), B = (b1 , b2 ) and C = (c1 , c2 ). Now center F of equilateral triangle constructed on side AB can be computed by rotating√point B around point A by 30 degrees clockwise to B 0 and scaling AB 0 to AF with a factor of 1/ 3. This step is actually !   1 1 √ −−→ 1 −→ −−→ cos(−30o ) − sin(−30o ) 2 2 3 · AB · √3 = done by computing AF = · AB. 1 1 sin(−30o ) cos(−30o ) − 2√ 2 3 √ Since it is impossible to directly use 3 in the algebraic approach, we need to fall back to use

4

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 t constant for which t2 = 3 and work with t = ± 3 at the same time. Actually, the positive case will describe and the negative one the “inward” statement. Now  the “outward” theorem,  we obtain F =

a1 +b1 + 2

b2 −a2 t

−−→ we conclude that F D =



a2 +b2 + 2

a1 −b1 t

. Also by using a similar computation for point D  2b −a −c a −2b +c a1 +c1 + 2 t 2 2 c2 −a2 + 1 t 1 1 , and its length is the square root 2 2 ,

of 13 (a21 + a22 + b21 + b22 + c21 + c22 − a1 b1 − a1 c1 − a2 b2 − a2 c2 − b1 c1 − b2 c2 ) + 1t (a1 (b2 − c2 ) + b1 (c2 − a2 ) + c1 (a2 − b2 )). The first element of this sum is invariant of cycling points A → B → C → A, a1 b1 c1 and the second element can be written as 1t · a2 b2 c2 which is also invariant of cycling. 1 1 1 Thus F D = DE = EF , that is, triangle DEF is equilateral. Note that we heavily used that cosine and sine of 30o are 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 operations 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, however 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 GeoGebra tool with one or more equivalent or similar ones. Statements which require a non-Euclidean construction cannot be stated. For example, 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 polynomial time in the average case”, is listed as one of the most difficult mathematical 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 perfecting 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, however, not really capable of difficult algebraic computations in several variables. Instead, 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 different 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 general, 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. 6 However, for the more difficult tests, Reduce was still too slow. With no doubt Singular won all tests with significantly 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 Thales Altitudes Medians Bisectors Euler Nine Angle Simson Pappus Simson-R Pappus-R Average Average*

Maxima 0.2 0.29 0.4 0.42 1.19 36.08

6 .43 56 .43

JAS 2 0.46 0.51 0.65 0.5 1.66 1.5 1.74 3.37 5.77 2.33 1 .85 7 .85

Reduce 0.11 0.11 0.12 0.1 0.2 0.11 0.75

Singular 0.00 0.00 0.00 0.00 0.01 0.01 0.01

CoCoA 0.08 0.29 0.14 0.09 0.14 0.13 0.31

Giac 0.03 0.03 0.09 0.01 0.01 0.01 0.04

6.07 2.18 1 .08 14 .41

0.5 0.07 0.02 0 .06 6 .06

9.28 0.87 0.34 1.17 7.17

4.9 0.15 0.4 0 .57 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. 6

Here 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 Singular. Giac was definitely faster than Reduce for the more difficult tests even without 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 2010 7 and 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 GeoGebra (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 7 8

http://www.cnet.com/news/apple-not-committing-to-java-support-in-mac-os-x-10-7/ http://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 portability Giac is used by default in GeoGebra 5 also for theorem proving. 2.2.1.4. Singular WebService 9 Singular is mostly written in C++. Embedding it into GeoGebra would be theoretically possible. GeoGebra is shipped as two kinds of main but completely different platforms: the classical, desktop based version, running in a JVM can include embedded 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 This subsection (with minor differences) has already been published as a part of Botana and Kovács (2014), Section 2. 10 http://www.singular.uni-kl.de/index.php/singular-download/ install-windows-single-file.html 11 Since 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. 9

102

2.2 The portfolio prover instance on a machine accessible via Internet (Botana et al. (2012b)). Our demonstrational 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 opportunity to download the ISO image of SingularWS, install it into VirtualBox and set the remote machine to the locally installed Singular web service (SingularWS) instance. 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 downloaded.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 SingularWS caching 13 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 compliant 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 R in variables 12 13

http://193.146.36.205/pi_SingularWS_Sage5.8.img.zip According 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.

x and y over 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 timeout 15 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. 14 15

See a detailed explanation of the meaning of these computations in Sec. 2.3. timeout 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 envelope 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 command 16 in GeoGebra 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 modifications 17 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 l1 and l2 are perpendicular, the user should enter l1 ⊥ l2 ; now GeoGebra will store this as an expression which can be true or false, depending on the current configuration of l1 and 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 l1 and l2 seem to be always perpendicular, GeoGebra could be asked if this is really the case by entering Prove[l1 ⊥ l2 ] (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 16 17

http://wiki.geogebra.org/en/LocusEquation_Command https://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 exceptional 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 Chapter 1, Sec. 1.2, here the only degeneracy condition is “A, B and C are 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 reasons. 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 A and B they are equal. Note that this statement can still be true “sometimes”: if A and B accidentally coincide. This is, however, a very rare situation. We can even introduce the notion of “always false” statement when considering the following example: Let point A be arbitrary, and let point B be a translation of A with a constant non-zero vector. Now the statement A = B is always false. GeoGebra does not distinguish “always false” cases from “generally 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 A and B can be equal if they coincide, that is, our example in case 4 could actually be considered “true” by thinking 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 dimensions (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 inbetween. For instance, let us consider the following Example 1. Let c be a circle with its center A = (0, 0) and its circumpoint B = (1, 0). Let l be a line that joins A and B. Now let C and D the intersection points of c and 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 C and 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 B and D is 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 Gröbner basis Wu’s always true generally true other – generally false false always false (error/unknown)

Implementation in GeoGebra Prove true

ProveDetails {true} {true,{degeneracy conditions}}

false

{false}

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 statement 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 conditions, the Relation Tool appends “always true” to the statement. ii. If the output is “{true,{. . .}}” and there is a list of readable conjuctions 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 command 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 := Prove[statement]

Output 2. (b): not generally true

false

P?

PD := ProveDetails[statement]

Output 2. (a) iii.: true under certain conditions

Internal error 2. (a) v. PD ?

true {false}

P?

Output 2. (a) iv. A.: generally true

{true}

Output 2. (a) i.: always true

undefined

P? true

Output 2. (a) iv. B.: possibly generally true

no

Does the conjunction of the non-degeneracy conditions contain only human readable conditions?

yes Output 2. (a) ii.: true under conjuction of specified conditions

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 GeoGebra, 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 Chapter 3 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, e and f as points D, E and F , respectively. Intersection point of d and e is G. Midpoints of AG, BG and CG are H, I and J, respectively. Finally, midpoints of sides a, b and c are K, L and M , respectively. The statement is that points D, E, F , H, I, J, K, L and M lie 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 g which is defined by circumference points K, L and 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: • D lies on g under the condition: • B and C are not equal For points E, F we get similar conditions, and for H, I and J we obtain that nondegeneracy 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, L and M to g, in this case the trivial answer “always true” will be returned (see case a) i.). In fact in Fig. 2.7 point K coincides 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 = K or b = c and 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, E and 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 system 18 ), elegant lists of sufficient conditions can be obtained, for example It is generally true that: • H lies on g under the condition: • a and b are not perpendicular and • a and c are not perpendicular 18

Another 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 B Advanced. . . B Preferences – CAS B CAS 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, J or even, for example, F , I, M when defining the circle. In this latter case we obtain, for example It is generally true that: • L lies on g under the condition: • a and b are not equal and • a and c are not perpendicular and • b and c are not perpendicular or Under certain conditions: • E lies on g This last result is as described in case a) iii. Finally, when circle g is defined as the circumcircle of points D, E and H then the statement F lies on g will 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 future 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 independently. 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 [email protected]

Abstract. GeoGebra is open source mathematics education software being used in thousands of schools worldwide. Its forthcoming new version 5 will support automatic geometry theorem proving by using various 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 BuchbergerKapur 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, including 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 worldwide. 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 primarily 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 theorem 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 1 by Julien Narboux [2,3], GDI-Discovery 1

http://home.gna.org/geoproof/

[4] by Jos´e Valcarce and Francisco Botana, the Geometry Expert 2 [5] by ShangChing 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 mathematics 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).4 Also GeoGebraTube, available at http://www.geogebratube.org, GeoGebra’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 contributed 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 2 3

4

http://www.mmrc.iss.ac.cn/gex/ One example of a system planned for teaching proofs interactively is Jacques Gressier’s Geometrix, available at http://geometrix.free.fr. Similar statistics can be obtained from the Alexa web information company at http://alexa.com: the February 2014 results are: 9475. Mathematica, 78826. GeoGebra, 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 downloading, and also the GDD method (which probably has the most remarkable reputation 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 implemented methods in other applications than GeoGebra as well. For such a warranty 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 experts 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 suggested 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 5

http://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 traditional approach, namely the Buchberger-Kapur method (based on Gr¨obner basis computation), was also implemented by the author, by using external computations 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’ Howto6 but 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 definitely on its open-sourced roots. Without the existing knowledge in the implementations 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 GeoGebra the highest level action is to use the Relation Tool which purely decides if 6

7 8

See http://dev.geogebra.org/trac/wiki/TheoremProving for more details. This documentation includes detailed description of the applied methods and the supported constructions and statements for them. For an example, see http://wiki.geogebra.org/en/ProveDetails_Command. See http://www.geogebratube.org/student/b104296 for an example.

GeoGebra UI skills required

Relation Tool verification level

Prove Prove

ProveDetails ProveDetails

ShowProof ShowProof

GeoGebra internal computations Portfolio Prover

FP arithmetics

preference R-Prover

B-Prover

Built-in CAS

Singular CAS

Open-Geo-Prover W

A

F

M

G

Outsourced computations

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 “undefined” (the last kind of output means that no trustworthy answer was found). What is more, the new ProveDetails command can give more details on degeneracy conditions, that is it can refine the statement by adding a sufficient condition if needed. For the moment the ShowProof command is not yet implemented 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 containing 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 example, 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 algorithm 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 9

Degeneracy conditions can be obtained only by two methods at the moment.

compute polynomial based calculations, thus we use the Singular computer algebra system (CAS) instead. After changing internal CAS of GeoGebra from Reduce to Giac we found that Giac computed Gr¨ obner bases surprisingly efficiently, 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 utilizing 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 moment, 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 compile 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 GeoGebra’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 examples, 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 teachers 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, e and f and 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 tests for a trustworthy answer if the heights are always concurrent (not 2 considering some degenerate cases). The computation took 8 milliseconds on a typical PC12 : 12:32:26.218 12:32:26.218 12:32:26.219 12:32:26.224 12:32:26.224

4.2

DEBUG: DEBUG: DEBUG: DEBUG: DEBUG:

geogebra.m.o$a.run[-1]: Using AUTO geogebra.common.p.y.a[-1]: Using RECIOS_PROVER geogebra.common.l.q.a.a[-1]: nr of tests: 10 geogebra.common.l.q.i.[-1]: Benchmarking: 8 ms geogebra.common.l.q.i.[-1]: Statement is TRUE

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

11

12

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. Beta versions of GeoGebra 5 are available at http://download.geogebra.org/ installers/5.0. 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 distances, 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.[-1]: Benchmarking: 47 ms 12:56:23.836 DEBUG: geogebra.common.l.q.i.[-1]: Statement is TRUE

4.3

Ceva’s theorem

Triangle ABC and its arbitrary internal point D was constructed in Fig. 4. Now intersection points of lines AD, BD, CD 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 = CF , 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.[-1]: Benchmarking: 95 ms 13:22:02.055 DEBUG: geogebra.common.l.q.i.[-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, circumpoint B and diameter DE, lines BD and BE are perpendicular. In Fig. 5 we use free points A, B and C (which is a technical point to define D and E as intersection points of line AC and the circle). Let us denote BD by b and BE by d. Now GeoGebra command ProveDetails[b⊥d] returns the output list {true,{”AreEqual[A,C]”}} which has the following meaning: – the statement “b ⊥ d” holds in general, – if A = 6 C then the statement surely holds. Clearly, if A = C, points D and E are 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; ii0) { return true } } return false}],[myeliminate(polylist,varlist):={local ii,jj,kk; kk:=[]; jj:=gbasis(polylist,varlist,revlex); for (ii:=0; ii $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)

258

--- ./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)

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 equation 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*v7v11*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

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

266

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

Remarks on the Gröbner basis method

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

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

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

268

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

Remarks on the Gröbner basis method

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

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

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

270

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

Remarks on the Gröbner basis method

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

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 window 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 substituting the correct path of GeoGebra—usually it is “Downloads\GeoGebra 5.0.VVV.0” where VVV is the version number). Here “...” stands for the possible 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 defined. 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 documented 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 0 when 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 SingularWS 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 --prover=captionalgebra:true setting.

were

created

by

using

the

• 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 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 –, f red, 174 –, red, 156 –, spol, 156 ordering, 155 portfolio prover, 91, 199 principle –, KISS, 86, 105, 271 –, WB/BB, 25 question, 130

276

Index 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

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” . . . . . . . . . . . . . . . . . . 1.2. First results of GeoGebraTube search for keyword “proof” . . . . . . 1.3. Visual proof of Pythagoras’ Theorem in GeoGebraTube . . . . . . . . 1.4. Example for diagrammatic proofs . . . . . . . . . . . . . . . . . . . . 1.5. Poor man’s verification of the midline theorem . . . . . . . . . . . . . 1.6. Abánades’ example to easily reproduce a numerical error . . . . . . . 1.7. Painting the Mandelbrot Set . . . . . . . . . . . . . . . . . . . . . . . 1.8. Cinderella 2.8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.9. WinGCLC 9.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.10. Verification with GeoProof 0.5beta . . . . . . . . . . . . . . . . . . . 1.11. Proving with GeoProof . . . . . . . . . . . . . . . . . . . . . . . . . 1.12. Tarski’s axiomatic system described by Coq commands . . . . . . . . 1.13. The Pasch axiom (A7) in Tarski’s system . . . . . . . . . . . . . . . 1.14. The Coq IDE (version 8.3pl4) . . . . . . . . . . . . . . . . . . . . . . 1.15. Starting a proof with Coq . . . . . . . . . . . . . . . . . . . . . . . . 1.16. Rewriting the goal in Coq . . . . . . . . . . . . . . . . . . . . . . . . 1.17. Applying an axiom with a hint in Coq . . . . . . . . . . . . . . . . . 1.18. Applying an axiom automatically in Coq . . . . . . . . . . . . . . . . 1.19. No more subgoals to prove: the proof has been completed . . . . . . . 1.20. Coq’s (here temporary) database has been extended by a valid proof . 1.21. Coq IDE after loading primary definitions . . . . . . . . . . . . . . . 1.22. Schwabhäuser et al. (1983)’s proof for the parallelogram theorem . . . 1.23. Some extra lemmas to prepare the proof of Lemma 7.21 . . . . . . . . 1.24. Windows version of Geometry Expert (GEX), DGS facility . . . . . . 1.25. Geometry Expert (GEX), ATP facility . . . . . . . . . . . . . . . . . 1.26. Hierarchy graph of a GDD proof . . . . . . . . . . . . . . . . . . . . . 1.27. Look and feel in JGEX . . . . . . . . . . . . . . . . . . . . . . . . . 1.28. The list of automatically derived facts in JGEX . . . . . . . . . . . . 1.29. Screenshot of an animated step of the automatic proof in JGEX . . . 1.30. Constructing and analyzing the parallelogram theorem in GeoGebra . 1.31. Defining an RGB color value based on an expression in GeoGebra . . 1.32. Painting the map of statement truth in GeoGebra . . . . . . . . . . . 1.33. Using the built-in CAS for analytical computations . . . . . . . . . . 1.34. Geometry Expressions 3.1 . . . . . . . . . . . . . . . . . . . . . . . . 1.35. GDI-Discovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.36. Géométrix 4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6 17 18 25 32 33 34 39 40 48 49 51 52 53 54 55 55 56 57 58 60 61 63 72 73 75 76 77 78 79 80 80 81 82 83 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 . . . . . . . . . . . . . . . . . . . . . 2.2. Napoleon’s theorem (outward case) . . . . . . . . . . . . . . . . . 2.3. Napoleon’s theorem (inward case) . . . . . . . . . . . . . . . . . . 2.4. History of embedded CAS in GeoGebra . . . . . . . . . . . . . . . 2.5. GeoGebra communicates with SingularWS via the HTTP protocol 2.6. The Relation Tool algorithm as a flowchart . . . . . . . . . . . . . 2.7. The nine point circle theorem . . . . . . . . . . . . . . . . . . . . 2.8. Midline theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.9. Diagonals of a parallelogram bisect each other . . . . . . . . . . . 2.10. Mini-example: possible need for extra equations on elimination . . 2.11. Altitudes of a triangle are concurrent . . . . . . . . . . . . . . . . 2.12. Thales’ (circle) theorem . . . . . . . . . . . . . . . . . . . . . . . 2.13. Euler’s line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.14. Intersection of two hyperbolas . . . . . . . . . . . . . . . . . . . . 2.15. Leading monomials of a reduction chain . . . . . . . . . . . . . . 2.16. “Unallowed area”, “infinite column” and “infinite rows” . . . . . . 2.17. Unallowed areas, infinite column and infinite rows, 2nd step . . . 2.18. Unallowed areas and infinite row, 4th step . . . . . . . . . . . . . 2.19. Pappus’ hexagon theorem . . . . . . . . . . . . . . . . . . . . . . 2.20. Extra dashed lines help to investigate degeneracy conditions . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

91 95 95 99 104 110 111 134 136 140 144 149 151 161 165 171 172 173 176 197

3.1. Hierarchy graph of selected theorems of Hajnal and Némethy (1988) 3.2. Relation Tool checks Theorem 2 by verifying a single occurence . . 3.3. Theorem 2 is constructed step by step in GeoGebra . . . . . . . . . 3.4. Checking Theorem 2 with the Relation Tool . . . . . . . . . . . . . 3.5. A possible way of single occurence check for Theorem 3 . . . . . . . 3.6. Output of the Relation Tool for Theorem 3 . . . . . . . . . . . . . . 3.7. An opportunity of single occurence check for Theorem 4 . . . . . . 3.8. Preparation for a symbolical check for Theorem 6 . . . . . . . . . . 3.9. Output of the Relation Tool for Theorem 6 . . . . . . . . . . . . . . 3.10. Single occurence check for Theorem 7 . . . . . . . . . . . . . . . . . 3.11. Preparations for using the Relation Tool for Theorem 13 . . . . . . 3.12. Using the Relation Tool for Theorem 13 . . . . . . . . . . . . . . . 3.13. Workaround to check concurrence for Theorem 14 . . . . . . . . . . 3.14. Theorem 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.15. Theorem 18 by using “point equality check” approach . . . . . . . . 3.16. Theorem 18 by using the “angle equality check” approach . . . . . . 3.17. Using the Relation Tool with “angle equality check” approach . . . 3.18. Preparing Theorem 20, second part . . . . . . . . . . . . . . . . . . 3.19. Report of the Relation Tool for Theorem 20, second part . . . . . . 3.20. A GeoGebraBook summarizing 7 theorems . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

203 204 205 206 206 207 208 209 209 210 212 212 213 214 215 215 216 216 217 218

280

List of Tables 1.1. 1.2. 1.3. 1.4.

Problem types of the International Mathematical Olympiads Possible ways for computer supported proving in education . Activities supported by various computer software packages Structure of the monograph and its implementation . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

15 29 36 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 Computations 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 Development. Grune & Stratton, New York. Babai, L. (1994). Probably true theorems, cry wolf? Mathematical Society, 41(5):453–454.

Notices of the American

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 Seminars. 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 Mathematical Society, 22:363–385. Bernat, P. (1996). Using dynamic geometry environments for problem solving: CHYPRE: an interactive environment for elementary geometry problem solving. 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. International 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 Mathematics Education. The 19th ICMI Study, pages 69–96. Springer. Botana, F. (2007). Bringing more intelligence to dynamic geometry by using symbolic 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 accessible 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 achievements. 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 computations. 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 theorem 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 automation to improve both accessibility and readability of formal proofs in geometry. 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 Mathematica 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 automated geometry theorem proving and discovering. J. Automated Reasoning, 25:219–246. Chou, S.-C. (1987). Mechanical geometry theorem proving. Kluwer Academic Publishers Norwell, MA, USA.

285

Bibliography Chou, S.-C., Gao, X.-S., and Zhang, J.-Z. (1996). Automated Generation of Readable 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 happening in the Mathematical Sciences, 1:7–12. Cobb, P. (1988). The tension between theories of learning and instruction in mathematics 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. LogiCal 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). 24(4):333–344.

Visual theorems.

Educational Studies in Mathematics,

de Villiers, M. (1990). The role and function of proof in mathematics. Pythagoras, 24:17–24. de Villiers, M. (1999). Emeryville.

Rethink proof with Sketchpad.

Key Curriculum Press,

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 Seminar, 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. Educational 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 Geometry: 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 system 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. reduce-algebra.com/docs/reduce.pdf.

http://

Hilbert, D. (1899). Grundlagen der Geometrie. B. G. Teubner, Leipzig. Hohenwarter, M. (2002). GeoGebra: Ein Softwaresystem für dynamische Geometrie 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 Reasoning, 44(1–2):3–24. Janičić, P., Narboux, J., and Quaresma, P. (2012). The area method: a recapitulation. 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. Journal 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 education. 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 Automated 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., editor, 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 disagreement 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). Principles 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 students 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 Hagenberg, 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. www-fourier.ujf-grenoble.fr/~parisse/giac.html.

http://

Peltomäki, M. and Back, R.-J. (2009). An empirical evaluation of structured derivations 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 interactive and automated theorem proving in plane geometry. In Murgante, B., Gervasi, O., Iglesias, A., Taniar, D., and Apduhan, B., editors, Computational Science and Its Applications – ICCSA 2011, volume 6785 of Lecture 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? Presentation 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 International 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 Theorema 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 Methoden 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. Mathematics Teaching, 77:20–26. Strang, G. (2009). Introduction to Linear Algebra, Fourth Edition. WellesleyCambridge Press. Sturmfels, B. (1989). Computing final polynomials and final syzygies using Buchberger’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 International 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 encyclopedia. http://en.wikipedia.org/w/index.php?title=List_of_computer_ algebra_systems&oldid=573253512. Wikipedia (2014a). Coq — Wikipedia, the free encyclopedia. wikipedia.org/w/index.php?title=Coq.

http://en.

Wikipedia (2014b). Lajos Pósa (mathematician) — Wikipedia, the free encyclopedia. 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 encyclopedia. http://en.wikipedia.org/w/index.php?title=Cache_(computing) &oldid=662827581. Wikipedia (2015b). Colossus computer — Wikipedia, the free encyclopedia. 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 encyclopedia. http://en.wikipedia.org/w/index.php?title=Java_(programming_ language)&oldid=663207614. Wikipedia (2015f). Kepler conjecture — Wikipedia, the free encyclopedia. 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 geometry, automated geometry theorem proving and diagrammatic proofs. In Proceedings 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 diagrammatic 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 degeneracy 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 presentations 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 constructive geometry statements with the mass point method. In Proceeding ADG’10: Proceedings of the 8th international conference on Automated Deduction in Geometry, 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:

[email protected]

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 (absolutorium) 1994–1999 University studies at József Attila University of Szeged, Hungary, diplom in mathematics and computer science

299

Suggest Documents