# mathlib3documentation

analysis.inner_product_space.orientation

# Orientations of real inner product spaces. #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

This file provides definitions and proves lemmas about orientations of real inner product spaces.

## Main definitions #

• orthonormal_basis.adjust_to_orientation takes an orthonormal basis and an orientation, and returns an orthonormal basis with that orientation: either the original orthonormal basis, or one constructed by negating a single (arbitrary) basis vector.
• orientation.fin_orthonormal_basis is an orthonormal basis, indexed by fin n, with the given orientation.
• orientation.volume_form is a nonvanishing top-dimensional alternating form on an oriented real inner product space, uniquely defined by compatibility with the orientation and inner product structure.

## Main theorems #

• orientation.volume_form_apply_le states that the result of applying the volume form to a set of n vectors, where n is the dimension the inner product space, is bounded by the product of the lengths of the vectors.
• orientation.abs_volume_form_apply_of_pairwise_orthogonal states that the result of applying the volume form to a set of n orthogonal vectors, where n is the dimension the inner product space, is equal up to sign to the product of the lengths of the vectors.

The change-of-basis matrix between two orthonormal bases with the same orientation has determinant 1.

The change-of-basis matrix between two orthonormal bases with the opposite orientations has determinant -1.

theorem orthonormal_basis.same_orientation_iff_det_eq_det {E : Type u_1} {ι : Type u_2} [fintype ι] [decidable_eq ι] {e f : E} :

Two orthonormal bases with the same orientation determine the same "determinant" top-dimensional form on E, and conversely.

Two orthonormal bases with opposite orientations determine opposite "determinant" top-dimensional forms on E.

theorem orthonormal_basis.orthonormal_adjust_to_orientation {E : Type u_1} {ι : Type u_2} [fintype ι] [decidable_eq ι] [ne : nonempty ι] (e : E) (x : ι) :

orthonormal_basis.adjust_to_orientation, applied to an orthonormal basis, preserves the property of orthonormality.

noncomputable def orthonormal_basis.adjust_to_orientation {E : Type u_1} {ι : Type u_2} [fintype ι] [decidable_eq ι] [ne : nonempty ι] (e : E) (x : ι) :

Given an orthonormal basis and an orientation, return an orthonormal basis giving that orientation: either the original basis, or one constructed by negating a single (arbitrary) basis vector.

Equations
theorem orthonormal_basis.to_basis_adjust_to_orientation {E : Type u_1} {ι : Type u_2} [fintype ι] [decidable_eq ι] [ne : nonempty ι] (e : E) (x : ι) :
@[simp]
theorem orthonormal_basis.orientation_adjust_to_orientation {E : Type u_1} {ι : Type u_2} [fintype ι] [decidable_eq ι] [ne : nonempty ι] (e : E) (x : ι) :

adjust_to_orientation gives an orthonormal basis with the required orientation.

theorem orthonormal_basis.adjust_to_orientation_apply_eq_or_eq_neg {E : Type u_1} {ι : Type u_2} [fintype ι] [decidable_eq ι] [ne : nonempty ι] (e : E) (x : ι) (i : ι) :
i = e i i = -e i

Every basis vector from adjust_to_orientation is either that from the original basis or its negation.

theorem orthonormal_basis.det_adjust_to_orientation {E : Type u_1} {ι : Type u_2} [fintype ι] [decidable_eq ι] [ne : nonempty ι] (e : E) (x : ι) :
theorem orthonormal_basis.abs_det_adjust_to_orientation {E : Type u_1} {ι : Type u_2} [fintype ι] [decidable_eq ι] [ne : nonempty ι] (e : E) (x : ι) (v : ι E) :
@[protected]
noncomputable def orientation.fin_orthonormal_basis {E : Type u_1} {n : } (hn : 0 < n) (h : fdim E = n) (x : (fin n)) :
E

An orthonormal basis, indexed by fin n, with the given orientation.

Equations
@[simp]
theorem orientation.fin_orthonormal_basis_orientation {E : Type u_1} {n : } (hn : 0 < n) (h : fdim E = n) (x : (fin n)) :

orientation.fin_orthonormal_basis gives a basis with the required orientation.

@[irreducible]
noncomputable def orientation.volume_form {E : Type u_1} {n : } [fact (fdim E = n)] (o : (fin n)) :
(fin n)

The volume form on an oriented real inner product space, a nonvanishing top-dimensional alternating form uniquely defined by compatibility with the orientation and inner product structure.

Equations
@[simp]
theorem orientation.volume_form_robust {E : Type u_1} {n : } [fact (fdim E = n)] (o : (fin n)) (b : E) (hb : b.to_basis.orientation = o) :

The volume form on an oriented real inner product space can be evaluated as the determinant with respect to any orthonormal basis of the space compatible with the orientation.

theorem orientation.volume_form_robust_neg {E : Type u_1} {n : } [fact (fdim E = n)] (o : (fin n)) (b : E) (hb : b.to_basis.orientation o) :

The volume form on an oriented real inner product space can be evaluated as the determinant with respect to any orthonormal basis of the space compatible with the orientation.

@[simp]
theorem orientation.volume_form_neg_orientation {E : Type u_1} {n : } [fact (fdim E = n)] (o : (fin n)) :
theorem orientation.volume_form_robust' {E : Type u_1} {n : } [fact (fdim E = n)] (o : (fin n)) (b : E) (v : fin n E) :
theorem orientation.abs_volume_form_apply_le {E : Type u_1} {n : } [fact (fdim E = n)] (o : (fin n)) (v : fin n E) :

Let v be an indexed family of n vectors in an oriented n-dimensional real inner product space E. The output of the volume form of E when evaluated on v is bounded in absolute value by the product of the norms of the vectors v i.

theorem orientation.volume_form_apply_le {E : Type u_1} {n : } [fact (fdim E = n)] (o : (fin n)) (v : fin n E) :
(o.volume_form) v finset.univ.prod (λ (i : fin n), v i)
theorem orientation.abs_volume_form_apply_of_pairwise_orthogonal {E : Type u_1} {n : } [fact (fdim E = n)] (o : (fin n)) {v : fin n E} (hv : pairwise (λ (i j : fin n), has_inner.inner (v i) (v j) = 0)) :
|(o.volume_form) v| = finset.univ.prod (λ (i : fin n), v i)

Let v be an indexed family of n orthogonal vectors in an oriented n-dimensional real inner product space E. The output of the volume form of E when evaluated on v is, up to sign, the product of the norms of the vectors v i.

theorem orientation.abs_volume_form_apply_of_orthonormal {E : Type u_1} {n : } [fact (fdim E = n)] (o : (fin n)) (v : E) :

The output of the volume form of an oriented real inner product space E when evaluated on an orthonormal basis is ±1.

theorem orientation.volume_form_map {E : Type u_1} {n : } [fact (fdim E = n)] (o : (fin n)) {F : Type u_2} [fact (fdim F = n)] (φ : E ≃ₗᵢ[] F) (x : fin n F) :
theorem orientation.volume_form_comp_linear_isometry_equiv {E : Type u_1} {n : } [fact (fdim E = n)] (o : (fin n)) (φ : E ≃ₗᵢ[] E) (hφ : 0 < ) (x : fin n E) :

The volume form is invariant under pullback by a positively-oriented isometric automorphism.