Orthogonality 3

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 is one of several involving perpendicular lines. We start with some theorems about the  (is perpendicular) predicate.

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

var (point A B C D E F M P Q R S U V X Y Z) var (point U0 V0 X0) var (point A′ B′ C′ D′ E′ M′ P′ Q′ R′ S′ X′ Y′) var (point C″) var (variable a a′ b b′ c c′ c″ d d′ e e′ f p p′ q r r′ u u′ v v′ w x x′ y y′ z) var (variable x0 u0 v0) 

Perpendicular lines
Saying that lines are perpendicular at a point is the main step towards saying those lines are perpendicular. The connection is pretty simple:  is defined as.  def ((⟂ A B C D) (∃ x (A B C D ⟂at (value x)))) 

Theorem form of the definition
As usual, we need a theorem corresponding to the definition.  thm (Perpendicular ((x′ x A) (x′ x B) (x′ x C) (x′ x D))  ((⟂ A B C D) ↔ (∃ x (A B C D ⟂at (value x)))) ( A EqualityReflexivity B EqualityReflexivity C EqualityReflexivity D EqualityReflexivity A A B B C C D D (value x′) (value x) PerpendicularAtBuilder detach2of3 detach2of3 detach2of3 detach1of2

ChangeVariableThereExists )) 

No line is perpendicular to itself
Here we show. The interesting part of the proof was already done as.  thm (PerpendicularIrreflexivity  (¬ (A B ⟂ A B)) ( A B (value x) PerpendicularIrreflexivityAt x generalize

x (A B A B ⟂at (value x)) NotThereExists eliminateBiconditionalForward applyModusPonens )) 

Being perpendicular at any point implies being perpendicular
That is,.  thm (PerpendicularAtPerpendicular ( (x A) (x B) (x C) (x D) (x X))  ((A B C D ⟂at X) → (A B ⟂ C D)) ( A EqualityReflexivity B EqualityReflexivity C EqualityReflexivity D EqualityReflexivity A A B B C C D D (value x) X PerpendicularAtBuilder detach2of3 detach2of3 detach2of3 detach1of2

makeSubstExplicit

eliminateBiconditionalForward

X x (A B C D ⟂at (value x)) ThereExistsIntroductionFromObject applySyllogism )) 

Uniqueness of intersection point
If two lines are perpendicular at a point, they intersect only at that point. In symbols,.

To prove this we first show  which follows directly from the   part of.  thm (PerpendicularAtUniqueIntersection-Y-X-Y ( (p q A) (p q B) (p q C) (p q D) (p q X) (p q Y))  ((((A B C D ⟂at X) ∧ (collinear Y A B)) ∧ (collinear Y C D)) → (is-right-angle Y X Y)) (  Towards the end of the proof, we'll need. So we stick this on the proof stack.  ((A B C D ⟂at X) ∧ (collinear Y A B)) (collinear Y C D) ConjunctionRightElimination eliminateLeftConjunctInConsequent

((A B C D ⟂at X) ∧ (collinear Y A B)) (collinear Y C D) ConjunctionLeftElimination

composeConjunction  Leaving that aside, we now expand  and pick out the part we care about.  ((A B C D ⟂at X) ∧ (collinear Y A B)) (collinear Y C D) ConjunctionRightElimination eliminateRightConjunctInConsequent

A B C D X p q PerpendicularAt eliminateBiconditionalReverse applySyllogism

eliminateLeftConjunctInConsequent

Y specializeToObjectInConsequent  The consequent is now, so we next perform the substitution.  B EqualityReflexivity A EqualityReflexivity (value p) Y A A B B CollinearityBuilder detach2of3 detach2of2

(collinear (value q) C D) buildConjunctionRRInConsequent

(value q) EqualityReflexivity X EqualityReflexivity (value p) Y X X (value q) (value q) RightAngleBuilder detach2of3 detach2of2

buildImplicationInConsequent

q buildForAllInConsequent

makeSubstExplicit eliminateBiconditionalReverse applySyllogism

Y specializeToObjectInConsequent </jh> The consequent is, so again we perform the substitution.  D EqualityReflexivity C EqualityReflexivity (value q) Y C C D D CollinearityBuilder detach2of3 detach2of2

(collinear Y A B) buildConjunctionLLInConsequent

Y EqualityReflexivity X EqualityReflexivity Y Y X X (value q) Y RightAngleBuilder detach2of3 detach1of2

buildImplicationInConsequent

makeSubstExplicit eliminateBiconditionalReverse applySyllogism </jh> Now we have  and we want something which is similar, but which only mentions each collinearity antecedent once.  applyModusPonensInConsequent )) </jh>

From, it is a short step to.  thm (PerpendicularAtUniqueIntersection   ((((A B C D ⟂at X) ∧ (collinear Y A B)) ∧ (collinear Y C D)) → (X = Y)) ( A B C D X Y PerpendicularAtUniqueIntersection-Y-X-Y

Y X RightAngleLegItself applySyllogism

swapEqualityInConsequent )) </jh>

Perpendicular lines which intersect are perpendicular at that point
If two lines are perpendicular and they intersect at a point, they are perpendicular at that point. In symbols,.

The proof is a straightforward application of  on the proof stack for later.  ((A B C D ⟂at Y) ∧ (collinear X A B)) (collinear X C D)         ConjunctionRightElimination eliminateRightConjunctInConsequent </jh> We start with.  A B C D Y X PerpendicularAtUniqueIntersection </jh> Then  by a substitution.  A EqualityReflexivity B EqualityReflexivity C EqualityReflexivity D EqualityReflexivity A A B B C C D D Y X PerpendicularAtBuilder detach2of3 detach2of3 detach2of3 detach1of2 eliminateBiconditionalReverseInConsequent

applySyllogism </jh> That's all we need.  applyModusPonensInConsequent ))

thm (PerpendicularIntersectionPerpendicularAt ((y A) (y B) (y C) (y D) (y X))   ((((A B ⟂ C D) ∧ (collinear X A B)) ∧ (collinear X C D)) → (A B C D ⟂at X)) ( </jh> We first expand  to   A B C D y Perpendicular eliminateBiconditionalReverse (collinear X A B) conjoinRR moveRightConjunctIntoThereExistsInConsequent (collinear X C D) conjoinRR moveRightConjunctIntoThereExistsInConsequent </jh> Our lemma then gives us  A B C D (value y) X PerpendicularIntersectionPerpendicularAt-1 y addThereExists applySyllogism

removeThereExistsInConsequent )) </jh>

Perpendicular lines which intersect at one point are perpendicular at that point
Here is another theorem which relates being perpendicular to being perpendicular at a point:.

The proof only relies on, the definition of  , and logic. Basically, we expand  to , use the other hypothesis to conclude  , and then substitute to turn   into.

 thm (PerpendicularUniqueIntersectionPerpendicularAt-collinear ( (z w A) (z w B) (z w C) (z w D) (z w X0))   ((A B C D ⟂at X0) → ((collinear X0 A B) ∧ (collinear X0 C D))) ( A B C D X0 z w PerpendicularAt eliminateBiconditionalReverse

eliminateRightConjunctInConsequent associateConjunctionRightInConsequent eliminateLeftConjunctInConsequent ))

thm (PerpendicularUniqueIntersectionPerpendicularAt-subst ((y A) (y B) (y C) (y D) (y X) (y X0))   ((∀ y (((collinear (value y) A B) ∧ (collinear (value y) C D)) → (X = (value y)))) → (((collinear X0 A B) ∧ (collinear X0 C D)) → (X = X0))) ( y         (((collinear (value y) A B) ∧ (collinear (value y) C D)) → (X = (value y))) X0         SpecializationToObject

B EqualityReflexivity A EqualityReflexivity (value y) X0 A A B B CollinearityBuilder detach2of3 detach2of2

D EqualityReflexivity C EqualityReflexivity (value y) X0 C C D D CollinearityBuilder detach2of3 detach2of2

buildConjunctionInConsequent

(value y) X0 X EqualityBuilderLL buildImplicationInConsequent

makeSubstExplicit eliminateBiconditionalReverse applySyllogism ))

thm (PerpendicularUniqueIntersectionPerpendicularAt-x-x0 ((y A) (y B) (y C) (y D) (y X) (y X0))   (((A B C D ⟂at X0) ∧ (∀ y (((collinear (value y) A B) ∧ (collinear (value y) C D)) → (X = (value y))))) → (X = X0)) ( (A B C D ⟂at X0) (∀ y (((collinear (value y) A B) ∧ (collinear (value y) C D)) → (X = (value y)))) ConjunctionRightElimination

A B C D X0 PerpendicularUniqueIntersectionPerpendicularAt-collinear applySyllogism

(A B C D ⟂at X0) (∀ y (((collinear (value y) A B) ∧ (collinear (value y) C D)) → (X = (value y)))) ConjunctionLeftElimination

y A B C D X X0 PerpendicularUniqueIntersectionPerpendicularAt-subst applySyllogism

applyModusPonensInConsequent ))

thm (PerpendicularUniqueIntersectionPerpendicularAt-x ((y A) (y B) (y C) (y D) (y X) (y X0))   (((A B C D ⟂at X0) ∧ (∀ y (((collinear (value y) A B) ∧ (collinear (value y) C D)) → (X = (value y))))) → (A B C D ⟂at X)) ( (A B C D ⟂at X0) (∀ y (((collinear (value y) A B) ∧ (collinear (value y) C D)) → (X = (value y)))) ConjunctionRightElimination

A B C D X0 y X PerpendicularUniqueIntersectionPerpendicularAt-x-x0

A EqualityReflexivity B EqualityReflexivity C EqualityReflexivity D EqualityReflexivity A A B B C C D D X X0 PerpendicularAtBuilder detach2of3 detach2of3 detach2of3 detach1of2

eliminateBiconditionalForwardInConsequent applySyllogism

applyModusPonensInConsequent ))

thm (PerpendicularUniqueIntersectionPerpendicularAt ((y A) (y B) (y C) (y D) (y X)   (x0 A) (x0 B) (x0 C) (x0 D) (x0 y) (x0 X))   (((A B ⟂ C D) ∧ (∀ y (((collinear (value y) A B) ∧ (collinear (value y) C D)) → (X = (value y))))) → (A B C D ⟂at X)) ( A B C D x0 Perpendicular eliminateBiconditionalReverse

(∀ y (((collinear (value y) A B) ∧ (collinear (value y) C D)) → (X = (value y)))) conjoinRR moveRightConjunctIntoThereExistsInConsequent

A B C D (value x0) y X         PerpendicularUniqueIntersectionPerpendicularAt-x x0 addThereExists applySyllogism

removeThereExistsInConsequent )) </jh>