Dot Product and Cross Product on Projective Spaces #
This file defines the dot product and cross product on projective spaces.
Definitions #
Projectivization.orthogonal v wis defined as vanishing of the dot product.Projectivization.cross v wforv w : ℙ F (Fin 3 → F)is defined as the cross product ofvandwprovided thatv ≠ w. Ifv = w, then the cross product would be zero, so we instead definecross v v = v.
def Projectivization.orthogonal {F : Type u_1} [Field F] {m : Type u_2} [Fintype m] :
Projectivization F (m → F) → Projectivization F (m → F) → Prop
Orthogonality on the projective plane.
Equations
- Projectivization.orthogonal = Quotient.lift₂ (fun (v w : { v : m → F // v ≠ 0 }) => ↑v ⬝ᵥ ↑w = 0) ⋯
Instances For
theorem Projectivization.orthogonal_comm {F : Type u_1} [Field F] {m : Type u_2} [Fintype m] {v w : Projectivization F (m → F)} :
theorem Projectivization.exists_not_self_orthogonal {F : Type u_1} [Field F] {m : Type u_2} [Fintype m] (v : Projectivization F (m → F)) :
∃ (w : Projectivization F (m → F)), ¬v.orthogonal w
theorem Projectivization.exists_not_orthogonal_self {F : Type u_1} [Field F] {m : Type u_2} [Fintype m] (v : Projectivization F (m → F)) :
∃ (w : Projectivization F (m → F)), ¬w.orthogonal v
def Projectivization.cross {F : Type u_1} [Field F] [DecidableEq F] :
Projectivization F (Fin 3 → F) → Projectivization F (Fin 3 → F) → Projectivization F (Fin 3 → F)
Cross product on the projective plane.
Equations
- Projectivization.cross = Quotient.map₂ (fun (v w : { v : Fin 3 → F // v ≠ 0 }) => if h : (crossProduct ↑v) ↑w = 0 then v else ⟨(crossProduct ↑v) ↑w, h⟩) ⋯
Instances For
theorem Projectivization.cross_mk {F : Type u_1} [Field F] [DecidableEq F] {v w : Fin 3 → F} (hv : v ≠ 0) (hw : w ≠ 0) :
(mk F v hv).cross (mk F w hw) = if h : (crossProduct v) w = 0 then mk F v hv else mk F ((crossProduct v) w) h
theorem Projectivization.cross_mk_of_cross_eq_zero {F : Type u_1} [Field F] [DecidableEq F] {v w : Fin 3 → F} (hv : v ≠ 0) (hw : w ≠ 0) (h : (crossProduct v) w = 0) :
theorem Projectivization.cross_mk_of_cross_ne_zero {F : Type u_1} [Field F] [DecidableEq F] {v w : Fin 3 → F} (hv : v ≠ 0) (hw : w ≠ 0) (h : (crossProduct v) w ≠ 0) :
theorem Projectivization.cross_self {F : Type u_1} [Field F] [DecidableEq F] (v : Projectivization F (Fin 3 → F)) :
theorem Projectivization.cross_comm {F : Type u_1} [Field F] [DecidableEq F] (v w : Projectivization F (Fin 3 → F)) :
theorem Projectivization.cross_orthogonal_left {F : Type u_1} [Field F] [DecidableEq F] {v w : Projectivization F (Fin 3 → F)} (h : v ≠ w) :
(v.cross w).orthogonal v
theorem Projectivization.cross_orthogonal_right {F : Type u_1} [Field F] [DecidableEq F] {v w : Projectivization F (Fin 3 → F)} (h : v ≠ w) :
(v.cross w).orthogonal w
theorem Projectivization.orthogonal_cross_left {F : Type u_1} [Field F] [DecidableEq F] {v w : Projectivization F (Fin 3 → F)} (h : v ≠ w) :
v.orthogonal (v.cross w)
theorem Projectivization.orthogonal_cross_right {F : Type u_1} [Field F] [DecidableEq F] {v w : Projectivization F (Fin 3 → F)} (h : v ≠ w) :
w.orthogonal (v.cross w)