Out lines

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 gets its name from out lines, that is a predicate  which means that   is on the line   outside the segment. We prove a number of results based on that concept, which in turn lead to a number of theorems involving collinearity.

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:Line_segment_inequality (CLASSICAL FIRSTORDER) )

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

Out lines defined
A point  is on the line   outside the line segment   if and only if one of those points is between   and the other and   is not equal to either one.  def ((is-outside P A B) (((A ≠ P) ∧ (B ≠ P)) ∧ ((between P A B) ∨ (between P B A)))) 

We also state this definition as a theorem.  thm (OutBetweenness  ((P is-outside A B) ↔ (((A ≠ P) ∧ (B ≠ P)) ∧ ((between P A B) ∨ (between P B A)))) ( (P is-outside A B) BiconditionalReflexivity )) 

Relating out lines to existence of a point beyond the outside point
This section (and the next one) have to do with relating  to a point   for which   and. The first result says that if, then   is equivalent to.

We first tackle the  case. This is a straightforward application of, which in this case says basically that   and   imply.  thm (BeyondOutForward  ((((((A ≠ P) ∧ (B ≠ P)) ∧ (C ≠ P)) ∧ (between A P C)) ∧ (between B P C)) → (P is-outside A B)) (  The first two parts of the  definition are the inequalities   and   which we just carry over from the antecedent.  ((((A ≠ P) ∧ (B ≠ P)) ∧ (C ≠ P)) ∧ (between A P C)) (between B P C)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

((((A ≠ P) ∧ (B ≠ P)) ∧ (C ≠ P)) ∧ (between A P C)) (between B P C)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

composeConjunction  To apply, we first need.  ((((A ≠ P) ∧ (B ≠ P)) ∧ (C ≠ P)) ∧ (between A P C)) (between B P C)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent  Next we need.  ((((A ≠ P) ∧ (B ≠ P)) ∧ (C ≠ P)) ∧ (between A P C)) (between B P C)         ConjunctionRightElimination eliminateLeftConjunctInConsequent

A P C BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

composeConjunction  The last thing we will need for  is.  ((((A ≠ P) ∧ (B ≠ P)) ∧ (C ≠ P)) ∧ (between A P C)) (between B P C)         ConjunctionLeftElimination

B P C BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

composeConjunction  Now we apply connectivity to get, which is the only remaining part of the definition of.  C P A B BetweennessMiddleConnectivity applySyllogism

composeConjunction ))

</jh> In the other direction,  tells us that either   or. In the either case, we can apply transitivity with  to get.

We'll arrange this proof by first rearranging the disjunction and conjunctions, before we worry about transitivity.  thm (BeyondOutReverse-1   ((((((A ≠ P) ∧ (B ≠ P)) ∧ (C ≠ P)) ∧ (between A P C)) ∧ (P is-outside A B)) → ((((A ≠ P) ∧ (between A P C)) ∧ (between P A B)) ∨     (((A ≠ P) ∧ (between A P C)) ∧ (between P B A)))) ( </jh> First we pick out.  ((((A ≠ P) ∧ (B ≠ P)) ∧ (C ≠ P)) ∧ (between A P C)) (P is-outside A B)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

((((A ≠ P) ∧ (B ≠ P)) ∧ (C ≠ P)) ∧ (between A P C)) (P is-outside A B)         ConjunctionRightElimination eliminateLeftConjunctInConsequent

composeConjunction </jh> Next we take, unfold the definition, and extract.  ((((A ≠ P) ∧ (B ≠ P)) ∧ (C ≠ P)) ∧ (between A P C)) (P is-outside A B)         ConjunctionLeftElimination

((A ≠ P) ∧ (B ≠ P)) ((between P A B) ∨ (between P B A)) ConjunctionLeftElimination applySyllogism

composeConjunction </jh> Applying distributivity of conjunction over disjunction finishes the job.  ((A ≠ P) ∧ (between A P C)) (between P A B)         (between P B A)          ConjunctionLeftDistribution eliminateBiconditionalReverse applySyllogism ))

thm (BeyondOutReverse  ((((((A ≠ P) ∧ (B ≠ P)) ∧ (C ≠ P)) ∧ (between A P C)) ∧ (P is-outside A B)) → (between B P C)) ( A P B C BeyondOutReverse-1 </jh> Our first transitivity invocation is.  ((A ≠ P) ∧ (between A P C)) (between P A B)         ConjunctionLeftElimination

P A B BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

((A ≠ P) ∧ (between A P C)) (between P A B)         ConjunctionRightElimination eliminateLeftConjunctInConsequent

composeConjunction

((A ≠ P) ∧ (between A P C)) (between P A B)         ConjunctionRightElimination eliminateRightConjunctInConsequent

composeConjunction

B A P C BetweennessOuterTransitivityFlipped applySyllogism </jh> Our second transitivity invocation is  ((A ≠ P) ∧ (between A P C)) (between P B A)         ConjunctionLeftElimination

P B A BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

((A ≠ P) ∧ (between A P C)) (between P B A)         ConjunctionRightElimination eliminateLeftConjunctInConsequent

composeConjunction

A B P C BetweennessInnerTransitivityFlipped applySyllogism </jh> Now we combine the two.  composeDisjunction applySyllogism ))

thm (BeyondOut  (((((A ≠ P) ∧ (B ≠ P)) ∧ (C ≠ P)) ∧ (between A P C)) → ((between B P C) ↔ (P is-outside A B))) ( A P B C BeyondOutForward export

A P B C BeyondOutReverse export

introduceBiconditionalFromImplicationsInConsequent )) </jh>

The existence of a point beyond the outside point
In this section we show that a point is outside a line segment if and only if there exists a point beyond the outside point. In symbols,  is equivalent to.

We start with the forward implication. Extend  to a distinct point   (that is, a point for which  . We can then apply   to show that  . Below we present the formal version of this proof, broken down into several lemmas.

 thm (ExistsBeyondOutForward-bpc   (((P is-outside A B) ∧ ((C ≠ P) ∧ (between A P C))) → (between B P C)) ( </jh> At the end of the proof we'll need a copy of, so we stick it on the proof stack.  (P is-outside A B) ((C ≠ P) ∧ (between A P C)) ConjunctionRightElimination </jh> Most of the proof of this lemma consists of an application of. The first thing we need is.  (P is-outside A B) ((C ≠ P) ∧ (between A P C)) ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent </jh> Next is  (P is-outside A B) ((C ≠ P) ∧ (between A P C)) ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

composeConjunction </jh> Next is  (P is-outside A B) ((C ≠ P) ∧ (between A P C)) ConjunctionLeftElimination eliminateRightConjunctInConsequent

composeConjunction </jh> Last is.  (P is-outside A B) ((C ≠ P) ∧ (between A P C)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent

composeConjunction </jh> Applying  gives us   A P B C BeyondOut applySyllogism </jh> Now we detach the  part so we just have.  eliminateBiconditionalForwardInConsequent applyModusPonensInConsequent ))

</jh> The next lemma is just, together with some rearrangements via commutativity and symmetry. <jh> thm (ExistsBeyondOutForward-c ((c A) (c P)) (∃ c (((value c) ≠ P) ∧ (between A P (value c)))) ( c A P PointConstructionDifferent

(between A P (value c)) (P ≠ (value c)) ConjunctionCommutativity eliminateBiconditionalReverse c addThereExists applyModusPonens

P (value c) EqualitySymmetry addNegation eliminateBiconditionalReverse (between A P (value c)) conjoinRR c addThereExists applyModusPonens ))

thm (ExistsBeyondOutForward-3 ((c A) (c B) (c P)) ((P is-outside A B) → (∃ c ((((value c) ≠ P) ∧ (between A P (value c))) ∧ (between B P (value c))))) ( P A B (value c) ExistsBeyondOutForward-bpc export c addForAllToConsequent </jh> We now have. Combining this with the previous result gives. <jh> c P A ExistsBeyondOutForward-c introduceLeftConjunctToConsequent

c         (((value c) ≠ P) ∧ (between A P (value c))) ((((value c) ≠ P) ∧ (between A P (value c))) → (between B P (value c))) ThereExistsConjunctionRightCombining applySyllogism </jh> To get  is just a matter of modus ponens. The one complication is that we want to keep  around in addition, so we apply idempotence, associativity, and modus ponens, in that order. <jh> (((value c) ≠ P) ∧ (between A P (value c))) ConjunctionIdempotence eliminateBiconditionalReverse ((((value c) ≠ P) ∧ (between A P (value c))) → (between B P (value c))) conjoinRR c addThereExists applySyllogism

(((value c) ≠ P) ∧ (between A P (value c))) (((value c) ≠ P) ∧ (between A P (value c))) ((((value c) ≠ P) ∧ (between A P (value c))) → (between B P (value c))) ConjunctionAssociativity eliminateBiconditionalReverse c addThereExists applySyllogism

(((value c) ≠ P) ∧ (between A P (value c))) (between B P (value c)) ModusPonens (((value c) ≠ P) ∧ (between A P (value c))) conjoinLL c addThereExists applySyllogism ))

thm (ExistsBeyondOutForward ((c A) (c B) (c P))  ((P is-outside A B) → (((A ≠ P) ∧ (B ≠ P)) ∧    (∃ c ((((value c) ≠ P) ∧ (between A P (value c))) ∧ (between B P (value c)))))) ( </jh> First is <jh> ((A ≠ P) ∧ (B ≠ P)) ((between P A B) ∨ (between P B A)) ConjunctionRightElimination eliminateRightConjunctInConsequent

</jh> Next is <jh> ((A ≠ P) ∧ (B ≠ P)) ((between P A B) ∨ (between P B A)) ConjunctionRightElimination eliminateLeftConjunctInConsequent

composeConjunction </jh> Next is the remainder. <jh> P A B c ExistsBeyondOutForward-3 composeConjunction ))

</jh> We now turn to the reverse direction. <jh> thm (ExistsBeyondOutReverse ((c A) (c B) (c P))  ((((A ≠ P) ∧ (B ≠ P)) ∧    (∃ c ((((value c) ≠ P) ∧ (between A P (value c))) ∧ (between B P (value c))))) → (P is-outside A B)) ( </jh> This proof is basically an application of middle connectivity for betweenness, which in this case is. First we need <jh> (((value c) ≠ P) ∧ (between A P (value c))) (between B P (value c)) ConjunctionRightElimination eliminateRightConjunctInConsequent </jh> Next is. <jh> (((value c) ≠ P) ∧ (between A P (value c))) (between B P (value c)) ConjunctionRightElimination eliminateLeftConjunctInConsequent

A P (value c) BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

composeConjunction </jh> Next is. <jh> (((value c) ≠ P) ∧ (between A P (value c))) (between B P (value c)) ConjunctionLeftElimination

B P (value c) BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

composeConjunction </jh> We apply connectivity, remove the quantifier from the consequent, and assemble the result. <jh> (value c) P A B BetweennessMiddleConnectivity applySyllogism

c addThereExists removeThereExistsInConsequent

((A ≠ P) ∧ (B ≠ P)) conjoinLL ))

thm (ExistsBeyondOut ((c A) (c B) (c P)) ((P is-outside A B) ↔ (((A ≠ P) ∧ (B ≠ P)) ∧ (∃ c ((((value c) ≠ P) ∧ (between A P (value c))) ∧ (between B P (value c)))))) ( P A B c ExistsBeyondOutForward A P B c ExistsBeyondOutReverse introduceBiconditionalFromImplications )) </jh>

Alternate definition in terms of collinearity
A point is outside a line segment if and only if it is collinear with the endpoints of the segment but not between them. That is,.

We first tackle the forward direction. The first lemma is. <jh> thm (OutCollinearityForward-1  ((((A ≠ P) ∧ (B ≠ P)) ∧ (between P A B)) → (¬ (between A P B))) ( </jh> First we pick out and rearrange the parts we need, specifically we prove <jh> ((A ≠ P) ∧ (B ≠ P)) (between P A B) ConjunctionLeftElimination

((A ≠ P) ∧ (B ≠ P)) (between P A B) ConjunctionRightElimination eliminateRightConjunctInConsequent

composeConjunction </jh> The geometrical content of this proof is. <jh> P A B BetweennessEquality

P A EqualitySymmetry eliminateBiconditionalReverse applySyllogism </jh> Applying some propositional logic, we rearrange this to <jh> export

(between A P B) (A = P) Transposition eliminateBiconditionalReverse applySyllogism

import </jh> Combining this with our first rearrangement, we get the desired result. <jh> applySyllogism )) </jh>

The second lemma,, is very similar. <jh> thm (OutCollinearityForward-2  ((((A ≠ P) ∧ (B ≠ P)) ∧ (between P B A)) → (¬ (between A P B))) ( (A ≠ P) (B ≠ P) ConjunctionCommutativity eliminateBiconditionalReverse (between P B A) conjoinRR

B P A OutCollinearityForward-1 applySyllogism

B P A BetweennessSymmetry addNegation eliminateBiconditionalReverse applySyllogism )) </jh>

Combining the two previous lemmas we get. <jh> thm (OutCollinearityForward-3  ((P is-outside A B) → (¬ (between A P B))) ( ((A ≠ P) ∧ (B ≠ P)) (between P A B) (between P B A) ConjunctionLeftDistribution eliminateBiconditionalReverse

A P B OutCollinearityForward-1 A P B OutCollinearityForward-2 composeDisjunction

applySyllogism )) </jh>

Collinearity is straightforward. <jh> thm (OutCollinearityForward-collinear  ((P is-outside A B) → (collinear A P B)) ( ((A ≠ P) ∧ (B ≠ P)) ((between P A B) ∨ (between P B A)) ConjunctionLeftElimination

(between P A B) (between P B A) DisjunctionCommutativity eliminateBiconditionalReverse applySyllogism

P A B BetweennessSymmetry eliminateBiconditionalReverse (between P B A) disjoinLL applySyllogism

((between P B A) ∨ (between B A P)) (between A P B) DisjunctionLeftIntroduction applySyllogism

(between A P B) (between P B A) (between B A P) DisjunctionAssociativity eliminateBiconditionalForward applySyllogism )) </jh>

Combining the last two results gives the forward direction. <jh> thm (OutCollinearityForward  ((P is-outside A B) → ((collinear A P B) ∧ (¬ (between A P B)))) ( P A B OutCollinearityForward-collinear P A B OutCollinearityForward-3 composeConjunction )) </jh>

Turning our attention to the reverse direction, we have two tasks. The first is to show that  and P ≠ B, each of which follows from   (because either equality holding would make   hold trivially). <jh> thm (OutCollinearityReverse-1  (((collinear A P B) ∧ (¬ (between A P B))) → ((A ≠ P) ∧ (B ≠ P))) ( (collinear A P B) (¬ (between A P B)) ConjunctionLeftElimination </jh> Next we show, and from it. <jh> P B BetweenAAB

P EqualityReflexivity B EqualityReflexivity A P P P B B BetweennessBuilder detach2of2 detach2of2

detachImplicationBiconditionalRight

introduceTransposition </jh> Proving  is similar (via  . <jh>        A P BetweenABB

A EqualityReflexivity P EqualityReflexivity A A P P B P BetweennessBuilder detach2of3 detach1of2

detachImplicationBiconditionalRight

introduceTransposition

composeConjunction

applySyllogism )) </jh> Our other task is to show. <jh> thm (OutCollinearityReverse-2   (((collinear A P B) ∧ (¬ (between A P B))) → ((between P A B) ∨ (between P B A))) ( </jh> First we show <jh> (between A P B) (between P B A) (between B A P) DisjunctionAssociativity eliminateBiconditionalReverse

(between A P B) ((between P B A) ∨ (between B A P)) DisjunctionImplication eliminateBiconditionalReverse applySyllogism

import </jh> That gives us. We just need to rearrange a bit and we are done. <jh> B A P BetweennessSymmetry eliminateBiconditionalReverse (between P B A) disjoinLL applySyllogism

(between P B A) (between P A B) DisjunctionCommutativity eliminateBiconditionalReverse applySyllogism )) </jh>

Combining our tasks proves the reverse direction, and combining forward and reverse directions proves the equivalence. <jh> thm (OutCollinearityReverse  (((collinear A P B) ∧ (¬ (between A P B))) → (P is-outside A B)) ( A P B OutCollinearityReverse-1 A P B OutCollinearityReverse-2 composeConjunction ))

thm (OutCollinearity  ((P is-outside A B) ↔ ((collinear A P B) ∧ (¬ (between A P B)))) ( P A B OutCollinearityForward A P B OutCollinearityReverse introduceBiconditionalFromImplications )) </jh>

Reflexive, symmetric, and transitive
Here we present versions of reflexivity, symmetry, and transitivity. You can think of this as dividing a line (excluding the point  itself) into two equivalence classes: those to the left of   and those to the right (we certainly don't have the machinery to say it quite that way, but that is the rough idea).

Reflexivity
<jh> thm (OutReflexivity  ((A ≠ P) → (P is-outside A A)) ( (A ≠ P) ConjunctionIdempotence eliminateBiconditionalReverse

P A BetweenABB cloneAsDisjunction introduceRightConjunctToConsequent )) </jh>

Symmetry
<jh> thm (OutSymmetry  ((P is-outside A B) ↔ (P is-outside B A)) ( (A ≠ P) (B ≠ P) ConjunctionCommutativity (between P A B) (between P B A) DisjunctionCommutativity buildConjunction )) </jh>

Transitivity
Expanding the definitions of the antecedent, we start with A ≠ P ∧ B ≠ P ∧ (between P A B ∨ between P B A) ∧ B ≠ P ∧ C ≠ P ∧ (between P B C ∨ between P C B) Looking at the betweenness part of that, there are four cases ( being the first, , being the second, and so on).

The interesting part is a lemma which handles those four cases; there is also a fair bit of rearranging (in the lemma and in the proof of the actual theorem).

<jh> thm (OutTransitivity-1  (((B ≠ P) ∧  (((between P A B) ∨ (between P B A)) ∧ ((between P B C) ∨ (between P C B)))) → ((between P A C) ∨ (between P C A))) ( </jh> First we break down the four cases. <jh> (between P A B)         (between P B A)          ((between P B C) ∨ (between P C B)) ConjunctionRightDistribution eliminateBiconditionalReverse

(between P A B) (between P B C) (between P C B) ConjunctionLeftDistribution eliminateBiconditionalReverse (between P B A) (between P B C) (between P C B) ConjunctionLeftDistribution eliminateBiconditionalReverse disjoin

applySyllogism

(B ≠ P) conjoinLL </jh> Now we distribute the  into each of the cases. <jh> (B ≠ P)         (((between P A B) ∧ (between P B C)) ∨ ((between P A B) ∧ (between P C B))) (((between P B A) ∧ (between P B C)) ∨ ((between P B A) ∧ (between P C B))) ConjunctionLeftDistribution eliminateBiconditionalReverse applySyllogism

(B ≠ P)         ((between P A B) ∧ (between P B C)) ((between P A B) ∧ (between P C B)) ConjunctionLeftDistribution eliminateBiconditionalReverse (B ≠ P)         ((between P B A) ∧ (between P B C)) ((between P B A) ∧ (between P C B)) ConjunctionLeftDistribution eliminateBiconditionalReverse disjoin applySyllogism </jh> The first case is. In all four cases we are showing that the case in question implies. In the current case,  follows from transitivity. <jh> (B ≠ P)         ((between P A B) ∧ (between P B C)) ConjunctionLeftElimination

P A B C BetweennessMiddleTransitivityFlipped applySyllogism

(between P A C) (between P C A) DisjunctionRightIntroduction applySyllogism </jh> The second case is. Here we apply inner connectivity for betweenness. <jh> (B ≠ P)         ((between P A B) ∧ (between P C B)) ConjunctionLeftElimination

P A B C BetweennessInnerConnectivity applySyllogism

composeDisjunction </jh> The third case is. Here we apply outer connectivity for betweenness. <jh> B P EqualitySymmetry addNegation eliminateBiconditionalReverse

((between P B A) ∧ (between P B C)) conjoinRR

(P ≠ B) (between P B A) (between P B C) ConjunctionAssociativity eliminateBiconditionalForward applySyllogism

P B A C BetweennessOuterConnectivity applySyllogism </jh> The fourth case is. In this one  follows from betweenness transitivity. <jh> (B ≠ P)         ((between P B A) ∧ (between P C B)) ConjunctionLeftElimination

(between P B A) (between P C B) ConjunctionCommutativity eliminateBiconditionalReverse applySyllogism

P C B A BetweennessMiddleTransitivityFlipped applySyllogism

(between P C A) (between P A C) DisjunctionLeftIntroduction applySyllogism

composeDisjunction

composeDisjunction

applySyllogism ))

thm (OutTransitivity  (((P is-outside A B) ∧ (P is-outside B C)) → (P is-outside A C)) ( </jh> First we pick out. <jh> (((A ≠ P) ∧ (B ≠ P)) ∧ ((between P A B) ∨ (between P B A))) (((B ≠ P) ∧ (C ≠ P)) ∧ ((between P B C) ∨ (between P C B))) ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent </jh> Secondly we pick out. <jh> (((A ≠ P) ∧ (B ≠ P)) ∧ ((between P A B) ∨ (between P B A))) (((B ≠ P) ∧ (C ≠ P)) ∧ ((between P B C) ∨ (between P C B))) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

composeConjunction </jh> Next we assemble  and apply our lemma to turn this into. <jh> (((A ≠ P) ∧ (B ≠ P)) ∧ ((between P A B) ∨ (between P B A))) (((B ≠ P) ∧ (C ≠ P)) ∧ ((between P B C) ∨ (between P C B))) ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

(((A ≠ P) ∧ (B ≠ P)) ∧ ((between P A B) ∨ (between P B A))) (((B ≠ P) ∧ (C ≠ P)) ∧ ((between P B C) ∨ (between P C B))) ConjunctionRightElimination eliminateLeftConjunctInConsequent

(((A ≠ P) ∧ (B ≠ P)) ∧ ((between P A B) ∨ (between P B A))) (((B ≠ P) ∧ (C ≠ P)) ∧ ((between P B C) ∨ (between P C B))) ConjunctionLeftElimination eliminateLeftConjunctInConsequent

composeConjunction

composeConjunction

B P A C OutTransitivity-1 applySyllogism

composeConjunction )) </jh>

Line segment construction
From a given point, in the direction of a second given point, we construct a segment congruent to a given line segment. This is similar to  but is expressed in terms of.

Existence
In this section we prove the existence of such a point. That is,.

The proof consists of applying, rearranging, and applying the definition of. The following lemma expresses most of the rearrangements. <jh> thm (OutSegmentConstructionLemma   ((((R ≠ A) ∧ (B ≠ C)) ∧    (((between A R E) ∨ (between A E R)) ∧ (A E ≡ B C))) → ((A is-outside E R) ∧ (A E ≡ B C))) ( </jh> To apply the definition of, first we need. This follows from  and , and the first step is picking out those two formulas. <jh> ((R ≠ A) ∧ (B ≠ C)) (((between A R E) ∨ (between A E R)) ∧           (A E ≡ B C)) ConjunctionRightElimination eliminateLeftConjunctInConsequent

((R ≠ A) ∧ (B ≠ C)) (((between A R E) ∨ (between A E R)) ∧           (A E ≡ B C)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent

composeConjunction </jh> The next step in getting to  is to show that. <jh> A E B C CongruenceIdentityFromEquality export applyComm

(A = E) (B = C) Transposition eliminateBiconditionalReverse applySyllogism

applyComm import </jh> Combining that with the previous result and flipping the two sides of the not-equals sign gives us. <jh> applySyllogism

A E EqualitySymmetry addNegation eliminateBiconditionalReverse applySyllogism </jh> Next we need. <jh> ((R ≠ A) ∧ (B ≠ C)) (((between A R E) ∨ (between A E R)) ∧           (A E ≡ B C)) ConjunctionRightElimination eliminateRightConjunctInConsequent

composeConjunction </jh> Then we need <jh> ((R ≠ A) ∧ (B ≠ C)) (((between A R E) ∨ (between A E R)) ∧           (A E ≡ B C)) ConjunctionLeftElimination eliminateRightConjunctInConsequent

(between A R E) (between A E R)       DisjunctionCommutativity eliminateBiconditionalReverse applySyllogism

composeConjunction </jh> That's all for. So the only remaining step is <jh> ((R ≠ A) ∧ (B ≠ C)) (((between A R E) ∨ (between A E R)) ∧           (A E ≡ B C)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent

composeConjunction ))

thm (OutSegmentConstruction ((e R) (e A) (e B) (e C))  (((R ≠ A) ∧ (B ≠ C)) → (∃ e ((A is-outside (value e) R) ∧ (A (value e) ≡ B C)))) ( ((R ≠ A) ∧ (B ≠ C)) ImplicationReflexivity e A R B C InnerSegmentConstruction introduceRightConjunctToConsequent

e         ((R ≠ A) ∧ (B ≠ C)) (((between A R (value e)) ∨ (between A (value e) R)) ∧           (A (value e) ≡ B C)) ThereExistsConjunctionMovement eliminateBiconditionalForward applySyllogism

R A B C (value e) OutSegmentConstructionLemma e addThereExists applySyllogism )) </jh>

Uniqueness
The point that we construct this way is also unique. In symbols,.

The proof of uniqueness is more involved than the existence proof. Start by expanding the definitions of  (and removing the redundant copies of  ) so we now have R ≠ A ∧ B ≠ C ∧ X ≠ A ∧ (between A X R ∨ between A R X) ∧ A X ≡ B C ∧ Y ≠ A ∧ (between A Y R ∨ between A R Y) ∧ A Y ≡ B C

By congruence transitivity, we derive. Then we look at the betweenness relationships. Specifically we want to conclude. There are four cases:  by inner connectivity,   by transitivity,   by transitivity, and   by outer connectivity.

Once we have  and ,   follows from   (applied twice, once to each of the betweenness formulas).

Our first lemma just spells out the four cases. <jh> thm (OutSegmentConstructionUniqueness-cases    (((((((R ≠ A) ∧ (B ≠ C)) ∧ (A is-outside X R)) ∧ (A X ≡ B C)) ∧ (A is-outside Y R)) ∧ (A Y ≡ B C)) → ((((between A X R) ∧ (between A Y R)) ∨ ((between A X R) ∧ (between A R Y))) ∨   (((between A R X) ∧ (between A Y R)) ∨ (((A ≠ R) ∧ (between A R X)) ∧ (between A R Y))))) ( </jh> First is. <jh> (((((R ≠ A) ∧ (B ≠ C)) ∧         (A is-outside X R)) ∧ (A X ≡ B C)) ∧          (A is-outside Y R)) (A Y ≡ B C)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

R A EqualitySymmetry addNegation eliminateBiconditionalReverse applySyllogism </jh> Next is <jh> (((((R ≠ A) ∧ (B ≠ C)) ∧         (A is-outside X R)) ∧ (A X ≡ B C)) ∧          (A is-outside Y R)) (A Y ≡ B C)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent </jh> Next is <jh> (((((R ≠ A) ∧ (B ≠ C)) ∧         (A is-outside X R)) ∧ (A X ≡ B C)) ∧          (A is-outside Y R)) (A Y ≡ B C)         ConjunctionRightElimination eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent

composeConjunction

composeConjunction </jh> Now we apply distributivity to expand the four cases. <jh> (between A X R)         (between A R X)          ((between A Y R) ∨ (between A R Y)) ConjunctionRightDistribution eliminateBiconditionalReverse

(between A X R) (between A Y R) (between A R Y) ConjunctionLeftDistribution eliminateBiconditionalReverse (between A R X) (between A Y R) (between A R Y) ConjunctionLeftDistribution eliminateBiconditionalReverse disjoin

applySyllogism

(A ≠ R) conjoinLL

applySyllogism </jh> Now we distribute the  into each of the cases. <jh> (A ≠ R)         (((between A X R) ∧ (between A Y R)) ∨ ((between A X R) ∧ (between A R Y))) (((between A R X) ∧ (between A Y R)) ∨ ((between A R X) ∧ (between A R Y))) ConjunctionLeftDistribution eliminateBiconditionalReverse applySyllogism

(A ≠ R)         ((between A X R) ∧ (between A Y R)) ((between A X R) ∧ (between A R Y)) ConjunctionLeftDistribution eliminateBiconditionalReverse (A ≠ R)         ((between A R X) ∧ (between A Y R)) ((between A R X) ∧ (between A R Y)) ConjunctionLeftDistribution eliminateBiconditionalReverse disjoin applySyllogism </jh> Now we remove  from the first three cases, and apply associativity to the fourth. <jh> (A ≠ R) ((between A X R) ∧ (between A Y R)) ConjunctionLeftElimination (A ≠ R) ((between A X R) ∧ (between A R Y)) ConjunctionLeftElimination disjoin

(A ≠ R) ((between A R X) ∧ (between A Y R)) ConjunctionLeftElimination

(A ≠ R) (between A R X) (between A R Y) ConjunctionAssociativity eliminateBiconditionalForward

disjoin disjoin applySyllogism ))

thm (OutSegmentConstructionUniqueness-axy-ayx    (((((((R ≠ A) ∧ (B ≠ C)) ∧ (A is-outside X R)) ∧ (A X ≡ B C)) ∧ (A is-outside Y R)) ∧ (A Y ≡ B C)) → ((between A X Y) ∨ (between A Y X))) ( R A B C X Y OutSegmentConstructionUniqueness-cases </jh> The first of the four cases is. <jh> A X R Y BetweennessInnerConnectivity </jh> The second case is. <jh> A X R Y BetweennessMiddleTransitivityFlipped (between A X Y) (between A Y X) DisjunctionRightIntroduction applySyllogism

composeDisjunction </jh> The third case is. <jh> (between A R X) (between A Y R) ConjunctionCommutativity eliminateBiconditionalReverse

A Y R X BetweennessMiddleTransitivityFlipped (between A Y X) (between A X Y) DisjunctionLeftIntroduction applySyllogism

applySyllogism </jh> The fourth case is. <jh> A R X Y BetweennessOuterConnectivity

composeDisjunction

composeDisjunction

applySyllogism ))

thm (OutSegmentConstructionUniqueness-axay    (((((((R ≠ A) ∧ (B ≠ C)) ∧ (A is-outside X R)) ∧ (A X ≡ B C)) ∧ (A is-outside Y R)) ∧ (A Y ≡ B C)) → (A X ≡ A Y)) ( (((((R ≠ A) ∧ (B ≠ C)) ∧         (A is-outside X R)) ∧ (A X ≡ B C)) ∧          (A is-outside Y R)) (A Y ≡ B C)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

(((((R ≠ A) ∧ (B ≠ C)) ∧         (A is-outside X R)) ∧ (A X ≡ B C)) ∧          (A is-outside Y R)) (A Y ≡ B C)         ConjunctionLeftElimination

A Y B C CongruenceSymmetry eliminateBiconditionalReverse applySyllogism

composeConjunction

A X B C A Y CongruenceTransitivity applySyllogism ))

thm (OutSegmentConstructionUniqueness    (((((((R ≠ A) ∧ (B ≠ C)) ∧ (A is-outside X R)) ∧ (A X ≡ B C)) ∧ (A is-outside Y R)) ∧ (A Y ≡ B C)) → (X = Y)) ( </jh> We first arrange the results of the two previous lemmas to get. <jh> R A B C X Y OutSegmentConstructionUniqueness-axy-ayx R A B C X Y OutSegmentConstructionUniqueness-axay composeConjunction

(between A X Y) (between A Y X) (A X ≡ A Y) ConjunctionRightDistribution eliminateBiconditionalReverse applySyllogism </jh> The result for the first half is, which follows directly from. <jh> A X Y BetweennessOneDistanceUniqueness </jh> The second half result,, is basically the same thing, but we need to rearrange slightly. <jh> A X A Y CongruenceSymmetry eliminateBiconditionalReverse (between A Y X) conjoinLL

A Y X BetweennessOneDistanceUniqueness applySyllogism

Y X EqualitySymmetry eliminateBiconditionalReverse applySyllogism </jh> Now we combine the two halves. <jh> composeDisjunction applySyllogism )) </jh>

The closer point is between
If  and   are on a line with , both on the same side of  , and   is closer to   than   is, then   is between   and. That is,.

The proof begins by expanding  to. From  and   we can conclude. We will then be applying  which in this case expands to:

B ≠ P ∧ P ≠ y ∧ P is-outside y B ∧ P y ≡ P y ∧ P is-outside A B ∧ P A ≡ P y → y = A

Each piece of this is something we already have, or readily follows from things we have. Once we have  we just substitute it into   and we are done.

The first lemma constructs the point. <jh> thm (LessEqualBetween-y ((y P) (y A) (y B))  (((P is-outside A B) ∧ (P A ≤ P B)) → (∃ y ((P is-outside A B) ∧ ((between P (value y) B) ∧ (P A ≡ P (value y)))))) ( P A P B y LessEqualCutoff eliminateBiconditionalReverse (P is-outside A B) conjoinLL

y         (P is-outside A B)          ((between P (value y) B) ∧ (P A ≡ P (value y))) ThereExistsConjunctionMovement eliminateBiconditionalForward applySyllogism )) </jh>

The next lemma is <jh> thm (LessEqualBetween-Py   (((P is-outside A B) ∧ ((between P Y B) ∧ (P A ≡ P Y))) → (P ≠ Y)) ( </jh> First we pick out. <jh> (P is-outside A B) ((between P Y B) ∧ (P A ≡ P Y)) ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

A P EqualitySymmetry addNegation eliminateBiconditionalReverse applySyllogism </jh> Next is. <jh> (P is-outside A B) ((between P Y B) ∧ (P A ≡ P Y)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent

composeConjunction </jh> Next is  (from  ), which we then rearrange to give <jh> P A P Y CongruenceSymmetry eliminateBiconditionalReverse (P = Y) conjoinLL

P Y P A CongruenceIdentityFromEquality applySyllogism

export applyComm

(P = Y) (P = A) Transposition eliminateBiconditionalReverse applySyllogism applyComm import </jh> Combining that with the previous result finishes the proof. <jh> applySyllogism )) </jh>

The next lemma is. <jh> thm (LessEqualBetween-PyB   (((P is-outside A B) ∧ ((between P Y B) ∧ (P A ≡ P Y))) → (P is-outside Y B)) ( </jh> First we need. <jh> P A B Y LessEqualBetween-Py

P Y EqualitySymmetry addNegation eliminateBiconditionalReverse applySyllogism </jh> Then we need. <jh> (P is-outside A B) ((between P Y B) ∧ (P A ≡ P Y)) ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

composeConjunction </jh> Finally we need. <jh> (P is-outside A B) ((between P Y B) ∧ (P A ≡ P Y)) ConjunctionLeftElimination eliminateRightConjunctInConsequent (between P Y B) (between P B Y) DisjunctionRightIntroduction applySyllogism

composeConjunction ))

</jh> The next lemma applies  to give. <jh> thm (LessEqualBetween-yA   (((P is-outside A B) ∧ ((between P Y B) ∧ (P A ≡ P Y))) → (Y = A)) ( </jh> First we need. <jh> (P is-outside A B) ((between P Y B) ∧ (P A ≡ P Y)) ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent </jh> Next we need. <jh> P A B Y LessEqualBetween-Py composeConjunction </jh> Next we need. <jh> P A B Y LessEqualBetween-PyB composeConjunction </jh> Next is. <jh> P Y CongruenceReflexivity introduceRightConjunctToConsequent </jh> Next is. <jh> (P is-outside A B) ((between P Y B) ∧ (P A ≡ P Y)) ConjunctionRightElimination composeConjunction </jh> Next is. <jh> (P is-outside A B) ((between P Y B) ∧ (P A ≡ P Y)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent composeConjunction </jh> Now that we have all the hypotheses, we'll apply  to give. <jh> B P P Y Y A OutSegmentConstructionUniqueness applySyllogism ))

</jh> Now that we have, we just substitute that into   to get. <jh> thm (LessEqualBetween-PAB   (((P is-outside A B) ∧ ((between P Y B) ∧ (P A ≡ P Y))) → (between P A B)) ( </jh> First we get out  and. <jh> P A B Y LessEqualBetween-yA

(P is-outside A B) ((between P Y B) ∧ (P A ≡ P Y)) ConjunctionLeftElimination eliminateRightConjunctInConsequent

composeConjunction </jh> The substitution is. <jh> P EqualityReflexivity B EqualityReflexivity P P Y A B B BetweennessBuilder detach2of2 detach1of2

eliminateBiconditionalReverseInConsequent import

applySyllogism ))

thm (LessEqualBetweenForward ( (y P) (y A) (y B))  (((P is-outside A B) ∧ (P A ≤ P B)) → (between P A B)) ( P A B y LessEqualBetween-y

P A B (value y) LessEqualBetween-PAB y addThereExists applySyllogism

removeThereExistsInConsequent )) </jh>

The point which is between is closer
The converse also holds:. To prove, we need  , and the point   suffices for the choice of. In fact, we don't need the hypothesis, so unlike Narboux we state the theorem without it. <jh> thm (LessEqualBetweenReverse ( (c P) (c A) (c B))  ((between P A B) → (P A ≤ P B)) ( (between P A B) ImplicationReflexivity

P A CongruenceReflexivity introduceRightConjunctToConsequent </jh> Now we apply a substitution  to turn   into. <jh> P EqualityReflexivity B EqualityReflexivity P P (value c) A B B BetweennessBuilder detach2of2 detach1of2

A EqualityReflexivity P EqualityReflexivity P EqualityReflexivity P P A A P P (value c) A CongruenceBuilder detach1of4 detach2of3 detach1of2

buildConjunctionInConsequent

makeSubstExplicit eliminateBiconditionalForward applySyllogism </jh> Turning the substitution into ∃ and applying  we are done. <jh> A         c          ((between P (value c) B) ∧ (P A ≡ P (value c))) ThereExistsIntroductionFromObject applySyllogism

P A P B c LessEqualCutoff eliminateBiconditionalForward applySyllogism )) </jh>

Biconditional
Here we combine the previous two results:. <jh> thm (LessEqualBetween   ((P is-outside A B) → ((P A ≤ P B) ↔ (between P A B))) ( P A B LessEqualBetweenForward export

P A B LessEqualBetweenReverse (P is-outside A B) introduceAntecedent

introduceBiconditionalFromImplicationsInConsequent )) </jh>

Collinearity
In this section we prove a number of results involving collinearity.

Outer transitivity
Here we prove. We call it "outer" transitivity although unlike similar-looking results for betweenness, five segment, etc, this does not make it a different theorem than inner transitivity, just a different rearrangement (since the order of points in a collinearity predicate does not matter).

Actually, we first prove it in the slightly rearranged form  (in which   and   are interchanged and the order of the points in the collinearity statements are changed). There is no deep reason for this rearrangement, but it will be slightly more convenient in the next section.

Expanding each  in the antecedent by the definition, and then applying associativity, gives us nine cases. In each case we'll be able to prove,  ,  , or a disjunction between two of them. Each case will follow from either betweenness transitivity or betweenness connectivity.

We start with a lemma, and then proceed to the proof. <jh> thm (CollinearityCollinearity-1   (((between P S X) ∨ (between P X S)) → (collinear X P S)) ( </jh> We prove  via its definition:. <jh> P X S BetweennessSymmetry eliminateBiconditionalReverse

(between P S X) disjoinLL

((between P S X) ∨ (between S X P)) (between X P S)         DisjunctionLeftIntroduction applySyllogism

(between X P S) (between P S X) (between S X P) DisjunctionAssociativity eliminateBiconditionalForward applySyllogism ))

thm (CollinearityOuterTransitivityRearranged   ((((P ≠ Q) ∧ (collinear S P Q)) ∧ (collinear X P Q)) → (collinear X P S)) ( </jh> First we associate the two collinearity formulas together. <jh> (P ≠ Q)         (collinear S P Q)          (collinear X P Q)          ConjunctionAssociativity eliminateBiconditionalReverse </jh> Now we apply distributivity multiple times to separate out the nine cases. Round one: splitting  halfway. <jh> ((between S P Q) ∨ (between P Q S)) (between Q S P)          (collinear X P Q)          ConjunctionRightDistribution eliminateBiconditionalReverse </jh> Round two: splitting  the rest of the way. <jh> (between S P Q)         (between P Q S)          (collinear X P Q)          ConjunctionRightDistribution eliminateBiconditionalReverse ((between Q S P) ∧ (collinear X P Q)) disjoinRR applySyllogism </jh> Round three: split  halfway. <jh> (between S P Q)         ((between X P Q) ∨ (between P Q X)) (between Q X P)         ConjunctionLeftDistribution eliminateBiconditionalReverse

(between P Q S)         ((between X P Q) ∨ (between P Q X)) (between Q X P)         ConjunctionLeftDistribution eliminateBiconditionalReverse

disjoin

(between Q S P)         ((between X P Q) ∨ (between P Q X)) (between Q X P)         ConjunctionLeftDistribution eliminateBiconditionalReverse

disjoin applySyllogism </jh> Round four: split  the rest of the way. <jh> (between S P Q)         (between X P Q)          (between P Q X)          ConjunctionLeftDistribution eliminateBiconditionalReverse

((between S P Q) ∧ (between Q X P)) disjoinRR

(between P Q S)         (between X P Q)          (between P Q X)          ConjunctionLeftDistribution eliminateBiconditionalReverse

((between P Q S) ∧ (between Q X P)) disjoinRR

disjoin

(between Q S P)         (between X P Q)          (between P Q X)          ConjunctionLeftDistribution eliminateBiconditionalReverse

((between Q S P) ∧ (between Q X P)) disjoinRR

disjoin

applySyllogism </jh> Having split out the nine cases, we combine with  and then distribute   into each of the cases. <jh> (P ≠ Q) conjoinLL applySyllogism </jh> Round one. <jh> (P ≠ Q)         (((((between S P Q) ∧ (between X P Q)) ∨                ((between S P Q) ∧ (between P Q X))) ∨ ((between S P Q) ∧ (between Q X P))) ∨           ((((between P Q S) ∧ (between X P Q)) ∨                ((between P Q S) ∧ (between P Q X))) ∨ ((between P Q S) ∧ (between Q X P)))) ((((between Q S P) ∧ (between X P Q)) ∨ ((between Q S P) ∧ (between P Q X))) ∨           ((between Q S P) ∧ (between Q X P))) ConjunctionLeftDistribution eliminateBiconditionalReverse applySyllogism </jh> Round two. <jh> (P ≠ Q)         ((((between S P Q) ∧ (between X P Q)) ∨ ((between S P Q) ∧ (between P Q X))) ∨             ((between S P Q) ∧ (between Q X P))) ((((between P Q S) ∧ (between X P Q)) ∨ ((between P Q S) ∧ (between P Q X))) ∨           ((between P Q S) ∧ (between Q X P))) ConjunctionLeftDistribution eliminateBiconditionalReverse

((P ≠ Q) ∧         ((((between Q S P) ∧ (between X P Q)) ∨              ((between Q S P) ∧ (between P Q X))) ∨ ((between Q S P) ∧ (between Q X P)))) disjoinRR applySyllogism </jh> Round three. <jh> (P ≠ Q)         (((between S P Q) ∧ (between X P Q)) ∨            ((between S P Q) ∧ (between P Q X))) ((between S P Q) ∧ (between Q X P)) ConjunctionLeftDistribution eliminateBiconditionalReverse

(P ≠ Q)         (((between P Q S) ∧ (between X P Q)) ∨            ((between P Q S) ∧ (between P Q X))) ((between P Q S) ∧ (between Q X P)) ConjunctionLeftDistribution eliminateBiconditionalReverse

disjoin

(P ≠ Q)         (((between Q S P) ∧ (between X P Q)) ∨            ((between Q S P) ∧ (between P Q X))) ((between Q S P) ∧ (between Q X P)) ConjunctionLeftDistribution eliminateBiconditionalReverse

disjoin applySyllogism </jh> Round four. <jh> (P ≠ Q)         ((between S P Q) ∧ (between X P Q)) ((between S P Q) ∧ (between P Q X)) ConjunctionLeftDistribution eliminateBiconditionalReverse ((P ≠ Q) ∧ ((between S P Q) ∧ (between Q X P))) disjoinRR

(P ≠ Q)         ((between P Q S) ∧ (between X P Q)) ((between P Q S) ∧ (between P Q X)) ConjunctionLeftDistribution eliminateBiconditionalReverse ((P ≠ Q) ∧ ((between P Q S) ∧ (between Q X P))) disjoinRR

disjoin

(P ≠ Q)         ((between Q S P) ∧ (between X P Q)) ((between Q S P) ∧ (between P Q X)) ConjunctionLeftDistribution eliminateBiconditionalReverse ((P ≠ Q) ∧ ((between Q S P) ∧ (between Q X P))) disjoinRR

disjoin applySyllogism </jh> Sorry breaking out the cases took so long. Anyway, we are ready to tackle them one by one. The first is  (of course, all of them have   tacked on the front, which we usually will not state explicitly). It follows from the following application of : <jh> (P ≠ Q)         ((between S P Q) ∧ (between X P Q)) ConjunctionRightElimination

P Q EqualitySymmetry addNegation eliminateBiconditionalReverse applySyllogism

(P ≠ Q)         ((between S P Q) ∧ (between X P Q)) ConjunctionLeftElimination eliminateRightConjunctInConsequent

S P Q BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

composeConjunction

(P ≠ Q)         ((between S P Q) ∧ (between X P Q)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent

X P Q BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

composeConjunction

Q P S X BetweennessMiddleConnectivity applySyllogism </jh> To finish the first case we turn  into. <jh> P S X CollinearityCollinearity-1 applySyllogism </jh> The second case is. This follows from, which is an instance of. <jh> (P ≠ Q)         ((between S P Q) ∧ (between P Q X)) ConjunctionLeftElimination eliminateRightConjunctInConsequent

(P ≠ Q)         ((between S P Q) ∧ (between P Q X)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent

composeConjunction

(P ≠ Q)         ((between S P Q) ∧ (between P Q X)) ConjunctionRightElimination

composeConjunction

S P Q X BetweennessOuterTransitivity applySyllogism </jh> Now we need. <jh> S P X BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

X P S BetweennessCollinearity applySyllogism

composeDisjunction </jh> The third case is, which follows from  , which is an instance of  <jh> (P ≠ Q)         ((between S P Q) ∧ (between Q X P)) ConjunctionLeftElimination eliminateRightConjunctInConsequent

(P ≠ Q)         ((between S P Q) ∧ (between Q X P)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent

Q X P BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

composeConjunction

S P Q X BetweennessInnerTransitivity applySyllogism </jh> To finish this case we need. <jh> S P X BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

X P S BetweennessCollinearity applySyllogism

composeDisjunction </jh> We now start the second set of cases, those starting with. The fourth case is, which follows from  , which is an instance of. <jh> (P ≠ Q)         ((between P Q S) ∧ (between X P Q)) ConjunctionLeftElimination

(between P Q S) (between X P Q) ConjunctionCommutativity eliminateBiconditionalReverse applySyllogism

(P ≠ Q)         ((between P Q S) ∧ (between X P Q)) ConjunctionRightElimination composeConjunction

X P Q S BetweennessOuterTransitivity applySyllogism </jh> To finish this case we need. <jh> X P S BetweennessCollinearity applySyllogism </jh> The fifth case is. This follows from, which in this case is. <jh> (P ≠ Q)         ((between P Q S) ∧ (between P Q X)) ConjunctionRightElimination

(P ≠ Q)         ((between P Q S) ∧ (between P Q X)) ConjunctionLeftElimination

composeConjunction

(P ≠ Q) (between P Q S) (between P Q X) ConjunctionAssociativity eliminateBiconditionalForward applySyllogism

P Q S X BetweennessOuterConnectivity applySyllogism </jh> To finish this case we turn  into. <jh> P S X CollinearityCollinearity-1 applySyllogism

composeDisjunction </jh> The sixth case is. It follows from, an instance of  <jh> (P ≠ Q)         ((between P Q S) ∧ (between Q X P)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent

Q X P BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

(P ≠ Q)         ((between P Q S) ∧ (between Q X P)) ConjunctionLeftElimination eliminateRightConjunctInConsequent

composeConjunction

P X Q S BetweennessMiddleTransitivityFlipped applySyllogism </jh> To finish the case we turn  into. <jh> P X S BetweennessCollinearity applySyllogism

P X S Collinearity12 eliminateBiconditionalReverse applySyllogism

composeDisjunction

composeDisjunction </jh> We are ready for the last trio of cases, those which start with. The seventh case is. It follows from, which is an instance of. <jh> (P ≠ Q)         ((between Q S P) ∧ (between X P Q)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent

(P ≠ Q)         ((between Q S P) ∧ (between X P Q)) ConjunctionLeftElimination eliminateRightConjunctInConsequent

Q S P BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

composeConjunction

X P Q S BetweennessInnerTransitivity applySyllogism </jh> To finish the case we turn  into. <jh> X P S BetweennessCollinearity applySyllogism </jh> The eighth case is. It follows by  which is an instance of. <jh> (P ≠ Q)         ((between Q S P) ∧ (between P Q X)) ConjunctionLeftElimination eliminateRightConjunctInConsequent

Q S P BetweennessSymmetry eliminateBiconditionalReverse applySyllogism

(P ≠ Q)         ((between Q S P) ∧ (between P Q X)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent

composeConjunction

P S Q X BetweennessMiddleTransitivityFlipped applySyllogism </jh> To finish the case we need to turn  into. <jh> P S X BetweennessCollinearity applySyllogism

X P S CollinearityRotation eliminateBiconditionalForward applySyllogism

composeDisjunction </jh> The ninth and final case is. It follows from, which is an instance of. <jh> (P ≠ Q)         ((between Q S P) ∧ (between Q X P)) ConjunctionLeftElimination

Q S P BetweennessSymmetry Q X P BetweennessSymmetry buildConjunction eliminateBiconditionalReverse applySyllogism

P S Q X BetweennessInnerConnectivity applySyllogism </jh> To finish this case, we turn  into. <jh> P S X CollinearityCollinearity-1 applySyllogism

composeDisjunction

composeDisjunction </jh> To finish the proof, we simply combine the breaking down of the cases with the resolution of each case. <jh> applySyllogism )) </jh>

Now we return to. <jh> thm (CollinearityOuterTransitivity   ((((P ≠ Q) ∧ (collinear P Q A)) ∧ (collinear P Q B)) → (collinear P A B)) ( </jh> First we need <jh> ((P ≠ Q) ∧ (collinear P Q A)) (collinear P Q B)         ConjunctionRightElimination eliminateRightConjunctInConsequent </jh> Second we need. <jh> ((P ≠ Q) ∧ (collinear P Q A)) (collinear P Q B)         ConjunctionRightElimination eliminateLeftConjunctInConsequent

A P Q CollinearityRotation eliminateBiconditionalForward applySyllogism

composeConjunction </jh> Lastly we need. <jh> ((P ≠ Q) ∧ (collinear P Q A)) (collinear P Q B)         ConjunctionLeftElimination

B P Q CollinearityRotation eliminateBiconditionalForward applySyllogism

composeConjunction </jh> Applying the previous rearrangement of transitivity gives us, which we then rearrange to. <jh> P Q A B CollinearityOuterTransitivityRearranged applySyllogism

B P A CollinearityRotation eliminateBiconditionalReverse applySyllogism )) </jh>

Being collinear to collinear points
Given three collinear distinct points, a fourth point being collinear to two of them is equivalent to being collinear to two others. More precisely,.

The forward direction is. It is almost identical to what we proved in the previous section (we just need to drop the ). <jh> thm (CollinearityCollinearityForward   (((((P ≠ Q) ∧ (S ≠ P)) ∧ (collinear S P Q)) ∧ (collinear X P Q)) → (collinear X P S)) ( (((P ≠ Q) ∧ (S ≠ P)) ∧ (collinear S P Q)) (collinear X P Q)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

(((P ≠ Q) ∧ (S ≠ P)) ∧ (collinear S P Q)) (collinear X P Q)         ConjunctionRightElimination eliminateLeftConjunctInConsequent composeConjunction

(((P ≠ Q) ∧ (S ≠ P)) ∧ (collinear S P Q)) (collinear X P Q)         ConjunctionLeftElimination composeConjunction

P Q S X CollinearityOuterTransitivityRearranged applySyllogism )) </jh>

The reverse direction is. This is essentially the same as the forward direction, as exchanging  and   doesn't really change the statement. Narboux proves the reverse direction by copy-pasting the proof of the forward direction, interchanging  and , but our proof simply performs the right rearrangements to apply the forward direction. <jh> thm (CollinearityCollinearityReverse   (((((P ≠ Q) ∧ (S ≠ P)) ∧ (collinear S P Q)) ∧ (collinear X P S)) → (collinear X P Q)) ( </jh> We first need. <jh> (((P ≠ Q) ∧ (S ≠ P)) ∧ (collinear S P Q)) (collinear X P S)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

S P EqualitySymmetry addNegation eliminateBiconditionalReverse applySyllogism </jh> Next is. <jh> (((P ≠ Q) ∧ (S ≠ P)) ∧ (collinear S P Q)) (collinear X P S)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

P Q EqualitySymmetry addNegation eliminateBiconditionalReverse applySyllogism

composeConjunction </jh> Next is. <jh> (((P ≠ Q) ∧ (S ≠ P)) ∧ (collinear S P Q)) (collinear X P S)         ConjunctionRightElimination eliminateLeftConjunctInConsequent

S P Q Collinearity13 eliminateBiconditionalReverse applySyllogism

composeConjunction </jh> Last is. <jh> (((P ≠ Q) ∧ (S ≠ P)) ∧ (collinear S P Q)) (collinear X P S)         ConjunctionLeftElimination

composeConjunction </jh> Applying the forward theorem, with  and   interchanged, finishes the job. <jh> P S Q X CollinearityCollinearityForward applySyllogism )) </jh>

We combine the two previous results to get <jh> thm (CollinearityCollinearity   ((((P ≠ Q) ∧ (S ≠ P)) ∧ (collinear S P Q)) → ((collinear X P Q) ↔ (collinear X P S))) ( P Q S X CollinearityCollinearityForward export

P Q S X CollinearityCollinearityReverse export

introduceBiconditionalFromImplicationsInConsequent )) </jh>

Inner transitivity
Here we prove. As we said before, the mathematical meaning of the theorem is not different from the "outer" collinearity transitivity; it is merely a rearrangement. <jh> thm (CollinearityInnerTransitivity   ((((P ≠ Q) ∧ (collinear P Q A)) ∧ (collinear P Q B)) → (collinear Q A B)) ( </jh> We will be applying collinearity outer transitivity. First we need. <jh> ((P ≠ Q) ∧ (collinear P Q A)) (collinear P Q B)         ConjunctionRightElimination eliminateRightConjunctInConsequent

P Q EqualitySymmetry addNegation eliminateBiconditionalReverse applySyllogism </jh> Next is. <jh> ((P ≠ Q) ∧ (collinear P Q A)) (collinear P Q B)         ConjunctionRightElimination eliminateLeftConjunctInConsequent

P Q A Collinearity12 eliminateBiconditionalReverse applySyllogism

composeConjunction </jh> Last is. <jh> ((P ≠ Q) ∧ (collinear P Q A)) (collinear P Q B)         ConjunctionLeftElimination

P Q B Collinearity12 eliminateBiconditionalReverse applySyllogism

composeConjunction

Q P A B CollinearityOuterTransitivity applySyllogism )) </jh>

The intersection of two lines
If two distinct, non-degenerate lines intersect, they intersect in a single point. At least for this theorem, we consider a line  and line   to be distinct and non-degenerate if. The statement of the whole theorem is.

The proof consists of multiple applications of collinearity transitivity, together with some cases and a proof by contradiction. It starts with  (by collinearity transitivity). <jh> thm (LineIntersection-cpq   (((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧ (collinear A B P)) ∧ (collinear A B Q)) ∧ (collinear C D P)) ∧ (collinear C D Q)) → (collinear C P Q)) ( </jh> : <jh> (((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧           (collinear A B P)) ∧ (collinear A B Q)) ∧            (collinear C D P)) (collinear C D Q)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent </jh> : <jh> (((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧           (collinear A B P)) ∧ (collinear A B Q)) ∧            (collinear C D P)) (collinear C D Q)         ConjunctionRightElimination eliminateLeftConjunctInConsequent

composeConjunction </jh> : <jh> (((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧           (collinear A B P)) ∧ (collinear A B Q)) ∧            (collinear C D P)) (collinear C D Q)         ConjunctionLeftElimination

composeConjunction

C D P Q CollinearityOuterTransitivity applySyllogism )) </jh>

Then note that  (as a consequence of  ), and collinearity transitivity gives us   and. <jh> thm (LineIntersection-ab   (((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧ (collinear A B P)) ∧ (collinear A B Q)) ∧ (collinear C D P)) ∧ (collinear C D Q)) → (A ≠ B)) ( </jh> We pick out, which we will need shortly. <jh> (((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧           (collinear A B P)) ∧ (collinear A B Q)) ∧            (collinear C D P)) (collinear C D Q)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent </jh> The next step is to note  and apply a substitution to turn it into. <jh> A C CollinearityAAB

A EqualityReflexivity C EqualityReflexivity A A A B C C CollinearityBuilder detach2of2 detach1of2

detachImplicationBiconditional </jh> Now we just transpose and combine with. <jh> introduceTransposition applySyllogism ))

thm (LineIntersection-abpq   (((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧ (collinear A B P)) ∧ (collinear A B Q)) ∧ (collinear C D P)) ∧ (collinear C D Q)) → (((A ≠ B) ∧ (collinear A B P)) ∧ (collinear A B Q))) ( </jh> : <jh> A B C D P Q LineIntersection-ab </jh> : <jh> (((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧           (collinear A B P)) ∧ (collinear A B Q)) ∧            (collinear C D P)) (collinear C D Q)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

composeConjunction </jh> : <jh> (((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧           (collinear A B P)) ∧ (collinear A B Q)) ∧            (collinear C D P)) (collinear C D Q)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

composeConjunction ))

thm (LineIntersection-apq   (((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧ (collinear A B P)) ∧ (collinear A B Q)) ∧ (collinear C D P)) ∧ (collinear C D Q)) → (collinear A P Q)) ( A B C D P Q LineIntersection-abpq A B P Q CollinearityOuterTransitivity applySyllogism ))

thm (LineIntersection-bpq   (((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧ (collinear A B P)) ∧ (collinear A B Q)) ∧ (collinear C D P)) ∧ (collinear C D Q)) → (collinear B P Q)) ( A B C D P Q LineIntersection-abpq A B P Q CollinearityInnerTransitivity applySyllogism )) </jh>

We now assume  and will show , which is a contradiction. The first thing we get from  is   (from   and  ). <jh> thm (LineIntersection-pqa   ((((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧    (collinear A B P)) ∧ (collinear A B Q)) ∧    (collinear C D P)) ∧ (collinear C D Q)) ∧ (P ≠ Q)) → (collinear P Q A)) ( ((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧ (collinear A B P)) ∧ (collinear A B Q)) ∧ (collinear C D P)) ∧ (collinear C D Q)) (P ≠ Q)         ConjunctionRightElimination A B C D P Q LineIntersection-apq applySyllogism

A P Q CollinearityRotation eliminateBiconditionalReverse applySyllogism ))

thm (LineIntersection-pqc   ((((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧    (collinear A B P)) ∧ (collinear A B Q)) ∧    (collinear C D P)) ∧ (collinear C D Q)) ∧ (P ≠ Q)) → (collinear P Q C)) ( ((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧ (collinear A B P)) ∧ (collinear A B Q)) ∧ (collinear C D P)) ∧ (collinear C D Q)) (P ≠ Q)         ConjunctionRightElimination A B C D P Q LineIntersection-cpq applySyllogism

C P Q CollinearityRotation eliminateBiconditionalReverse applySyllogism ))

thm (LineIntersection-acq   ((((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧    (collinear A B P)) ∧ (collinear A B Q)) ∧    (collinear C D P)) ∧ (collinear C D Q)) ∧ (P ≠ Q)) → (collinear A C Q)) ( </jh> : <jh> ((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧ (collinear A B P)) ∧ (collinear A B Q)) ∧ (collinear C D P)) ∧ (collinear C D Q)) (P ≠ Q)         ConjunctionLeftElimination </jh> : <jh> A B C D P Q LineIntersection-pqa composeConjunction </jh> : <jh> A B C D P Q LineIntersection-pqc composeConjunction </jh> Transitivity produces, which we then rearrange to. <jh> P Q A C CollinearityInnerTransitivity applySyllogism

Q A C CollinearityRotation eliminateBiconditionalReverse applySyllogism )) </jh>

In a similar way we prove.

<jh> thm (LineIntersection-pqb   ((((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧    (collinear A B P)) ∧ (collinear A B Q)) ∧    (collinear C D P)) ∧ (collinear C D Q)) ∧ (P ≠ Q)) → (collinear P Q B)) ( ((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧ (collinear A B P)) ∧ (collinear A B Q)) ∧ (collinear C D P)) ∧ (collinear C D Q)) (P ≠ Q)         ConjunctionRightElimination A B C D P Q LineIntersection-bpq applySyllogism

B P Q CollinearityRotation eliminateBiconditionalReverse applySyllogism ))

thm (LineIntersection-abq   ((((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧    (collinear A B P)) ∧ (collinear A B Q)) ∧    (collinear C D P)) ∧ (collinear C D Q)) ∧ (P ≠ Q)) → (collinear A B Q)) ( </jh> : <jh> ((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧ (collinear A B P)) ∧ (collinear A B Q)) ∧ (collinear C D P)) ∧ (collinear C D Q)) (P ≠ Q)         ConjunctionLeftElimination </jh> : <jh> A B C D P Q LineIntersection-pqa composeConjunction </jh> : <jh> A B C D P Q LineIntersection-pqb composeConjunction </jh> Transitivity produces, which we then rearrange to. <jh> P Q A B CollinearityInnerTransitivity applySyllogism

Q A B CollinearityRotation eliminateBiconditionalReverse applySyllogism )) </jh>

Now we consider two cases:  and.

For the  case, first apply collinearity transitivity to   and   to get , which turns into our desired contradiction   by substituting   for. <jh> thm (LineIntersection-qa   (((Q = A) ∧    (((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧ (collinear A B P)) ∧ (collinear A B Q)) ∧ (collinear C D P)) ∧ (collinear C D Q)) ∧ (P ≠ Q))) → (collinear A B C)) ( </jh> : <jh> (Q = A)         (((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧          (collinear A B P)) ∧ (collinear A B Q)) ∧          (collinear C D P)) ∧ (collinear C D Q)) ∧ (P ≠ Q)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent </jh> : <jh> (Q = A)         (((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧          (collinear A B P)) ∧ (collinear A B Q)) ∧          (collinear C D P)) ∧ (collinear C D Q)) ∧ (P ≠ Q)) ConjunctionLeftElimination A B C D P Q LineIntersection-pqb applySyllogism

composeConjunction </jh> : <jh> (Q = A)         (((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧          (collinear A B P)) ∧ (collinear A B Q)) ∧          (collinear C D P)) ∧ (collinear C D Q)) ∧ (P ≠ Q)) ConjunctionLeftElimination A B C D P Q LineIntersection-pqc applySyllogism

composeConjunction </jh> Applying transitivity yields, which we then turn into   via a subsitution. <jh> P Q B C CollinearityInnerTransitivity applySyllogism

(Q = A)         (((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧          (collinear A B P)) ∧ (collinear A B Q)) ∧          (collinear C D P)) ∧ (collinear C D Q)) ∧ (P ≠ Q)) ConjunctionRightElimination composeConjunction

B EqualityReflexivity C EqualityReflexivity Q A B B C C CollinearityBuilder detach2of2 detach2of2

eliminateBiconditionalReverseInConsequent applyComm import

applySyllogism )) </jh>

The  case lets us apply transitivity to   and   to get , which is our desired contradiction. <jh> thm (LineIntersection-qnota   (((Q ≠ A) ∧    (((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧ (collinear A B P)) ∧ (collinear A B Q)) ∧ (collinear C D P)) ∧ (collinear C D Q)) ∧ (P ≠ Q))) → (collinear A B C)) ( </jh> : <jh> (Q ≠ A)         (((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧          (collinear A B P)) ∧ (collinear A B Q)) ∧          (collinear C D P)) ∧ (collinear C D Q)) ∧ (P ≠ Q)) ConjunctionRightElimination </jh> : <jh> (Q ≠ A)         (((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧          (collinear A B P)) ∧ (collinear A B Q)) ∧          (collinear C D P)) ∧ (collinear C D Q)) ∧ (P ≠ Q)) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

Q A B CollinearityRotation eliminateBiconditionalForward applySyllogism

composeConjunction </jh> : <jh> (Q ≠ A)         (((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧          (collinear A B P)) ∧ (collinear A B Q)) ∧          (collinear C D P)) ∧ (collinear C D Q)) ∧ (P ≠ Q)) ConjunctionLeftElimination A B C D P Q LineIntersection-acq applySyllogism

Q A C CollinearityRotation eliminateBiconditionalForward applySyllogism

composeConjunction

Q A B C CollinearityInnerTransitivity applySyllogism )) </jh>

Next we combine the cases. <jh> thm (LineIntersection-abc   ((((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧    (collinear A B P)) ∧ (collinear A B Q)) ∧    (collinear C D P)) ∧ (collinear C D Q)) ∧ (P ≠ Q)) → (collinear A B C)) ( Q A B C D P LineIntersection-qa export

Q A B C D P LineIntersection-qnota export

eliminateCases )) </jh>

Here we point out the contradiction. <jh> thm (LineIntersection-contradiction   ((((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧    (collinear A B P)) ∧ (collinear A B Q)) ∧    (collinear C D P)) ∧ (collinear C D Q)) ∧ (P ≠ Q)) → (⊥)) (       A B C D P Q LineIntersection-abc

((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧ (collinear A B P)) ∧ (collinear A B Q)) ∧ (collinear C D P)) ∧ (collinear C D Q)) (P ≠ Q)         ConjunctionRightElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

composeConjunction

(collinear A B C) Contradiction eliminateBiconditionalReverse applySyllogism )) </jh>

Since assuming  produced a contradiction, we can conclude that. <jh> thm (LineIntersection   (((((((¬ (collinear A B C)) ∧ (C ≠ D)) ∧ (collinear A B P)) ∧ (collinear A B Q)) ∧ (collinear C D P)) ∧ (collinear C D Q)) → (P = Q)) ( A B C D P Q LineIntersection-contradiction export

(P ≠ Q) NegationImplication eliminateBiconditionalForward applySyllogism

(P = Q) DoubleNegation eliminateBiconditionalForward applySyllogism )) </jh>

The existence of a point not on a given line
Given a line, there is a point which is not on that line. Formally,.

The proof, not surprisingly, is based on, which gives us three non-collinear points x, y, and z. If any one of them is not on the line (that is,   or likewise for y or z), we are done. But if they are all collinear with  and , we can conclude   by transitivity, which is a contradiction.

We start by restating  in terms of collinearity. <jh> thm (LowerDimensionCollinearity ((a b c))  (∃ a (∃ b (∃ c (¬ (collinear (value a) (value b) (value c)))))) ( a b c LowerDimension

(between (value a) (value b) (value c)) (between (value b) (value c) (value a)) DeMorganPDP eliminateBiconditionalForward (¬ (between (value c) (value a) (value b))) conjoinRR c addThereExists b addThereExists a addThereExists applyModusPonens

((between (value a) (value b) (value c)) ∨           (between (value b) (value c) (value a))) (between (value c) (value a) (value b)) DeMorganPDP eliminateBiconditionalForward c addThereExists b addThereExists a addThereExists applyModusPonens )) </jh>

The next lemma says that if we have a point not collinear with  and , we are done. <jh> thm (PointNotOnLineLemma ((c A) (c B) (c P))  ((¬ (collinear A B P)) → (∃ c (¬ (collinear A B (value c))))) ( A EqualityReflexivity B EqualityReflexivity A A B B (value c) P CollinearityBuilder detach2of3 detach1of2

addNegationInConsequent

makeSubstExplicit eliminateBiconditionalForward

P c (¬ (collinear A B (value c))) ThereExistsIntroductionFromObject applySyllogism )) </jh>

We're ready to start working on getting  by transitivity. There are two cases:  and. The  case is the easier one: we first conclude   and then substitute   for. <jh> thm (PointNotOnLine-ax   (((A = X) ∧ (((collinear A B X) ∧ ((collinear A B Y) ∧ (A ≠ B))) ∧ (collinear A B Z))) → (collinear X Y Z)) ( </jh> : <jh> (A = X)         (((collinear A B X) ∧ ((collinear A B Y) ∧            (A ≠ B))) ∧ (collinear A B Z)) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent </jh> : <jh> (A = X)         (((collinear A B X) ∧ ((collinear A B Y) ∧            (A ≠ B))) ∧ (collinear A B Z)) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent

composeConjunction </jh> : <jh> (A = X)         (((collinear A B X) ∧ ((collinear A B Y) ∧            (A ≠ B))) ∧ (collinear A B Z)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent

composeConjunction </jh> Applying transitivity gives , <jh> A B Y Z CollinearityOuterTransitivity applySyllogism </jh> and applying a substitution turns that into. <jh> (A = X)         (((collinear A B X) ∧ ((collinear A B Y) ∧            (A ≠ B))) ∧ (collinear A B Z)) ConjunctionRightElimination composeConjunction

Y EqualityReflexivity Z EqualityReflexivity A X Y Y Z Z CollinearityBuilder detach2of2 detach2of2

eliminateBiconditionalReverseInConsequent applyComm import applySyllogism )) </jh>

The  case involves first proving   and   (each by transitivity), and applying transitivity again, to get. <jh> thm (PointNotOnLine-anotx   (((A ≠ X) ∧ (((collinear A B X) ∧ ((collinear A B Y) ∧ (A ≠ B))) ∧ (collinear A B Z))) → (collinear X Y Z)) ( </jh> We start with. <jh> (A ≠ X)         (((collinear A B X) ∧ ((collinear A B Y) ∧            (A ≠ B))) ∧ (collinear A B Z)) ConjunctionRightElimination </jh> To prove, we first need  : <jh> (A ≠ X)         (((collinear A B X) ∧ ((collinear A B Y) ∧            (A ≠ B))) ∧ (collinear A B Z)) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent </jh> : <jh> (A ≠ X)         (((collinear A B X) ∧ ((collinear A B Y) ∧            (A ≠ B))) ∧ (collinear A B Z)) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

composeConjunction </jh> : <jh> (A ≠ X)         (((collinear A B X) ∧ ((collinear A B Y) ∧            (A ≠ B))) ∧ (collinear A B Z)) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent eliminateRightConjunctInConsequent

composeConjunction </jh> That's all we need for <jh> A B X Y CollinearityOuterTransitivity applySyllogism composeConjunction </jh> Now we need, and the first antecedent is. <jh> (A ≠ X)         (((collinear A B X) ∧ ((collinear A B Y) ∧            (A ≠ B))) ∧ (collinear A B Z)) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent eliminateLeftConjunctInConsequent </jh> : <jh> (A ≠ X)         (((collinear A B X) ∧ ((collinear A B Y) ∧            (A ≠ B))) ∧ (collinear A B Z)) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

composeConjunction </jh> : <jh> (A ≠ X)         (((collinear A B X) ∧ ((collinear A B Y) ∧            (A ≠ B))) ∧ (collinear A B Z)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent

composeConjunction </jh> Applying transitivity we get <jh> A B X Z CollinearityOuterTransitivity applySyllogism composeConjunction </jh> We are now ready to apply transitivity to,  , and   to get. <jh> A X Y Z CollinearityInnerTransitivity applySyllogism )) </jh>

We now combine the  and   cases and rearrange a bit. <jh> thm (PointNotOnLine-abz   ((((collinear A B X) ∧ ((collinear A B Y) ∧    (A ≠ B))) ∧ (¬ (collinear X Y Z))) → (¬ (collinear A B Z))) ( A X B Y Z PointNotOnLine-ax export

A X B Y Z PointNotOnLine-anotx export

eliminateCases

export

(collinear A B Z) (collinear X Y Z) Transposition eliminateBiconditionalReverse applySyllogism

import )) </jh>

The next lemma gets rid of  (because the case   is taken care of by  ). <jh> thm (PointNotOnLine-eliminate-abx ((c A) (c B) (c X) (c Z))  ((((collinear A B Y) ∧ (A ≠ B)) ∧ (¬ (collinear X Y Z))) → (∃ c (¬ (collinear A B (value c))))) ( </jh> First, the  case: <jh> (collinear A B X)         ((collinear A B Y) ∧ (A ≠ B)) (¬ (collinear X Y Z)) ConjunctionAssociativity eliminateBiconditionalForward

A B X Y Z PointNotOnLine-abz applySyllogism

A B Z c PointNotOnLineLemma applySyllogism

export </jh> Second, the  case: <jh> (¬ (collinear A B X)) (((collinear A B Y) ∧ (A ≠ B)) ∧ (¬ (collinear X Y Z))) ConjunctionRightElimination A B X c PointNotOnLineLemma applySyllogism

export </jh> Now we just need to combine the cases. <jh> eliminateCases )) </jh>

In a very similar manner we get rid of. <jh> thm (PointNotOnLine-eliminate-aby ((c A) (c B) (c X) (c Y) (c Z))  (((A ≠ B) ∧ (¬ (collinear X Y Z))) → (∃ c (¬ (collinear A B (value c))))) ( </jh> First, the  case: <jh> (collinear A B Y)         (A ≠ B)          (¬ (collinear X Y Z)) ConjunctionAssociativity eliminateBiconditionalForward

A B Y X Z c PointNotOnLine-eliminate-abx applySyllogism

export </jh> Second, the  case: <jh> (¬ (collinear A B Y)) ((A ≠ B) ∧ (¬ (collinear X Y Z))) ConjunctionRightElimination A B Y c PointNotOnLineLemma applySyllogism

export </jh> Now we just need to combine the cases. <jh> eliminateCases )) </jh>

At this point we are very close. The only thing remaining in the antecedent that we need to get rid of is. But,  , and   no longer appear anywhere else in the formula. So we can quantify at will, specifically to turn  into , which we can then detach as it is a theorem.

<jh> thm (PointNotOnLine ((c A) (c B) (x y z A) (x y z B) (x y z c))   ((A ≠ B) → (∃ c (¬ (collinear A B (value c))))) ( </jh> First we put the theorem on the proof stack. <jh> x y z LowerDimensionCollinearity </jh> Now we show we can move the quantifiers to the start: <jh> x         (A ≠ B)          (∃ y (∃ z (¬ (collinear (value x) (value y) (value z))))) ThereExistsConjunctionMovement eliminateBiconditionalForward

y         (A ≠ B)          (∃ z (¬ (collinear (value x) (value y) (value z)))) ThereExistsConjunctionMovement eliminateBiconditionalForward x addThereExists applySyllogism

z         (A ≠ B)          (¬ (collinear (value x) (value y) (value z))) ThereExistsConjunctionMovement eliminateBiconditionalForward y addThereExists x addThereExists applySyllogism

</jh> Now we can introduce the previous theorem and then add the quantifiers. <jh> A B (value x) (value y) (value z) c PointNotOnLine-eliminate-aby z addThereExistsToAntecedent y addThereExistsToAntecedent x addThereExistsToAntecedent

applySyllogism </jh> Detaching the theorem finishes the proof. <jh> detach2of2 )) </jh>

Intersecting lines and congruences
Given two intersecting line segments, where the portions of each segment on the sides of the intersection are congruent, the segments drawn from the endpoints of one line segment to the endpoints of the other are congruent. That is,.

We consider  and   cases. The  case is easy:   implies   and substituting into   gives us.

The  case follows from outer five segment, using baselines   and   and points   and.

Starting on the  case, the first step is proving. <jh> thm (IntersectionCongruence-db   (((A = B) ∧ ((((between A B C) ∧ (between D B E)) ∧    (A B ≡ D B)) ∧ (B C ≡ B E))) → (D = B)) ( </jh> To apply, we first need. <jh> (A = B)         ((((between A B C) ∧ (between D B E)) ∧ (A B ≡ D B)) ∧ (B C ≡ B E)) ConjunctionRightElimination </jh> Secondly, we need. <jh> (A = B)         ((((between A B C) ∧ (between D B E)) ∧ (A B ≡ D B)) ∧ (B C ≡ B E)) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

composeConjunction </jh> That lets us conclude. <jh> A B D B CongruenceIdentityFromEquality applySyllogism ))

thm (IntersectionCongruence-ab   (((A = B) ∧ ((((between A B C) ∧ (between D B E)) ∧    (A B ≡ D B)) ∧ (B C ≡ B E))) → (A E ≡ C D)) ( </jh> We'll need  a bit later, so we put it on the proof stack. <jh> (A = B)         ((((between A B C) ∧ (between D B E)) ∧ (A B ≡ D B)) ∧ (B C ≡ B E)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent </jh> The next step is the substitution. The substitution will be, so we start with. <jh> A B C D E IntersectionCongruence-db

(A = B)         ((((between A B C) ∧ (between D B E)) ∧ (A B ≡ D B)) ∧ (B C ≡ B E)) ConjunctionRightElimination

composeConjunction </jh> Here is, as promised. <jh> C EqualityReflexivity E EqualityReflexivity D B C C A B E E CongruenceBuilder detach2of2 detach2of3

applySyllogism </jh> Pulling  off the proof stack and combining, we get. <jh> eliminateBiconditionalForwardInConsequent applyModusPonensInConsequent </jh> Now we just rearrange that congruence to. <jh> D C A E CongruenceSymmetry eliminateBiconditionalReverse applySyllogism

A E D C CongruenceRightCommutativity eliminateBiconditionalReverse applySyllogism )) </jh>

Now we are ready for the  case, in which we apply outer five segment using baselines   and   and points   and. <jh> thm (IntersectionCongruence-anotb   (((A ≠ B) ∧ ((((between A B C) ∧ (between D B E)) ∧    (A B ≡ D B)) ∧ (B C ≡ B E))) → (A E ≡ C D)) ( </jh> First we need. <jh> (A ≠ B)         ((((between A B C) ∧ (between D B E)) ∧ (A B ≡ D B)) ∧ (B C ≡ B E)) ConjunctionRightElimination </jh> We need two betweenness relationships, the first of which is. <jh> (A ≠ B)         ((((between A B C) ∧ (between D B E)) ∧ (A B ≡ D B)) ∧ (B C ≡ B E)) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent

composeConjunction </jh> The other is. <jh> (A ≠ B)         ((((between A B C) ∧ (between D B E)) ∧ (A B ≡ D B)) ∧ (B C ≡ B E)) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

composeConjunction </jh> There are two congruences for the baseline, , <jh> (A ≠ B)         ((((between A B C) ∧ (between D B E)) ∧ (A B ≡ D B)) ∧ (B C ≡ B E)) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

composeConjunction </jh> and. <jh> (A ≠ B)         ((((between A B C) ∧ (between D B E)) ∧ (A B ≡ D B)) ∧ (B C ≡ B E)) ConjunctionLeftElimination eliminateLeftConjunctInConsequent

composeConjunction </jh> The off-baseline congruences are , <jh> A D CongruenceABBA introduceRightConjunctToConsequent </jh> and. <jh> (A ≠ B)         ((((between A B C) ∧ (between D B E)) ∧ (A B ≡ D B)) ∧ (B C ≡ B E)) ConjunctionLeftElimination eliminateRightConjunctInConsequent eliminateLeftConjunctInConsequent

A B D B CongruenceSymmetry eliminateBiconditionalReverse applySyllogism

D B A B CongruenceCommutativity eliminateBiconditionalReverse applySyllogism

composeConjunction </jh> Applying five segment gives us, which we then rearrange to. <jh> A B C D B E D A OuterFiveSegment applySyllogism

C D E A CongruenceSymmetry eliminateBiconditionalReverse applySyllogism

E A C D CongruenceLeftCommutativity eliminateBiconditionalReverse applySyllogism ))

thm (IntersectionCongruence   (((((between A B C) ∧ (between D B E)) ∧ (A B ≡ D B)) ∧ (B C ≡ B E)) → (A E ≡ C D)) ( A B C D E IntersectionCongruence-ab export

A B C D E IntersectionCongruence-anotb export

eliminateCases )) </jh>

Export
We now export to Interface:Out lines. <jh> export (RESULTS Interface:Out_lines (CLASSICAL FIRSTORDER) ) </jh>