Library GeoCoq.Tarski_dev.Definitions
Require Export GeoCoq.Axioms.tarski_axioms.
Section Definitions.
Context `{Tn:Tarski_neutral_dimensionless}.
Section Definitions.
Context `{Tn:Tarski_neutral_dimensionless}.
Definition 2.10.
Definition OFSC A B C D A' B' C' D' :=
Bet A B C /\ Bet A' B' C' /\
Cong A B A' B' /\ Cong B C B' C' /\
Cong A D A' D' /\ Cong B D B' D'.
Definition 3.8.
Definition 4.1.
Definition IFSC A B C D A' B' C' D' :=
Bet A B C /\ Bet A' B' C' /\
Cong A C A' C' /\ Cong B C B' C' /\
Cong A D A' D' /\ Cong C D C' D'.
Definition 4.4.
Definition Cong_3 A B C A' B' C' :=
Cong A B A' B' /\ Cong A C A' C' /\ Cong B C B' C'.
Definition Cong_4 P1 P2 P3 P4 Q1 Q2 Q3 Q4 :=
Cong P1 P2 Q1 Q2 /\ Cong P1 P3 Q1 Q3 /\ Cong P1 P4 Q1 Q4 /\
Cong P2 P3 Q2 Q3 /\ Cong P2 P4 Q2 Q4 /\ Cong P3 P4 Q3 Q4.
Definition Cong_5 P1 P2 P3 P4 P5 Q1 Q2 Q3 Q4 Q5 :=
Cong P1 P2 Q1 Q2 /\ Cong P1 P3 Q1 Q3 /\
Cong P1 P4 Q1 Q4 /\ Cong P1 P5 Q1 Q5 /\
Cong P2 P3 Q2 Q3 /\ Cong P2 P4 Q2 Q4 /\ Cong P2 P5 Q2 Q5 /\
Cong P3 P4 Q3 Q4 /\ Cong P3 P5 Q3 Q5 /\ Cong P4 P5 Q4 Q5.
Definition 4.10.
Definition 4.15.
Definition FSC A B C D A' B' C' D' :=
Col A B C /\ Cong_3 A B C A' B' C' /\ Cong A D A' D' /\ Cong B D B' D'.
Definition 5.4.
Definition 5.14.
Definition 6.1.
Definition 6.22.
Definition Inter A1 A2 B1 B2 X :=
(exists P, Col P B1 B2 /\ ~Col P A1 A2) /\
Col A1 A2 X /\ Col B1 B2 X.
Definition 7.1.
Definition 8.1.
Definition 8.11.
Definition Perp_at X A B C D :=
A <> B /\ C <> D /\ Col X A B /\ Col X C D /\
(forall U V, Col U A B -> Col V C D -> Per U X V).
Definition 8.11.
Definition 9.1.
Definition TS A B P Q :=
~ Col P A B /\ ~ Col Q A B /\ exists T, Col T A B /\ Bet P T Q.
Definition ReflectP A A' C := Midpoint C A A'.
Definition 9.7.
Satz 9.33.
Definition Coplanar A B C D :=
exists X, (Col A B X /\ Col C D X) \/
(Col A C X /\ Col B D X) \/
(Col A D X /\ Col B C X).
Definition 10.3.
Definition ReflectL P' P A B :=
(exists X, Midpoint X P P' /\ Col A B X) /\ (Perp A B P P' \/ P = P').
Definition Reflect P' P A B :=
(A <> B /\ ReflectL P' P A B) \/ (A = B /\ Midpoint A P P').
Definition ReflectL_at M P' P A B :=
(Midpoint M P P' /\ Col A B M) /\ (Perp A B P P' \/ P = P').
Definition Reflect_at M P' P A B :=
(A <> B /\ ReflectL_at M P' P A B) \/ (A = B /\ A = M /\ Midpoint M P P').
Definition 11.2.
Definition CongA A B C D E F :=
A <> B /\ C <> B /\ D <> E /\ F <> E /\
exists A', exists C', exists D', exists F',
Bet B A A' /\ Cong A A' E D /\
Bet B C C' /\ Cong C C' E F /\
Bet E D D' /\ Cong D D' B A /\
Bet E F F' /\ Cong F F' B C /\
Cong A' C' D' F'.
Definition 11.23.
Definition InAngle P A B C :=
A <> B /\ C <> B /\ P <> B /\ exists X, Bet A X C /\ (X = B \/ Out B X P).
Definition 11.27.
Definition LeA A B C D E F := exists P, InAngle P D E F /\ CongA A B C D E P.
Definition GeA A B C D E F := LeA D E F A B C.
Definition 11.38.
Definition LtA A B C D E F := LeA A B C D E F /\ ~ CongA A B C D E F.
Definition GtA A B C D E F := LtA D E F A B C.
Definition 11.39.
Definition 11.39.
Definition 12.2.
Definition Par_strict A B C D :=
A <> B /\ C <> D /\ Coplanar A B C D /\ ~ exists X, Col X A B /\ Col X C D.
Definition 12.3.
Definition 13.4.
Definition Q_Cong l := exists A B, forall X Y, Cong A B X Y <-> l X Y.
Definition Len A B l := Q_Cong l /\ l A B.
Definition Q_Cong_Null l := Q_Cong l /\ exists A, l A A.
Definition EqL (l1 l2 : Tpoint -> Tpoint -> Prop) :=
forall A B, l1 A B <-> l2 A B.
Definition Q_CongA a :=
exists A B C,
A <> B /\ C <> B /\ forall X Y Z, CongA A B C X Y Z <-> a X Y Z.
Definition Ang A B C a := Q_CongA a /\ a A B C.
Definition Ang_Flat a := Q_CongA a /\ forall A B C, a A B C -> Bet A B C.
Definition EqA (a1 a2 : Tpoint -> Tpoint -> Tpoint -> Prop) :=
forall A B C, a1 A B C <-> a2 A B C.
Definition 13.9.
Definition Perp2 A B C D P :=
exists X Y, Col P X Y /\ Perp X Y A B /\ Perp X Y C D.
Definition Q_CongA_Acute a :=
exists A B C,
Acute A B C /\ forall X Y Z, CongA A B C X Y Z <-> a X Y Z.
Definition Ang_Acute A B C a := Q_CongA_Acute a /\ a A B C.
Definition Q_CongA_nNull a := Q_CongA a /\ forall A B C, a A B C -> ~ Out B A C.
Definition Q_CongA_nFlat a := Q_CongA a /\ forall A B C, a A B C -> ~ Bet A B C.
Definition Q_CongA_Null a := Q_CongA a /\ forall A B C, a A B C -> Out B A C.
Definition Q_CongA_Null_Acute a :=
Q_CongA_Acute a /\ forall A B C, a A B C -> Out B A C.
Definition is_null_anga' a :=
Q_CongA_Acute a /\ exists A B C, a A B C /\ Out B A C.
Definition Q_CongA_nNull_Acute a :=
Q_CongA_Acute a /\ forall A B C, a A B C -> ~ Out B A C.
Definition Lcos lb lc a :=
Q_Cong lb /\ Q_Cong lc /\ Q_CongA_Acute a /\
(exists A B C, (Per C B A /\ lb A B /\ lc A C /\ a B A C)).
Definition Eq_Lcos la a lb b := exists lp, Lcos lp la a /\ Lcos lp lb b.
Definition lcos2 lp l a b := exists la, Lcos la l a /\ Lcos lp la b.
Definition Eq_Lcos2 l1 a b l2 c d :=
exists lp, lcos2 lp l1 a b /\ lcos2 lp l2 c d.
Definition Lcos3 lp l a b c :=
exists la lab, Lcos la l a /\ Lcos lab la b /\ Lcos lp lab c.
Definition Eq_Lcos3 l1 a b c l2 d e f :=
exists lp, Lcos3 lp l1 a b c /\ Lcos3 lp l2 d e f.
Definition 14.1.
Definition Ar1 O E A B C :=
O <> E /\ Col O E A /\ Col O E B /\ Col O E C.
Definition Ar2 O E E' A B C :=
~ Col O E E' /\ Col O E A /\ Col O E B /\ Col O E C.
Definition 14.2.
Definition 14.3.
Definition Sum O E E' A B C :=
Ar2 O E E' A B C /\
exists A' C',
Pj E E' A A' /\ Col O E' A' /\
Pj O E A' C' /\
Pj O E' B C' /\
Pj E' E C' C.
Definition Proj P Q A B X Y :=
A <> B /\ X <> Y /\ ~Par A B X Y /\ Col A B Q /\ (Par P Q X Y \/ P = Q).
Definition Sump O E E' A B C :=
Col O E A /\ Col O E B /\
exists A' C' P',
Proj A A' O E' E E' /\
Par O E A' P' /\
Proj B C' A' P' O E' /\
Proj C' C O E E E'.
Definition 14.4.
Definition Prod O E E' A B C :=
Ar2 O E E' A B C /\
exists B', Pj E E' B B' /\ Col O E' B' /\ Pj E' A B' C.
Definition Prodp O E E' A B C :=
Col O E A /\ Col O E B /\
exists B', Proj B B' O E' E E' /\ Proj B' C O E A E'.
Definition 14.8.
Definition 14.38.
Definition Diff O E E' A B C :=
exists B', Opp O E E' B B' /\ Sum O E E' A B' C.
Definition sum3 O E E' A B C S :=
exists AB, Sum O E E' A B AB /\ Sum O E E' AB C S.
Definition Sum4 O E E' A B C D S :=
exists ABC, sum3 O E E' A B C ABC /\ Sum O E E' ABC D S.
Definition sum22 O E E' A B C D S :=
exists AB CD, Sum O E E' A B AB /\ Sum O E E' C D CD /\ Sum O E E' AB CD S.
Definition Ar2_4 O E E' A B C D :=
~ Col O E E' /\ Col O E A /\ Col O E B /\ Col O E C /\ Col O E D.
Definition 14.34.
Definition 14.38.
Definition LtP O E E' A B := exists D, Diff O E E' B A D /\ Ps O E D.
Definition LeP O E E' A B := LtP O E E' A B \/ A = B.
Definition Length O E E' A B L :=
O <> E /\ Col O E L /\ LeP O E E' O L /\ Cong O L A B.
Definition 15.1.
Definition Is_length O E E' A B L :=
Length O E E' A B L \/ (O = E /\ O = L).
Definition Sumg O E E' A B C :=
Sum O E E' A B C \/ (~ Ar2 O E E' A B B /\ C = O).
Definition Prodg O E E' A B C :=
Prod O E E' A B C \/ (~ Ar2 O E E' A B B /\ C = O).
Definition PythRel O E E' A B C :=
Ar2 O E E' A B C /\
((O = B /\ (A = C \/ Opp O E E' A C)) \/
exists B', Perp O B' O B /\ Cong O B' O B /\ Cong O C A B').
Definition 16.1. We skip the case of dimension 1.
Definition 16.5. P is of coordinates (X,Y) in the grip SU1U2 using unit length OE.
Definition Projp P Q A B :=
A <> B /\ ((Col A B Q /\ Perp A B P Q) \/ (Col A B P /\ P = Q)).
Definition Cd O E S U1 U2 P X Y :=
Cs O E S U1 U2 /\ Coplanar P S U1 U2 /\
(exists PX, Projp P PX S U1 /\ Cong_3 O E X S U1 PX) /\
(exists PY, Projp P PY S U2 /\ Cong_3 O E Y S U2 PY).
Strict betweeness
Definition of the sum of segments.
SumS A B C D E F means that AB + CD = EF.
Definition SumS A B C D E F := exists P Q R,
Bet P Q R /\ Cong P Q A B /\ Cong Q R C D /\ Cong P R E F.
PQ is the perpendicular bisector of segment AB
Definition Perp_bisect P Q A B := ReflectL A B P Q /\ A <> B.
Definition Perp_bisect_bis P Q A B :=
exists I, Perp_at I P Q A B /\ Midpoint I A B.
Definition Is_on_perp_bisect P A B := Cong A P P B.
Definition of the sum of angles.
SumA A B C D E F G H I means that ABC+DEF = GHI.
Definition SumA A B C D E F G H I :=
exists J, CongA C B J D E F /\ ~ OS B C A J /\ CongA A B J G H I.
The SAMS predicate describes the fact that the sum of the two angles is "at most straight"
Definition SAMS A B C D E F :=
A <> B /\ (Out E D F \/ ~ Bet A B C) /\
exists J, CongA C B J D E F /\ ~ OS B C A J /\ ~ TS A B C J.
Definition of the sum of the interior angles of a triangle.
TriSumA A B C D E F means that the sum of the angles of the triangle ABC
is equal to the angle DEF
The difference between a straight angle and the sum of the angles of the triangle ABC.
It is a non-oriented angle, so we can't discriminate between positive and negative difference
Definition Defect A B C D E F := exists G H I J K L,
TriSumA A B C G H I /\ Bet J K L /\ SumA G H I D E F J K L.
TriSumA A B C G H I /\ Bet J K L /\ SumA G H I D E F J K L.
P is on the circle of center A going through B
P is inside or on the circle of center A going through B
P is outside or on the circle of center A going through B
P is strictly inside the circle of center A going through B
P is strictly outside the circle of center A going through B
Definition OutCircleS P A B := Lt A B A P.
Definition EqC A B C D :=
forall X, OnCircle X A B <-> OnCircle X C D.
The circles of center A passing through B and
of center C passing through D intersect
in two distinct points P and Q.
Definition InterCCAt A B C D P Q :=
~ EqC A B C D /\
P<>Q /\ OnCircle P C D /\ OnCircle Q C D /\ OnCircle P A B /\ OnCircle Q A B.
The circles of center A passing through B and
of center C passing through D
have two distinct intersections.
The circles of center A passing through B and
of center C passing through D
are tangent.
The line AB is tangent to the circle OP
Definition Tangent A B O P := exists !X, Col A B X /\ OnCircle X O P.
Definition TangentAt A B O P T :=
Tangent A B O P /\ Col A B T /\ OnCircle T O P.
C is on the graduation based on AB
Inductive Grad : Tpoint -> Tpoint -> Tpoint -> Prop :=
| grad_init : forall A B, Grad A B B
| grad_stab : forall A B C C',
Grad A B C ->
Bet A C C' -> Cong A B C C' ->
Grad A B C'.
Definition Reach A B C D := exists B', Grad A B B' /\ Le C D A B'.
| grad_init : forall A B, Grad A B B
| grad_stab : forall A B C C',
Grad A B C ->
Bet A C C' -> Cong A B C C' ->
Grad A B C'.
Definition Reach A B C D := exists B', Grad A B B' /\ Le C D A B'.
There exists n such that AC = n times AB and DF = n times DE
Inductive Grad2 : Tpoint -> Tpoint -> Tpoint -> Tpoint -> Tpoint -> Tpoint ->
Prop :=
| grad2_init : forall A B D E, Grad2 A B B D E E
| grad2_stab : forall A B C C' D E F F',
Grad2 A B C D E F ->
Bet A C C' -> Cong A B C C' ->
Bet D F F' -> Cong D E F F' ->
Grad2 A B C' D E F'.
Prop :=
| grad2_init : forall A B D E, Grad2 A B B D E E
| grad2_stab : forall A B C C' D E F F',
Grad2 A B C D E F ->
Bet A C C' -> Cong A B C C' ->
Bet D F F' -> Cong D E F F' ->
Grad2 A B C' D E F'.
Graduation based on the powers of 2
Inductive GradExp : Tpoint -> Tpoint -> Tpoint -> Prop :=
| gradexp_init : forall A B, GradExp A B B
| gradexp_stab : forall A B C C',
GradExp A B C ->
Bet A C C' -> Cong A C C C' ->
GradExp A B C'.
Inductive GradExp2 : Tpoint -> Tpoint -> Tpoint -> Tpoint -> Tpoint -> Tpoint ->
Prop :=
| gradexp2_init : forall A B D E, GradExp2 A B B D E E
| gradexp2_stab : forall A B C C' D E F F',
GradExp2 A B C D E F ->
Bet A C C' -> Cong A C C C' ->
Bet D F F' -> Cong D F F F' ->
GradExp2 A B C' D E F'.
| gradexp_init : forall A B, GradExp A B B
| gradexp_stab : forall A B C C',
GradExp A B C ->
Bet A C C' -> Cong A C C C' ->
GradExp A B C'.
Inductive GradExp2 : Tpoint -> Tpoint -> Tpoint -> Tpoint -> Tpoint -> Tpoint ->
Prop :=
| gradexp2_init : forall A B D E, GradExp2 A B B D E E
| gradexp2_stab : forall A B C C' D E F F',
GradExp2 A B C D E F ->
Bet A C C' -> Cong A C C C' ->
Bet D F F' -> Cong D F F F' ->
GradExp2 A B C' D E F'.
There exists n such that the angle DEF is congruent to n times the angle ABC
Inductive GradA : Tpoint -> Tpoint -> Tpoint -> Tpoint -> Tpoint -> Tpoint ->
Prop :=
| grada_init : forall A B C D E F, CongA A B C D E F -> GradA A B C D E F
| grada_stab : forall A B C D E F G H I,
GradA A B C D E F ->
SAMS D E F A B C -> SumA D E F A B C G H I ->
GradA A B C G H I.
Prop :=
| grada_init : forall A B C D E F, CongA A B C D E F -> GradA A B C D E F
| grada_stab : forall A B C D E F G H I,
GradA A B C D E F ->
SAMS D E F A B C -> SumA D E F A B C G H I ->
GradA A B C G H I.
There exists n such that the angle DEF is congruent to 2^n times the angle ABC
Inductive GradAExp : Tpoint -> Tpoint -> Tpoint -> Tpoint -> Tpoint -> Tpoint ->
Prop :=
| gradaexp_init : forall A B C D E F, CongA A B C D E F -> GradAExp A B C D E F
| gradaexp_stab : forall A B C D E F G H I,
GradAExp A B C D E F ->
SAMS D E F D E F -> SumA D E F D E F G H I ->
GradAExp A B C G H I.
Prop :=
| gradaexp_init : forall A B C D E F, CongA A B C D E F -> GradAExp A B C D E F
| gradaexp_stab : forall A B C D E F G H I,
GradAExp A B C D E F ->
SAMS D E F D E F -> SumA D E F D E F G H I ->
GradAExp A B C G H I.
Parallelogram
Definition Parallelogram_strict A B A' B' :=
TS A A' B B' /\ Par A B A' B' /\ Cong A B A' B'.
Definition Parallelogram_flat A B A' B' :=
Col A B A' /\ Col A B B' /\
Cong A B A' B' /\ Cong A B' A' B /\
(A <> A' \/ B <> B').
Definition Parallelogram A B A' B' :=
Parallelogram_strict A B A' B' \/ Parallelogram_flat A B A' B'.
Definition Plg A B C D :=
(A <> C \/ B <> D) /\ exists M, Midpoint M A C /\ Midpoint M B D.
Rhombus
Rectangle
Square
Kite
Saccheri
Lambert
Definition Lambert A B C D :=
A <> B /\ B <> C /\ C <> D /\ A <> D /\ Per B A D /\ Per A D C /\ Per A B C.
Vector
Definition EqV A B C D := Parallelogram A B D C \/ A = B /\ C = D.
Definition SumV A B C D E F := forall D', EqV C D B D' -> EqV A D' E F.
Definition SumV_exists A B C D E F := exists D', EqV B D' C D /\ EqV A D' E F.
Definition Same_dir A B C D :=
A = B /\ C = D \/ exists D', Out C D D' /\ EqV A B C D'.
Definition Opp_dir A B C D := Same_dir A B D C.
Projections