Symmetric point

This is part of a series of modules which prove a variety of geometrical theorems starting with Tarski's axioms for geometry. We follow the formalization of Julien Narboux which itself closely follows a treatise by Schwabhäuser, Szmielew, and Tarski.

This page defines the midpoint of a line segment, proves a few basic midpoint results, and then proves a variety of results concerning reflection through a point (symmetric points).

We import the theorems of propositional logic and predicate logic, and the geometry results so far and define some variables:  import (CLASSICAL Interface:Classical_propositional_calculus ) import (FIRSTORDER Interface:First-order_logic_with_quantifiability (CLASSICAL) ) import (START Interface:Out_lines (CLASSICAL FIRSTORDER) )

var (point A B C D E F M P Q R S X Y Z A′ B′ C′ D′ E′ B″ C″ P′ Q′ R′ S′ X′ Y′) var (point P1 P2) var (variable a b c c′ d d′ e e′ f p p′ x x′ y y′ z) 

Midpoint defined
A point is the midpoint of a line segment if it is between the endpoints and is equidistant from each one.  def ((is-midpoint-of M A B) ((between A M B) ∧ (A M ≡ M B))) 

Whether a point is the midpoint does not depend on the order in which we list the endpoints. This is easily proved from the corresponding theorems for betweenness and congruence.  thm (MidpointSymmetry   ((M is-midpoint-of A B) ↔ (M is-midpoint-of B A)) ( A M B BetweennessSymmetry

A M M B CongruenceSymmetry M B A M CongruenceCommutativity applyBiconditionalTransitivity

buildConjunction )) 

The only midpoint of an empty line segment is the endpoint of the line segment.  thm (MidpointIndivisibility   ((M is-midpoint-of A A) → (M = A)) ( (between A M A) (A M ≡ M A) ConjunctionRightElimination

A M IndivisibilityBiconditional eliminateBiconditionalReverse applySyllogism

A M EqualitySymmetry eliminateBiconditionalReverse applySyllogism )) 

The endpoint of an empty line segment is a midpoint of that segment.  thm (MidpointReflexivity  (A is-midpoint-of A A) ( A A BetweenAAB A A CongruenceReflexivity introduceConjunction )) 

Reflection through a point
Point symmetry, or reflection through a point, refers to the process of starting with a single point (which in special cases might be called the origin or the center) and mapping every point to a point directly opposite the given point (at the same distance).

Existence of the symmetric point
Given a point, the symmetric point of   through   is a point   such that. This point always exists and is unique. We first prove existence. The proof just applies line segment construction to extend the line segment  to a point   by a distance of , or in other words,.  thm (SymmetricPoint ((p′ A) (p′ P))  (∃ p′ (A is-midpoint-of P (value p′))) ( p′ P A P A SegmentConstruction

A (value p′) P A CongruenceSymmetry eliminateBiconditionalReverse (between P A (value p′)) conjoinLL p′ addThereExists applyModusPonens )) 

Symmetric point uniqueness
Uniqueness is. We first consider the  case, which is just a matter of applying  thm (SymmetricPointUniqueness-pa   (((P = A) ∧ ((A is-midpoint-of P P1) ∧ (A is-midpoint-of P P2))) → (P1 = P2)) (  Our first application of  will be. After that, we flip  to.  (P = A)         ((A is-midpoint-of P P1) ∧ (A is-midpoint-of P P2)) ConjunctionRightElimination

(P = A)         ((A is-midpoint-of P P1) ∧ (A is-midpoint-of P P2)) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

composeConjunction

P A A P1 CongruenceIdentityFromEquality applySyllogism

A P1 EqualitySymmetry eliminateBiconditionalReverse applySyllogism  The other application of  is the same thing but with.  (P = A)         ((A is-midpoint-of P P1) ∧ (A is-midpoint-of P P2)) ConjunctionRightElimination

(P = A)         ((A is-midpoint-of P P1) ∧ (A is-midpoint-of P P2)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent

composeConjunction

P A A P2 CongruenceIdentityFromEquality applySyllogism </jh> Combining the two gives.  composeConjunction P1 A P2 EqualityTransitivity applySyllogism )) </jh>

The  case is a straightforward application of.  thm (SymmetricPointUniqueness-pnota   (((P ≠ A) ∧ ((A is-midpoint-of P P1) ∧ (A is-midpoint-of P P2))) → (P1 = P2)) ( </jh> First,.  (P ≠ A)         ((A is-midpoint-of P P1) ∧ (A is-midpoint-of P P2)) ConjunctionRightElimination </jh> Next,.  (P ≠ A)         ((A is-midpoint-of P P1) ∧ (A is-midpoint-of P P2)) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

composeConjunction </jh> Next,.  (P ≠ A)         ((A is-midpoint-of P P1) ∧ (A is-midpoint-of P P2)) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

P A A P1 CongruenceSymmetry eliminateBiconditionalReverse applySyllogism

composeConjunction </jh> The corresponding statements for  are similar, which are  ,  (P ≠ A)         ((A is-midpoint-of P P1) ∧ (A is-midpoint-of P P2)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent

composeConjunction </jh> and  (P ≠ A)         ((A is-midpoint-of P P1) ∧ (A is-midpoint-of P P2)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent

P A A P2 CongruenceSymmetry eliminateBiconditionalReverse applySyllogism

composeConjunction

P A P1 P A P2 SegmentConstructionUniqueness applySyllogism )) </jh>

Combining the two cases completes the proof of uniqueness.  thm (SymmetricPointUniqueness   (((A is-midpoint-of P P1) ∧ (A is-midpoint-of P P2)) → (P1 = P2)) ( P A P1 P2 SymmetricPointUniqueness-pa export

P A P1 P2 SymmetricPointUniqueness-pnota export

eliminateCases )) </jh>

One to one
Reflecting through a point is one to one.  thm (SymmetricPointOneToOne   (((A is-midpoint-of P1 P) ∧ (A is-midpoint-of P2 P)) → (P1 = P2)) ( A P1 P MidpointSymmetry A P2 P MidpointSymmetry buildConjunction eliminateBiconditionalReverse

A P P1 P2 SymmetricPointUniqueness applySyllogism )) </jh>

Distance-preserving
Reflecting through a point preserves distances. That is,.

The proof is a bit involved, so we'll start with a brief outline. The  case is trivial, so henceforth we assume. Starting with the line segment, we extend the two endpoints to points   and   (by a distance of   in both cases). Then we do something similar: extend both ends of  to   and   by a distance of.

The next step is, which we get by applying five segment to baselines   and   and points   and.

Then we apply inner five segment to baselines  and   and points   and , which gives.

Finally, applying inner five segment to baselines  and   and points Q and   yields , as desired.

P = A case
We start formalizing this proof with the  case. Because  is the midpoint of , we know that  , and we can substitute   for. We can also substitute  for , as   follows from   and.

To understand the organization of the proof, it is based on the substitution.  thm (SymmetricPointDistance-pa   (((P = A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) → (P Q ≡ P′ Q′)) ( </jh> First we need, which follows from   and.  (P = A)         ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q)) ConjunctionRightElimination

(P = A)         ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q)) ConjunctionLeftElimination eliminateRightConjunctInConsequent

A P′ P MidpointSymmetry eliminateBiconditionalReverse applySyllogism

eliminateLeftConjunctInConsequent

composeConjunction

P A A P′ CongruenceIdentityFromEquality applySyllogism </jh> Second is.  (P = A)         ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q)) ConjunctionRightElimination

P A EqualitySymmetry eliminateBiconditionalReverse applySyllogism

composeConjunction </jh> Last is  (P = A)         ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent

Q′ A A Q CongruenceRightCommutativity eliminateBiconditionalReverse applySyllogism

composeConjunction </jh> We're ready to prove and apply.  Q EqualityReflexivity Q′ EqualityReflexivity Q′ Q′ A P′ Q Q A P CongruenceBuilder detach1of4 detach2of3

eliminateBiconditionalReverseInConsequent import

applySyllogism </jh> Now we just need to rearrange  into.  Q′ P′ Q P CongruenceSymmetry eliminateBiconditionalReverse applySyllogism

Q P Q′ P′ CongruenceCommutativity eliminateBiconditionalReverse applySyllogism )) </jh>

Constructing X, X′, Y, and Y′
The first step for the  case is to construct the points we will need. The first lemma constructs two points (and we'll be able to use it twice, once for  and   and once for   and  ).

<jh> thm (SymmetricPointDistance-xx ( (P x x′) (P′ x x′) (Q x x′) (A x x′) ) (∃ x (∃ x′ ( ((between P′ P (value x)) ∧ (P (value x) ≡ Q A)) ∧ ((between (value x) P′ (value x′)) ∧ (P′ (value x′) ≡ Q A)) ))) (       x P′ P Q A SegmentConstruction

x′ (value x) P′ Q A SegmentConstruction x generalize

introduceConjunction

x         ((between P′ P (value x)) ∧ (P (value x) ≡ Q A)) (∃ x′ ((between (value x) P′ (value x′)) ∧ (P′ (value x′) ≡ Q A))) ThereExistsConjunctionRightCombining applyModusPonens

x′         ((between P′ P (value x)) ∧ (P (value x) ≡ Q A)) ((between (value x) P′ (value x′)) ∧ (P′ (value x′) ≡ Q A)) ThereExistsConjunctionMovement eliminateBiconditionalForward x addThereExists applyModusPonens ))

thm (SymmetricPointDistance-xxyy ( (P x x′ y y′) (P′ x x′ y y′) (Q x x′ y y′) (Q′ x x′ y y′) (A x x′ y y′) )  (((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) → (∃ x (∃ x′ (∃ y (∃ y′ (   ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P (value x)) ∧ (P (value x) ≡ Q A)) ∧    ((between (value x) P′ (value x′)) ∧ (P′ (value x′) ≡ Q A))) ∧ (((between Q′ Q (value y)) ∧ (Q (value y) ≡ P A)) ∧   ((between (value y) Q′ (value y′)) ∧ (Q′ (value y′) ≡ P A)))))))))) ( </jh> First we stick something on the proof stack for later use. <jh> ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ImplicationReflexivity </jh> Leaving that aside, the next step is to construct our four points. <jh> x x′ P′ P Q A SymmetricPointDistance-xx y y′ Q′ Q P A SymmetricPointDistance-xx introduceConjunction </jh> Now we move the quantifiers to the front. <jh> x         (∃ x′ (((between P′ P (value x)) ∧ (P (value x) ≡ Q A)) ∧ ((between (value x) P′ (value x′)) ∧ (P′ (value x′) ≡ Q A)))) (∃ y (∃ y′ (((between Q′ Q (value y)) ∧ (Q (value y) ≡ P A)) ∧           ((between (value y) Q′ (value y′)) ∧ (Q′ (value y′) ≡ P A))))) ThereExistsConjunctionRightMovement eliminateBiconditionalForward applyModusPonens

x′         (((between P′ P (value x)) ∧ (P (value x) ≡ Q A)) ∧            ((between (value x) P′ (value x′)) ∧ (P′ (value x′) ≡ Q A))) (∃ y (∃ y′ (((between Q′ Q (value y)) ∧ (Q (value y) ≡ P A)) ∧           ((between (value y) Q′ (value y′)) ∧ (Q′ (value y′) ≡ P A))))) ThereExistsConjunctionRightMovement eliminateBiconditionalForward x addThereExists applyModusPonens

y         (((between P′ P (value x)) ∧ (P (value x) ≡ Q A)) ∧            ((between (value x) P′ (value x′)) ∧ (P′ (value x′) ≡ Q A))) (∃ y′ (((between Q′ Q (value y)) ∧             (Q (value y) ≡ P A)) ∧ ((between (value y) Q′ (value y′)) ∧             (Q′ (value y′) ≡ P A)))) ThereExistsConjunctionMovement eliminateBiconditionalForward x′ addThereExists x addThereExists applyModusPonens

y′         (((between P′ P (value x)) ∧ (P (value x) ≡ Q A)) ∧            ((between (value x) P′ (value x′)) ∧ (P′ (value x′) ≡ Q A))) (((between Q′ Q (value y)) ∧ (Q (value y) ≡ P A)) ∧           ((between (value y) Q′ (value y′)) ∧ (Q′ (value y′) ≡ P A))) ThereExistsConjunctionMovement eliminateBiconditionalForward y addThereExists x′ addThereExists x addThereExists applyModusPonens </jh> Now we just need to pick  up off the proof stack and move it inside the quantifiers. <jh> introduceRightConjunctToConsequent x         ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) (∃ x′ (∃ y (∃ y′ ( (((between P′ P (value x)) ∧ (P (value x) ≡ Q A)) ∧           ((between (value x) P′ (value x′)) ∧ (P′ (value x′) ≡ Q A))) ∧ (((between Q′ Q (value y)) ∧ (Q (value y) ≡ P A)) ∧           ((between (value y) Q′ (value y′)) ∧ (Q′ (value y′) ≡ P A))))))) ThereExistsConjunctionMovement eliminateBiconditionalForward applySyllogism

x′         ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) (∃ y (∃ y′ (           (((between P′ P (value x)) ∧ (P (value x) ≡ Q A)) ∧ ((between (value x) P′ (value x′)) ∧ (P′ (value x′) ≡ Q A))) ∧           (((between Q′ Q (value y)) ∧ (Q (value y) ≡ P A)) ∧ ((between (value y) Q′ (value y′)) ∧             (Q′ (value y′) ≡ P A)))))) ThereExistsConjunctionMovement eliminateBiconditionalForward x addThereExists applySyllogism

y         ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) (∃ y′ ( (((between P′ P (value x)) ∧ (P (value x) ≡ Q A)) ∧           ((between (value x) P′ (value x′)) ∧ (P′ (value x′) ≡ Q A))) ∧ (((between Q′ Q (value y)) ∧ (Q (value y) ≡ P A)) ∧           ((between (value y) Q′ (value y′)) ∧ (Q′ (value y′) ≡ P A))))) ThereExistsConjunctionMovement eliminateBiconditionalForward x′ addThereExists x addThereExists applySyllogism

y′         ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) (           (((between P′ P (value x)) ∧ (P (value x) ≡ Q A)) ∧ ((between (value x) P′ (value x′)) ∧ (P′ (value x′) ≡ Q A))) ∧           (((between Q′ Q (value y)) ∧ (Q (value y) ≡ P A)) ∧ ((between (value y) Q′ (value y′)) ∧             (Q′ (value y′) ≡ P A)))) ThereExistsConjunctionMovement eliminateBiconditionalForward y addThereExists x′ addThereExists x addThereExists applySyllogism )) </jh>

Applying betweenness transitivity
Visually the diagram makes it clear that the points of each of the two lines are in a certain order: in the one case X′, P′, A, P, and X and in the other case Y′, Q′, A, Q, and Y. To express this formally involves a large number of betweenness formulas, and we now prove a number of them. The first is, which follows from   and. <jh> thm (SymmetricPointDistance-apx   ((    ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P X) ∧ (P X ≡ Q A)) ∧    ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧ (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧   ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A))))) → (between A P X)) ( ((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionRightElimination eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

composeConjunction

P′ A P X BetweennessInnerTransitivityFlipped applySyllogism )) </jh>

A similar result is, which follows from   and. <jh> thm (SymmetricPointDistance-aqy   ((    ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P X) ∧ (P X ≡ Q A)) ∧    ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧ (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧   ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A))))) → (between A Q Y)) ( ((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionRightElimination eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent

((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionLeftElimination eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

composeConjunction

Q′ A Q Y BetweennessInnerTransitivityFlipped applySyllogism )) </jh>

The next betweenness result is. Unlike the previous two, we need to apply transitivity twice (because of the way we constructed ). The first application applies transitivity to  and   to give. <jh> thm (SymmetricPointDistance-qprime-a-y   ((    ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P X) ∧ (P X ≡ Q A)) ∧    ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧ (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧   ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A))))) → (between Q′ A Y)) ( ((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionRightElimination eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent

((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionLeftElimination eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

composeConjunction

Q′ A Q Y BetweennessMiddleTransitivityFlipped applySyllogism )) </jh> The second application applies transitivity to  and   to give. <jh> thm (SymmetricPointDistance-a-qprime-yprime   ((    ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P X) ∧ (P X ≡ Q A)) ∧    ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧ (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧   ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A))))) → (between A Q′ Y′)) ( ((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionLeftElimination eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent

Y Q′ Y′ BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-qprime-a-y

composeConjunction

Y′ Q′ Y A BetweennessInnerTransitivity applySyllogism

Y′ Q′ A BetweennessSymmetry eliminateBiconditionalReverse applySyllogism )) </jh>

The same reasoning applied to the other line gives. The first application of transitivity is to  and   and gives. <jh> thm (SymmetricPointDistance-pprime-a-x   ((    ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P X) ∧ (P X ≡ Q A)) ∧    ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧ (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧   ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A))))) → (between P′ A X)) ( ((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionRightElimination eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

composeConjunction

P′ A P X BetweennessMiddleTransitivityFlipped applySyllogism )) </jh> The second application applies transitivity to  and   to give. <jh> thm (SymmetricPointDistance-a-pprime-xprime   ((    ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P X) ∧ (P X ≡ Q A)) ∧    ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧ (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧   ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A))))) → (between A P′ X′)) ( ((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent

X P′ X′ BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-pprime-a-x

composeConjunction

X′ P′ X A BetweennessInnerTransitivity applySyllogism

X′ P′ A BetweennessSymmetry eliminateBiconditionalReverse applySyllogism )) </jh>

Congruences
From the diagram it should be clear that the line segments,  ,  , and   are all congruent, as they each consist of one line segment congruent to   plus one congruent to. We formalize this through a series of lemmas which apply the three segment theorem. <jh> thm (SymmetricPointDistance-axya   ((    ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P X) ∧ (P X ≡ Q A)) ∧    ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧ (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧   ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A))))) → (A X ≡ Y A)) ( </jh> First is. <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-apx </jh> Then. <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-aqy

A Q Y BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

composeConjunction </jh> The first congruence we'll need is. <jh> ((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionLeftElimination eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

Q Y P A CongruenceSymmetry eliminateBiconditionalReverse applySyllogism

P A Q Y CongruenceCommutativity eliminateBiconditionalReverse applySyllogism

composeConjunction </jh> The other is. <jh> ((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

composeConjunction

A P X Y Q A OuterThreeSegment applySyllogism ))

</jh> The next congruence is, by three segment from   and. <jh> thm (SymmetricPointDistance-ayxa   ((    ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P X) ∧ (P X ≡ Q A)) ∧    ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧ (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧   ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A))))) → (A Y′ ≡ X′ A)) ( </jh> First is. <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-a-qprime-yprime </jh> Next is. <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-a-pprime-xprime

A P′ X′ BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

composeConjunction </jh> Next is, which holds because those two line segments are each congruent to. <jh> ((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionRightElimination eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent

Q′ A A Q CongruenceLeftCommutativity eliminateBiconditionalReverse applySyllogism

((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent

P′ X′ Q A CongruenceCommutativity eliminateBiconditionalReverse applySyllogism

X′ P′ A Q CongruenceSymmetry eliminateBiconditionalReverse applySyllogism

composeConjunction A Q′ A Q X′ P′ CongruenceTransitivity applySyllogism

composeConjunction </jh> Last is, which holds because those two line segments are each congruent to. <jh> ((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionLeftElimination eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent

((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionRightElimination eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

P′ A A P CongruenceRightCommutativity eliminateBiconditionalReverse applySyllogism

P′ A P A CongruenceSymmetry eliminateBiconditionalReverse applySyllogism

composeConjunction Q′ Y′ P A P′ A CongruenceTransitivity applySyllogism

composeConjunction </jh> This lets us conclude. <jh> A Q′ Y′ X′ P′ A OuterThreeSegment applySyllogism )) </jh>

We have one more similar congruence,, which follows from outer three segment on lines   and. <jh> thm (SymmetricPointDistance-a-y-a-yprime   ((    ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P X) ∧ (P X ≡ Q A)) ∧    ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧ (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧   ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A))))) → (A Y ≡ A Y′)) ( </jh> First is. <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-aqy </jh> Next is. <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-a-qprime-yprime

composeConjunction </jh> The first congruence is. <jh> ((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionRightElimination eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent

commuteCongruenceLeftInConsequent swapCongruenceInConsequent

composeConjunction </jh> The other congruence is, which holds because each of those line segments is congruent to. <jh> ((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionLeftElimination eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionLeftElimination eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent

swapCongruenceInConsequent

composeConjunction

Q Y P A Q′ Y′ CongruenceTransitivity applySyllogism

composeConjunction </jh> We can now conclude. <jh> A Q Y A Q′ Y′ OuterThreeSegment applySyllogism )) </jh>

Other similar congruences can be derived from those by transitivity. Here is <jh> thm (SymmetricPointDistance-axax   ((    ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P X) ∧ (P X ≡ Q A)) ∧    ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧ (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧   ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A))))) → (A X ≡ A X′)) ( P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-axya commuteCongruenceRightInConsequent

P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-a-y-a-yprime

composeConjunction A X A Y A Y′ CongruenceTransitivity applySyllogism

P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-ayxa

composeConjunction A X A Y′ X′ A CongruenceTransitivity applySyllogism

commuteCongruenceRightInConsequent )) </jh>

X′ Y′ ≡ Y X
All that seems fairly preparatory, and visually obvious. Now for a more substantial result:, which we get by applying outer five segment to baselines   and   and points   and. We break some of the antecedents of outer five segment into their own lemmas, and then proceed with outer five segment. <jh> thm (SymmetricPointDistance-xa   ((    ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P X) ∧ (P X ≡ Q A)) ∧    ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧ (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧   ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A))))) → (X ≠ A)) ( P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-apx </jh> We'll also need. <jh> ((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionRightElimination eliminateRightConjunctInConsequent

P A EqualitySymmetry addNegation eliminateBiconditionalReverse applySyllogism

composeConjunction </jh> So far we have, and we want to show that it implies. This is just  and some rearrangement. In this case, indivisibility is. <jh> A X P IndivisibilityFromEquality export applyComm

(A = X) (A = P) Transposition eliminateBiconditionalReverse applySyllogism

import applySyllogism </jh> Now we just flip  to get. <jh> A X EqualitySymmetry addNegation eliminateBiconditionalReverse applySyllogism ))

thm (SymmetricPointDistance-x-a-xprime   ((    ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P X) ∧ (P X ≡ Q A)) ∧    ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧ (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧   ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A))))) → (between X A X′)) ( </jh> Here we apply transitivity twice. The first application is , <jh> ((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionRightElimination eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

composeConjunction

P′ A P X BetweennessMiddleTransitivityFlipped applySyllogism </jh> and the second is. <jh> P′ A X BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent

composeConjunction

X A P′ X′ BetweennessMiddleTransitivityFlipped applySyllogism ))

thm (SymmetricPointDistance-y-a-yprime   ((    ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P X) ∧ (P X ≡ Q A)) ∧    ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧ (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧   ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A))))) → (between Y A Y′)) ( </jh>The proof is extremely similar to that for  (in fact, it is a close call whether to break out a lemma to express the commonality, but here we just repeat the similar proof). The first application of transitivity is , <jh> ((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionRightElimination eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent

((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionLeftElimination eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

composeConjunction

Q′ A Q Y BetweennessMiddleTransitivityFlipped applySyllogism </jh> and the second is. <jh> Q′ A Y BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionLeftElimination eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent

composeConjunction

Y A Q′ Y′ BetweennessMiddleTransitivityFlipped applySyllogism ))

</jh> Next is, which follows from   and. <jh> thm (SymmetricPointDistance-x-a-yprime-a   ((    ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P X) ∧ (P X ≡ Q A)) ∧    ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧ (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧   ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A))))) → (X A ≡ Y′ A)) ( P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-axya

A X Y A CongruenceCommutativity eliminateBiconditionalReverse applySyllogism

P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-a-y-a-yprime

composeConjunction

X A A Y A Y′ CongruenceTransitivity applySyllogism

X A A Y′ CongruenceRightCommutativity eliminateBiconditionalReverse applySyllogism ))

</jh> Next is, which follows from   and. <jh> thm (SymmetricPointDistance-a-xprime-a-y   ((    ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P X) ∧ (P X ≡ Q A)) ∧    ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧ (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧   ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A))))) → (A X′ ≡ A Y)) ( P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-ayxa

A Y′ X′ A CongruenceSymmetry eliminateBiconditionalReverse applySyllogism

X′ A A Y′ CongruenceLeftCommutativity eliminateBiconditionalReverse applySyllogism

P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-a-y-a-yprime swapCongruenceInConsequent

composeConjunction

A X′ A Y′ A Y CongruenceTransitivity applySyllogism ))

thm (SymmetricPointDistance-xyyx   ((    ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P X) ∧ (P X ≡ Q A)) ∧    ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧ (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧   ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A))))) → (X′ Y′ ≡ Y X)) ( </jh> First we need. <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-xa </jh> Next is. <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-x-a-xprime composeConjunction </jh> Next is. <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-y-a-yprime swapBetweennessInConsequent composeConjunction </jh> Next is. <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-x-a-yprime-a composeConjunction </jh> Next is. <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-a-xprime-a-y composeConjunction </jh> Next is. <jh> X Y′ CongruenceABBA introduceRightConjunctToConsequent </jh> Next is. It is essentially the same as  which we did a few steps back. <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-x-a-yprime-a swapCongruenceInConsequent commuteCongruenceInConsequent composeConjunction </jh> That gives us. <jh> X A X′ Y′ A Y Y′ X OuterFiveSegment applySyllogism )) </jh>

Q X ≡ Q′ X′
Now it is time to apply inner five segment to baselines  and   and points   and , which gives. <jh> thm (SymmetricPointDistance-qxqx   ((    ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P X) ∧ (P X ≡ Q A)) ∧    ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧ (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧   ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A))))) → (Q X ≡ Q′ X′)) ( </jh> First we need betweenness for the two baselines, starting with. <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-aqy

A Q Y BetweennessSymmetry eliminateBiconditionalReverse applySyllogism </jh> Betweenness for the other baseline is. <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-a-qprime-yprime

A Q′ Y′ BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

composeConjunction </jh> We need two congruences for the baselines. The first is , <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-a-y-a-yprime commuteCongruenceInConsequent

composeConjunction </jh> and the other is. <jh> ((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionRightElimination eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent

commuteCongruenceRightInConsequent swapCongruenceInConsequent

composeConjunction </jh> The congruences for the points are , <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-xyyx swapCongruenceInConsequent commuteCongruenceRightInConsequent composeConjunction </jh> and. <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-axax composeConjunction </jh> This lets us conclude. <jh> Y Q A Y′ Q′ A X X′ InnerFiveSegment applySyllogism )) </jh>

P Q ≡ P′ Q′
The next step is another application of inner five segment, which proves. It uses baselines  and   and points   and.

<jh> thm (SymmetricPointDistance-pqpq   ((    ((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ∧    ((((between P′ P X) ∧ (P X ≡ Q A)) ∧    ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧ (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧   ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A))))) → (P Q ≡ P′ Q′)) ( </jh> Betweenness for the first baseline is. <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-apx swapBetweennessInConsequent </jh> Betweenness for the other baseline is. <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-a-pprime-xprime swapBetweennessInConsequent composeConjunction </jh> The first congruence for the baselines is <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-axax commuteCongruenceInConsequent composeConjunction </jh> The other baseline congruence is. <jh> ((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionRightElimination eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

commuteCongruenceRightInConsequent swapCongruenceInConsequent

composeConjunction </jh> The first congruence for the points is, which we have already proved. <jh> P A P′ Q′ Q X X′ Y Y′ SymmetricPointDistance-qxqx commuteCongruenceInConsequent composeConjunction </jh> The other congruence for the points is, which follows directly from. <jh> ((P ≠ A) ∧            ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) ((((between P′ P X) ∧ (P X ≡ Q A)) ∧ ((between X P′ X′) ∧ (P′ X′ ≡ Q A))) ∧           (((between Q′ Q Y) ∧ (Q Y ≡ P A)) ∧ ((between Y Q′ Y′) ∧ (Q′ Y′ ≡ P A)))) ConjunctionRightElimination eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent

commuteCongruenceLeftInConsequent swapCongruenceInConsequent

composeConjunction </jh> We are ready to conclude. <jh> X P A X′ P′ A Q Q′ InnerFiveSegment applySyllogism )) </jh>

Finishing the proof
Combining the construction of the points and the proof of  from those points gives us the   case of the proof.

<jh> thm (SymmetricPointDistance-pnota ( (P x x′ y y′) (P′ x x′ y y′) (Q x x′ y y′) (Q′ x x′ y y′) (A x x′ y y′))   (((P ≠ A) ∧ ((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q))) → (P Q ≡ P′ Q′)) ( P A P′ Q′ Q x x′ y y′ SymmetricPointDistance-xxyy

P A P′ Q′ Q         (value x) (value x′) (value y) (value y′) SymmetricPointDistance-pqpq y′ addThereExists y addThereExists x′ addThereExists x addThereExists

applySyllogism

removeThereExistsInConsequent removeThereExistsInConsequent removeThereExistsInConsequent removeThereExistsInConsequent )) </jh>

And finally we combine the  and   cases.

<jh> thm (SymmetricPointDistance   (((A is-midpoint-of P′ P) ∧ (A is-midpoint-of Q′ Q)) → (P Q ≡ P′ Q′)) ( P A P′ Q′ Q SymmetricPointDistance-pa export

P A P′ Q′ Q SymmetricPointDistance-pnota export

eliminateCases )) </jh>

Betweenness-preserving
Reflecting through a point preserves betweenness relationships. That is, if a point is between two points and we reflect all three points through a common point, then the corresponding one symmetric point is between the corresponding two symmetric points. In symbols,.

The proof first applies  to each pair of points to prove the degenerate triangle congruence. From there, it is a simple application of.

<jh> thm (SymmetricPointBetweenness-congruence   ((((A is-midpoint-of P P′) ∧ (A is-midpoint-of Q Q′)) ∧     (A is-midpoint-of R R′)) → (P Q R ≅ P′ Q′ R′)) ( </jh> First is. <jh> ((A is-midpoint-of P P′) ∧ (A is-midpoint-of Q Q′)) (A is-midpoint-of R R′) ConjunctionRightElimination A P P′ Q Q′ SymmetricPointDistance applySyllogism swapCongruenceInConsequent </jh> Second is. <jh> ((A is-midpoint-of P P′) ∧ (A is-midpoint-of Q Q′)) (A is-midpoint-of R R′) ConjunctionRightElimination eliminateRightConjunctInConsequent

((A is-midpoint-of P P′) ∧ (A is-midpoint-of Q Q′)) (A is-midpoint-of R R′) ConjunctionLeftElimination

composeConjunction

A P P′ R R′ SymmetricPointDistance applySyllogism swapCongruenceInConsequent

composeConjunction

</jh> Third is <jh> ((A is-midpoint-of P P′) ∧ (A is-midpoint-of Q Q′)) (A is-midpoint-of R R′) ConjunctionRightElimination eliminateLeftConjunctInConsequent

((A is-midpoint-of P P′) ∧ (A is-midpoint-of Q Q′)) (A is-midpoint-of R R′) ConjunctionLeftElimination

composeConjunction

A Q Q′ R R′ SymmetricPointDistance applySyllogism swapCongruenceInConsequent

composeConjunction ))

thm (SymmetricPointBetweenness   (((((A is-midpoint-of P P′) ∧      (A is-midpoint-of Q Q′)) ∧ (A is-midpoint-of R R′)) ∧     (between P Q R)) → (between P′ Q′ R′)) ( (((A is-midpoint-of P P′) ∧ (A is-midpoint-of Q Q′)) ∧           (A is-midpoint-of R R′)) (between P Q R)         ConjunctionLeftElimination

(((A is-midpoint-of P P′) ∧ (A is-midpoint-of Q Q′)) ∧           (A is-midpoint-of R R′)) (between P Q R)         ConjunctionRightElimination A P P′ Q Q′ R R′ SymmetricPointBetweenness-congruence applySyllogism

composeConjunction

P Q R P′ Q′ R′ BetweennessDegenerateTriangle applySyllogism )) </jh>

Congruence-preserving
The reflections (through a common point) of congruent line segments are congruent. In symbols,.

The proof is just a matter of applying congruence transitivity to  and , which come from  , and   (which we are given). <jh> thm (SymmetricPointCongruence   ((((((A is-midpoint-of P P′) ∧ (A is-midpoint-of Q Q′)) ∧     (A is-midpoint-of R R′)) ∧ (A is-midpoint-of S S′)) ∧     (P Q ≡ R S)) → (P′ Q′ ≡ R′ S′)) ( </jh> First is. <jh> ((((A is-midpoint-of P P′) ∧           (A is-midpoint-of Q Q′)) ∧ (A is-midpoint-of R R′)) ∧           (A is-midpoint-of S S′)) (P Q ≡ R S)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

A P P′ Q Q′ SymmetricPointDistance applySyllogism </jh> Second is. <jh> ((((A is-midpoint-of P P′) ∧           (A is-midpoint-of Q Q′)) ∧ (A is-midpoint-of R R′)) ∧           (A is-midpoint-of S S′)) (P Q ≡ R S)         ConjunctionLeftElimination

composeConjunction

P′ Q′ P Q R S CongruenceTransitivity applySyllogism </jh> And finally is. <jh> ((((A is-midpoint-of P P′) ∧           (A is-midpoint-of Q Q′)) ∧ (A is-midpoint-of R R′)) ∧           (A is-midpoint-of S S′)) (P Q ≡ R S)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

((((A is-midpoint-of P P′) ∧           (A is-midpoint-of Q Q′)) ∧ (A is-midpoint-of R R′)) ∧           (A is-midpoint-of S S′)) (P Q ≡ R S)         ConjunctionRightElimination eliminateLeftConjunctInConsequent

composeConjunction

A R R′ S S′ SymmetricPointDistance applySyllogism swapCongruenceInConsequent

composeConjunction

P′ Q′ R S R′ S′ CongruenceTransitivity applySyllogism )) </jh>

Midpoint-preserving
<jh> thm (SymmetricPointMidpoint   (((((A is-midpoint-of P P′) ∧      (A is-midpoint-of Q Q′)) ∧ (A is-midpoint-of R R′)) ∧     (P is-midpoint-of Q R)) → (P′ is-midpoint-of Q′ R′)) ( </jh> Because reflecting to symmetric points preserves betweenness,  implies. <jh> (((A is-midpoint-of P P′) ∧ (A is-midpoint-of Q Q′)) ∧           (A is-midpoint-of R R′)) (P is-midpoint-of Q R)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

(((A is-midpoint-of P P′) ∧ (A is-midpoint-of Q Q′)) ∧           (A is-midpoint-of R R′)) (P is-midpoint-of Q R)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent composeConjunction

(((A is-midpoint-of P P′) ∧ (A is-midpoint-of Q Q′)) ∧           (A is-midpoint-of R R′)) (P is-midpoint-of Q R)         ConjunctionRightElimination eliminateLeftConjunctInConsequent composeConjunction

(((A is-midpoint-of P P′) ∧ (A is-midpoint-of Q Q′)) ∧           (A is-midpoint-of R R′)) (P is-midpoint-of Q R)         ConjunctionLeftElimination eliminateRightConjunctInConsequent composeConjunction

A Q Q′ P P′ R R′ SymmetricPointBetweenness applySyllogism </jh> Because reflecting to symmetric points preserves line segment congruence,  implies. <jh> (((A is-midpoint-of P P′) ∧ (A is-midpoint-of Q Q′)) ∧           (A is-midpoint-of R R′)) (P is-midpoint-of Q R)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

(((A is-midpoint-of P P′) ∧ (A is-midpoint-of Q Q′)) ∧           (A is-midpoint-of R R′)) (P is-midpoint-of Q R)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent composeConjunction

(((A is-midpoint-of P P′) ∧ (A is-midpoint-of Q Q′)) ∧           (A is-midpoint-of R R′)) (P is-midpoint-of Q R)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent composeConjunction

(((A is-midpoint-of P P′) ∧ (A is-midpoint-of Q Q′)) ∧           (A is-midpoint-of R R′)) (P is-midpoint-of Q R)         ConjunctionRightElimination eliminateLeftConjunctInConsequent composeConjunction

(((A is-midpoint-of P P′) ∧ (A is-midpoint-of Q Q′)) ∧           (A is-midpoint-of R R′)) (P is-midpoint-of Q R)         ConjunctionLeftElimination eliminateLeftConjunctInConsequent composeConjunction

A Q Q′ P P′ P P′ R R′ SymmetricPointCongruence applySyllogism </jh> Combining betweenness and congruence shows. <jh> composeConjunction )) </jh>

Export
We now export to Interface:Symmetric point. <jh> export (RESULTS Interface:Symmetric_point (CLASSICAL FIRSTORDER) ) </jh>