Library GeoCoq.Axioms.euclidean_axioms
The following axiom systems are used to formalize
Euclid's proofs of Euclid's Elements.OriginalProofs.statements.
First, we define an axiom system for neutral geometry,
i.e. geometry without continuity axioms nor parallel postulate.
Class euclidean_neutral :=
{
Point : Type;
Circle : Type;
Cong : Point → Point → Point → Point → Prop;
BetS : Point → Point → Point → Prop;
InCirc : Point → Circle → Prop;
OnCirc : Point → Circle → Prop;
OutCirc : Point → Circle → Prop;
PA : Point;
PB : Point;
PC : Point;
CI : Circle → Point → Point → Point → Prop;
eq := @eq Point;
neq A B := ¬ eq A B;
TE A B C := ¬ (neq A B ∧ neq B C ∧ ¬ BetS A B C);
nCol A B C := neq A B ∧ neq A C ∧ neq B C ∧ ¬ BetS A B C ∧ ¬ BetS A C B ∧ ¬ BetS B A C;
Col A B C := (eq A B ∨ eq A C ∨ eq B C ∨ BetS B A C ∨ BetS A B C ∨ BetS A C B);
Cong_3 A B C a b c := Cong A B a b ∧ Cong B C b c ∧ Cong A C a c;
TS P A B Q := ∃ X, BetS P X Q ∧ Col A B X ∧ nCol A B P;
Triangle A B C := nCol A B C;
cn_equalitytransitive :
∀ A B C, eq A C → eq B C → eq A B;
cn_congruencetransitive :
∀ B C D E P Q, Cong P Q B C → Cong P Q D E → Cong B C D E;
cn_equalityreflexive :
∀ A, eq A A;
cn_congruencereflexive :
∀ A B, Cong A B A B;
cn_equalityreverse :
∀ A B, Cong A B B A;
cn_stability :
∀ A B, ¬ neq A B → eq A B;
cn_equalitysub :
∀ A B C D, eq D A → BetS A B C → BetS D B C;
circle : ∀ A B C, neq A B → ∃ X, CI X C A B;
inside : ∀ A B C J P, CI J C A B ∧ InCirc P J ↔ ∃ X Y, CI J C A B ∧ BetS X C Y ∧ Cong C Y A B ∧ Cong C X A B ∧ BetS X P Y;
outside : ∀ A B C J P, CI J C A B ∧ OutCirc P J ↔ ∃ X, CI J C A B ∧ BetS C X P ∧ Cong C X A B;
on : ∀ A B C D J, CI J A C D ∧ OnCirc B J ↔ CI J A C D ∧ Cong A B C D;
axiom_lower_dim : nCol PA PB PC;
axiom_betweennessidentity :
∀ A B, ¬ BetS A B A;
axiom_betweennesssymmetry :
∀ A B C, BetS A B C → BetS C B A;
axiom_innertransitivity :
∀ A B C D,
BetS A B D → BetS B C D → BetS A B C;
axiom_connectivity :
∀ A B C D,
BetS A B D → BetS A C D → ¬ BetS A B C → ¬ BetS A C B →
eq B C;
axiom_nullsegment1 :
∀ A B C, Cong A B C C → eq A B;
axiom_nullsegment2 :
∀ A B, Cong A A B B;
axiom_5_line :
∀ A B C D a b c d,
Cong B C b c → Cong A D a d → Cong B D b d →
BetS A B C → BetS a b c → Cong A B a b →
Cong D C d c;
postulate_extension :
∀ A B C D,
neq A B → neq C D →
∃ X, BetS A B X ∧ Cong B X C D;
postulate_extension2 :
∀ A B C D,
neq A B →
∃ X, TE A B X ∧ Cong B X C D;
postulate_Pasch_inner :
∀ A B C P Q,
BetS A P C → BetS B Q C → nCol A C B →
∃ X, BetS A X Q ∧ BetS B X P;
postulate_Pasch_outer :
∀ A B C P Q,
BetS A P C → BetS B C Q → nCol B Q A →
∃ X, BetS A X Q ∧ BetS B P X;
}.
Second, we enrich the axiom system with line-circle
and circle-circle continuity axioms.
Those two axioms states that we allow ruler and compass
constructions.
Class euclidean_neutral_ruler_compass `(Ax : euclidean_neutral) :=
{
postulate_line_circle :
∀ A B C K P Q,
CI K C P Q → InCirc B K → neq A B →
∃ X Y, Col A B X ∧ Col A B Y ∧ OnCirc X K ∧ OnCirc Y K ∧ BetS X B Y;
postulate_circle_circle :
∀ C D F G J K P Q R S,
CI J C R S → InCirc P J →
OutCirc Q J → CI K D F G →
OnCirc P K → OnCirc Q K →
∃ X, OnCirc X J ∧ OnCirc X K
}.
Third, we introduce the famous fifth postulate of Euclid,
which ensure that the geometry is
Euclidean (i.e. not hyperbolic).
Class euclidean_euclidean `(Ax : euclidean_neutral_ruler_compass) :=
{
postulate_Euclid5 :
∀ a p q r s t,
BetS r t s → BetS p t q → BetS r a q →
Cong p t q t → Cong t r t s → nCol p q s →
∃ X, BetS p a X ∧ BetS s q X
}.
Last, we enrich the axiom system with axioms for equality of areas.
Class area `(Ax : euclidean_euclidean) :=
{
EF : Point → Point → Point → Point → Point → Point → Point → Point → Prop;
ET : Point → Point → Point → Point → Point → Point → Prop;
axiom_EFreflexive :
∀ A B C D, EF A B C D A B C D;
axiom_ETreflexive :
∀ A B C, ET A B C A B C;
axiom_congruentequal :
∀ A B C a b c, Cong_3 A B C a b c → ET A B C a b c;
axiom_ETpermutation :
∀ A B C a b c,
ET A B C a b c →
ET A B C b c a ∧
ET A B C a c b ∧
ET A B C b a c ∧
ET A B C c b a ∧
ET A B C c a b;
axiom_ETsymmetric :
∀ A B C a b c, ET A B C a b c → ET a b c A B C;
axiom_EFpermutation :
∀ A B C D a b c d,
EF A B C D a b c d →
EF A B C D b c d a ∧
EF A B C D d c b a ∧
EF A B C D c d a b ∧
EF A B C D b a d c ∧
EF A B C D d a b c ∧
EF A B C D c b a d ∧
EF A B C D a d c b;
axiom_halvesofequals :
∀ A B C D a b c d, ET A B C B C D →
TS A B C D → ET a b c b c d →
TS a b c d → EF A B D C a b d c → ET A B C a b c;
axiom_EFsymmetric :
∀ A B C D a b c d, EF A B C D a b c d →
EF a b c d A B C D;
axiom_EFtransitive :
∀ A B C D P Q R S a b c d,
EF A B C D a b c d → EF a b c d P Q R S →
EF A B C D P Q R S;
axiom_ETtransitive :
∀ A B C P Q R a b c,
ET A B C a b c → ET a b c P Q R → ET A B C P Q R;
axiom_cutoff1 :
∀ A B C D E a b c d e,
BetS A B C → BetS a b c → BetS E D C → BetS e d c →
ET B C D b c d → ET A C E a c e →
EF A B D E a b d e;
axiom_cutoff2 :
∀ A B C D E a b c d e,
BetS B C D → BetS b c d → ET C D E c d e → EF A B D E a b d e →
EF A B C E a b c e;
axiom_paste1 :
∀ A B C D E a b c d e,
BetS A B C → BetS a b c → BetS E D C → BetS e d c →
ET B C D b c d → EF A B D E a b d e →
ET A C E a c e;
axiom_deZolt1 :
∀ B C D E, BetS B E D → ¬ ET D B C E B C;
axiom_deZolt2 :
∀ A B C E F,
Triangle A B C → BetS B E A → BetS B F C →
¬ ET A B C E B F;
axiom_paste2 :
∀ A B C D E a b c d e,
BetS B C D → BetS b c d → ET C D E c d e →
EF A B C E a b c e → EF A B D E a b d e;
axiom_paste3 :
∀ A B C D a b c d,
ET A B C a b c → ET A B D a b d →
TS C A B D → TS c a b d →
EF A C B D a c b d;
axiom_paste4 :
∀ A B C D F G H K L M e m,
EF A B m D F K H G → EF D B e C G H M L →
TS A B D C → BetS K H M → BetS F G L → BetS B m D → BetS B e C →
EF A B C D F K M L;
axiom_paste5 :
∀ B C D E L M b c d e l m,
EF B M L D b m l d → EF M C E L m c e l →
BetS B M C → BetS b m c → BetS E L D → BetS e l d →
EF B C E D b c e d;
}.