Ivan Petrović
Computer Science DepartmentFaculty of MathematicsUniversity of Belgrade
February 5th, 2011
Java implementation of Wu's method for
Automated Theorem Proving in Geometry
Geometry Theorem Provers 1/11
_________________________
Two categories of provers: algebraic (coordinate-based) methods coordinate-free methods
Main algebraic methods: Wu's method (Wen-Tsun Wu) Gröbner bases method (Bruno
Buchberger)
Main coordinate-free methods: Area method (Shang-Ching Chou, Xiao-
Shan Gao, Jing-Zhong Zhang) Full-Angle method (same authors)
Geometry Theorem Provers 2/11
_________________________
Wu's method is powerful mechanism for proving geometry theorems in elementary geometry. It is complete decision procedure for some classes of geometry problems.
How Wu's method works? step 1 – translate geometry problem
into multivariate polynomial system two types of variables: us – independent (parametric) variables xs – dependent variables step 2 – triangulation of polynomial
system (each next equation introduces exactly one new dependent variable) by using pseudo division
Geometry Theorem Provers 3/11
_________________________
step 3 – calculating final reminder of polynomial that represents statement with each polynomial from triangulated system, by using pseudo division of polynomials
step 4 – producing answer on the basis of final reminder and obtained non-degenerative conditions (zero reminder means proved theorem)
Geometry Theorem Provers 4/11
_________________________
main operation – pseudo division:
Geometry Theorem Provers 5/11
_________________________Wu's method in WinGCLC application
(screen shot of Euler's line theorem)
Geometry Theorem Provers 6/11
_________________________
Simple example of Wu's method:
[Theorem about circumcenter of a triangle]
“The tree perpendicular bisectors of a triangle's sides meet in a single point (they are concurrent lines).”
Geometry Theorem Provers 7/11
_________________________Construction written in GCLC:
point A 20 20cmark_b Apoint B 50 20cmark_b B point C 40 70cmark_t C
drawsegment A Bdrawsegment B Cdrawsegment C A
med mab A Bmed mac A Cmed mbc B C
drawline mabdrawline macdrawline mbc
intersec M_1 mab macintersec M_2 mab mbc
cmark_rt M_1cmark_lb M_2
prove {identical M_1 M_2}
Geometry Theorem Provers 8/11
_________________________
Prover output clipping for this example
Geometry Theorem Provers 9/11
_________________________
Prover result for this example
Geometry Theorem Provers 10/11
_________________________
Reimplementation in Java programming language(based on C++ version by Goran Predović and Predrag
Janičić)
Main objectives of this project: greater portability ability of integration in other systems for
mechanical theorem proving and geometry related software (GeoGebra, Geo Thms etc)
Directions for further work: possible improvements of current
implementation by usage of concurrency implementing Gröbner bases prover
Geometry Theorem Provers 11/11
_________________________
Current state of this project:
Classes for algebraic primitives are almost completed
Prepared utilities for prover output to LaTeX and XML format
Implemented pseudo reminder algorithm; after implementation of simple triangulation algorithm, Wu's method is almost completed
At the end dealing with transformation of GCLC input into polynomial form
Geometry Theorem Provers The End
_________________________
Thank you.