DeepAI AI Chat
Log In Sign Up

Proof-checking Euclid

by   Michael Beeson, et al.

We used computer proof-checking methods to verify the correctness of our proofs of the propositions in Euclid Book I. We used axioms as close as possible to those of Euclid, in a language closely related to that used in Tarski's formal geometry. We used proofs as close as possible to those given by Euclid, but filling Euclid's gaps and correcting errors. Euclid Book I has 48 propositions, we proved 213 theorems. The extras were partly "Book Zero", preliminaries of a very fundamental nature, partly propositions that Euclid omitted but were used implicitly, partly advanced theorems that we found necessary to fill Euclid's gaps, and partly just variants of Euclid's propositions. We wrote these proofs in a simple fragment of first-order logic corresponding to Euclid's logic, debugged them using a custom software tool, and then checked them in the well-known and trusted proof checkers HOL Light and Coq.


page 1

page 2

page 3

page 4


Finding Proofs in Tarskian Geometry

We report on a project to use a theorem prover to find proofs of the the...

Working with first-order proofs and provers

Verifying software correctness has always been an important and complica...

Reimplementing Mizar in Rust

This paper describes a new open-source proof processing tool, mizar-rs, ...

Automatically Proving Mathematical Theorems with Evolutionary Algorithms and Proof Assistants

Mathematical theorems are human knowledge able to be accumulated in the ...

Cheryl's Birthday

We present four logic puzzles and after that their solutions. Joseph Yeo...

Linearizability Analysis of the Contention-Friendly Binary Search Tree

We present a formal framework for proving the correctness of set impleme...

Representing All Stable Matchings by Walking a Maximal Chain

The seminal book of Gusfield and Irving [GI89] provides a compact and al...