Documentation

Mathlib.LinearAlgebra.AffineSpace.Midpoint

Midpoint of a segment #

Main definitions #

Main theorems #

We do not mark most lemmas as @[simp] because it is hard to tell which side is simpler.

Tags #

midpoint, AddMonoidHom

def midpoint (R : Type u_1) {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (x y : P) :
P

midpoint x y is the midpoint of the segment [x, y].

Equations
    Instances For
      @[simp]
      theorem AffineMap.map_midpoint {R : Type u_1} {V : Type u_2} {V' : Type u_3} {P : Type u_4} {P' : Type u_5} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] [AddCommGroup V'] [Module R V'] [AddTorsor V' P'] (f : P โ†’แตƒ[R] P') (a b : P) :
      f (midpoint R a b) = midpoint R (f a) (f b)
      @[simp]
      theorem AffineEquiv.map_midpoint {R : Type u_1} {V : Type u_2} {V' : Type u_3} {P : Type u_4} {P' : Type u_5} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] [AddCommGroup V'] [Module R V'] [AddTorsor V' P'] (f : P โ‰ƒแตƒ[R] P') (a b : P) :
      f (midpoint R a b) = midpoint R (f a) (f b)
      theorem AffineEquiv.pointReflection_midpoint_left {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (x y : P) :
      (pointReflection R (midpoint R x y)) x = y
      @[simp]
      theorem Equiv.pointReflection_midpoint_left {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (x y : P) :
      (pointReflection (midpoint R x y)) x = y
      theorem midpoint_comm {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (x y : P) :
      midpoint R x y = midpoint R y x
      theorem AffineEquiv.pointReflection_midpoint_right {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (x y : P) :
      (pointReflection R (midpoint R x y)) y = x
      @[simp]
      theorem Equiv.pointReflection_midpoint_right {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (x y : P) :
      (pointReflection (midpoint R x y)) y = x
      theorem midpoint_vsub_midpoint {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (pโ‚ pโ‚‚ pโ‚ƒ pโ‚„ : P) :
      midpoint R pโ‚ pโ‚‚ -แตฅ midpoint R pโ‚ƒ pโ‚„ = midpoint R (pโ‚ -แตฅ pโ‚ƒ) (pโ‚‚ -แตฅ pโ‚„)
      theorem midpoint_vadd_midpoint {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (v v' : V) (p p' : P) :
      theorem midpoint_eq_iff {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] {x y z : P} :
      @[simp]
      theorem midpoint_pointReflection_left {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (x y : P) :
      @[simp]
      theorem midpoint_pointReflection_right {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (x y : P) :
      theorem AffineEquiv.midpoint_pointReflection_left {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (x y : P) :
      midpoint R ((pointReflection R x) y) y = x
      theorem AffineEquiv.midpoint_pointReflection_right {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (x y : P) :
      midpoint R y ((pointReflection R x) y) = x
      @[simp]
      theorem midpoint_vsub_left {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (pโ‚ pโ‚‚ : P) :
      midpoint R pโ‚ pโ‚‚ -แตฅ pโ‚ = โ…Ÿ2 โ€ข (pโ‚‚ -แตฅ pโ‚)
      @[simp]
      theorem midpoint_vsub_right {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (pโ‚ pโ‚‚ : P) :
      midpoint R pโ‚ pโ‚‚ -แตฅ pโ‚‚ = โ…Ÿ2 โ€ข (pโ‚ -แตฅ pโ‚‚)
      @[simp]
      theorem left_vsub_midpoint {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (pโ‚ pโ‚‚ : P) :
      pโ‚ -แตฅ midpoint R pโ‚ pโ‚‚ = โ…Ÿ2 โ€ข (pโ‚ -แตฅ pโ‚‚)
      @[simp]
      theorem right_vsub_midpoint {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (pโ‚ pโ‚‚ : P) :
      pโ‚‚ -แตฅ midpoint R pโ‚ pโ‚‚ = โ…Ÿ2 โ€ข (pโ‚‚ -แตฅ pโ‚)
      theorem midpoint_vsub {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (pโ‚ pโ‚‚ p : P) :
      midpoint R pโ‚ pโ‚‚ -แตฅ p = โ…Ÿ2 โ€ข (pโ‚ -แตฅ p) + โ…Ÿ2 โ€ข (pโ‚‚ -แตฅ p)
      theorem vsub_midpoint {R : Type u_1} {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (pโ‚ pโ‚‚ p : P) :
      p -แตฅ midpoint R pโ‚ pโ‚‚ = โ…Ÿ2 โ€ข (p -แตฅ pโ‚) + โ…Ÿ2 โ€ข (p -แตฅ pโ‚‚)
      @[simp]
      theorem midpoint_sub_left {R : Type u_1} {V : Type u_2} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] (vโ‚ vโ‚‚ : V) :
      midpoint R vโ‚ vโ‚‚ - vโ‚ = โ…Ÿ2 โ€ข (vโ‚‚ - vโ‚)
      @[simp]
      theorem midpoint_sub_right {R : Type u_1} {V : Type u_2} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] (vโ‚ vโ‚‚ : V) :
      midpoint R vโ‚ vโ‚‚ - vโ‚‚ = โ…Ÿ2 โ€ข (vโ‚ - vโ‚‚)
      @[simp]
      theorem left_sub_midpoint {R : Type u_1} {V : Type u_2} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] (vโ‚ vโ‚‚ : V) :
      vโ‚ - midpoint R vโ‚ vโ‚‚ = โ…Ÿ2 โ€ข (vโ‚ - vโ‚‚)
      @[simp]
      theorem right_sub_midpoint {R : Type u_1} {V : Type u_2} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] (vโ‚ vโ‚‚ : V) :
      vโ‚‚ - midpoint R vโ‚ vโ‚‚ = โ…Ÿ2 โ€ข (vโ‚‚ - vโ‚)
      @[simp]
      theorem midpoint_eq_left_iff (R : Type u_1) {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] {x y : P} :
      midpoint R x y = x โ†” x = y
      @[simp]
      theorem left_eq_midpoint_iff (R : Type u_1) {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] {x y : P} :
      x = midpoint R x y โ†” x = y
      @[simp]
      theorem midpoint_eq_right_iff (R : Type u_1) {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] {x y : P} :
      midpoint R x y = y โ†” x = y
      @[simp]
      theorem right_eq_midpoint_iff (R : Type u_1) {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] {x y : P} :
      y = midpoint R x y โ†” x = y
      theorem midpoint_eq_midpoint_iff_vsub_eq_vsub (R : Type u_1) {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] {x x' y y' : P} :
      midpoint R x y = midpoint R x' y' โ†” x -แตฅ x' = y' -แตฅ y
      theorem midpoint_eq_iff' (R : Type u_1) {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] {x y z : P} :
      theorem midpoint_unique (R : Type u_1) {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (R' : Type u_6) [Ring R'] [Invertible 2] [Module R' V] (x y : P) :
      midpoint R x y = midpoint R' x y

      midpoint does not depend on the ring R.

      @[simp]
      theorem midpoint_self (R : Type u_1) {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (x : P) :
      midpoint R x x = x
      @[simp]
      theorem midpoint_add_self (R : Type u_1) {V : Type u_2} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] (x y : V) :
      midpoint R x y + midpoint R x y = x + y
      theorem midpoint_zero_add (R : Type u_1) {V : Type u_2} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] (x y : V) :
      midpoint R 0 (x + y) = midpoint R x y
      theorem midpoint_eq_smul_add (R : Type u_1) {V : Type u_2} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] (x y : V) :
      midpoint R x y = โ…Ÿ2 โ€ข (x + y)
      @[simp]
      theorem midpoint_self_neg (R : Type u_1) {V : Type u_2} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] (x : V) :
      midpoint R x (-x) = 0
      @[simp]
      theorem midpoint_neg_self (R : Type u_1) {V : Type u_2} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] (x : V) :
      midpoint R (-x) x = 0
      @[simp]
      theorem midpoint_sub_add (R : Type u_1) {V : Type u_2} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] (x y : V) :
      midpoint R (x - y) (x + y) = x
      @[simp]
      theorem midpoint_add_sub (R : Type u_1) {V : Type u_2} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] (x y : V) :
      midpoint R (x + y) (x - y) = x
      theorem midpoint_vsub_midpoint_same_left (R : Type u_1) {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (pโ‚ pโ‚‚ pโ‚ƒ : P) :
      midpoint R pโ‚ pโ‚‚ -แตฅ midpoint R pโ‚ pโ‚ƒ = โ…Ÿ2 โ€ข (pโ‚‚ -แตฅ pโ‚ƒ)
      theorem midpoint_vsub_midpoint_same_right (R : Type u_1) {V : Type u_2} {P : Type u_4} [Ring R] [Invertible 2] [AddCommGroup V] [Module R V] [AddTorsor V P] (pโ‚ pโ‚‚ pโ‚ƒ : P) :
      midpoint R pโ‚ pโ‚ƒ -แตฅ midpoint R pโ‚‚ pโ‚ƒ = โ…Ÿ2 โ€ข (pโ‚ -แตฅ pโ‚‚)
      def AddMonoidHom.ofMapMidpoint (R : Type u_1) (R' : Type u_2) {E : Type u_3} {F : Type u_4} [Ring R] [Invertible 2] [AddCommGroup E] [Module R E] [Ring R'] [Invertible 2] [AddCommGroup F] [Module R' F] (f : E โ†’ F) (h0 : f 0 = 0) (hm : โˆ€ (x y : E), f (midpoint R x y) = midpoint R' (f x) (f y)) :

      A map f : E โ†’ F sending zero to zero and midpoints to midpoints is an AddMonoidHom.

      Equations
        Instances For
          @[simp]
          theorem AddMonoidHom.coe_ofMapMidpoint (R : Type u_1) (R' : Type u_2) {E : Type u_3} {F : Type u_4} [Ring R] [Invertible 2] [AddCommGroup E] [Module R E] [Ring R'] [Invertible 2] [AddCommGroup F] [Module R' F] (f : E โ†’ F) (h0 : f 0 = 0) (hm : โˆ€ (x y : E), f (midpoint R x y) = midpoint R' (f x) (f y)) :
          โ‡‘(ofMapMidpoint R R' f h0 hm) = f