Documentation

Mathlib.Geometry.Euclidean.Altitude

Altitudes of a simplex #

This file defines the altitudes of a simplex and their feet.

Main definitions #

References #

noncomputable def Affine.Simplex.altitude {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {n : } (s : Simplex P n) (i : Fin (n + 1)) :

An altitude of a simplex is the line that passes through a vertex and is orthogonal to the opposite face.

Equations
Instances For

    The definition of an altitude.

    @[simp]
    theorem Affine.Simplex.altitude_reindex {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {m n : } (s : Simplex P n) (e : Fin (n + 1) Fin (m + 1)) :
    theorem Affine.Simplex.mem_altitude {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {n : } (s : Simplex P n) (i : Fin (n + 1)) :

    A vertex lies in the corresponding altitude.

    The direction of an altitude.

    The vector span of the opposite face lies in the direction orthogonal to an altitude.

    theorem Affine.Simplex.altitude_map {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {V₂ : Type u_3} {P₂ : Type u_4} [NormedAddCommGroup V₂] [InnerProductSpace V₂] [MetricSpace P₂] [NormedAddTorsor V₂ P₂] {n : } (s : Simplex P n) (f : P →ᵃⁱ[] P₂) (i : Fin (n + 1)) :

    An altitude is finite-dimensional.

    @[simp]

    An altitude is one-dimensional (i.e., a line).

    A line through a vertex is the altitude through that vertex if and only if it is orthogonal to the opposite face.

    noncomputable def Affine.Simplex.altitudeFoot {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {n : } [NeZero n] (s : Simplex P n) (i : Fin (n + 1)) :
    P

    The foot of an altitude is the orthogonal projection of a vertex of a simplex onto the opposite face.

    Equations
    Instances For
      @[simp]
      theorem Affine.Simplex.altitudeFoot_reindex {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {m n : } [NeZero m] [NeZero n] (s : Simplex P n) (e : Fin (n + 1) Fin (m + 1)) :
      @[simp]
      theorem Affine.Simplex.altitudeFoot_map {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {V₂ : Type u_3} {P₂ : Type u_4} [NormedAddCommGroup V₂] [InnerProductSpace V₂] [MetricSpace P₂] [NormedAddTorsor V₂ P₂] {n : } [NeZero n] (s : Simplex P n) (f : P →ᵃⁱ[] P₂) (i : Fin (n + 1)) :
      @[simp]
      theorem Affine.Simplex.altitudeFoot_restrict {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {n : } [NeZero n] (s : Simplex P n) (S : AffineSubspace P) (hS : affineSpan (Set.range s.points) S) (i : Fin (n + 1)) :
      ((s.restrict S hS).altitudeFoot i) = s.altitudeFoot i
      @[simp]
      theorem Affine.Simplex.ne_altitudeFoot {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {n : } [NeZero n] (s : Simplex P n) (i : Fin (n + 1)) :

      Through a point on the altitude of a simplex, draw the perpendicular plane and restrict it to the affine span of the simplex. This is the same as shifting the base towards the vertex.

      Through a point on the altitude of a simplex, draw the perpendicular plane and find the cross section with the closed interior. This is the same as the cross section between the shifted base and the closed interior.

      noncomputable def Affine.Simplex.height {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {n : } [NeZero n] (s : Simplex P n) (i : Fin (n + 1)) :

      The height of a vertex of a simplex is the distance between it and the foot of the altitude from that vertex.

      Equations
      Instances For
        @[simp]
        theorem Affine.Simplex.height_reindex {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {m n : } [NeZero m] [NeZero n] (s : Simplex P n) (e : Fin (n + 1) Fin (m + 1)) :
        (s.reindex e).height = s.height e.symm
        @[simp]
        theorem Affine.Simplex.height_map {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {V₂ : Type u_3} {P₂ : Type u_4} [NormedAddCommGroup V₂] [InnerProductSpace V₂] [MetricSpace P₂] [NormedAddTorsor V₂ P₂] {n : } [NeZero n] (s : Simplex P n) (f : P →ᵃⁱ[] P₂) (i : Fin (n + 1)) :
        (s.map f.toAffineMap ).height i = s.height i
        @[simp]
        theorem Affine.Simplex.height_restrict {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {n : } [NeZero n] (s : Simplex P n) (S : AffineSubspace P) (hS : affineSpan (Set.range s.points) S) (i : Fin (n + 1)) :
        (s.restrict S hS).height i = s.height i
        @[simp]
        theorem Affine.Simplex.height_pos {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {n : } [NeZero n] (s : Simplex P n) (i : Fin (n + 1)) :
        0 < s.height i

        Extension for the positivity tactic: the height of a simplex is always positive.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem Affine.Simplex.height_eq_dist {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] (s : Simplex P 1) (i : Fin 2) :
          s.height i = dist (s.points 0) (s.points 1)

          The height of a 1-dimensional simplex equals to the distance between the two vertices.

          theorem Affine.Simplex.inner_vsub_altitudeFoot_vsub_altitudeFoot_eq_zero {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {n : } (s : Simplex P n) {i j : Fin (n + 1)} (h : i j) :
          have this := ; inner (s.points j -ᵥ s.altitudeFoot i) (s.points i -ᵥ s.altitudeFoot i) = 0

          Altitudes are perpendicular to the faces containing their foot.

          theorem Affine.Simplex.inner_vsub_vsub_altitudeFoot_eq_height_sq {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {n : } (s : Simplex P n) [NeZero n] {i j : Fin (n + 1)} (h : i j) :
          inner (s.points i -ᵥ s.points j) (s.points i -ᵥ s.altitudeFoot i) = s.height i ^ 2

          The inner product of an edge from j to i and the vector from the foot of i to i is the square of the height.

          theorem Affine.Simplex.abs_inner_vsub_altitudeFoot_lt_mul {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {n : } (s : Simplex P n) [n.AtLeastTwo] {i j : Fin (n + 1)} (hij : i j) :

          The inner product of two distinct altitudes has absolute value strictly less than the product of their lengths.

          Equivalently, neither vector is a multiple of the other; the angle between them is not 0 or π.

          The inner product of two altitudes has value strictly greater than the negated product of their lengths.