Documentation

Mathlib.Analysis.InnerProductSpace.Projection.Reflection

Reflection #

A linear isometry equivalence K.reflection : E โ‰ƒโ‚—แตข[๐•œ] E in constructed, by choosing for each u : E, K.reflection u = 2 โ€ข K.starProjection u - u.

def Submodule.reflectionLinearEquiv {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] (K : Submodule ๐•œ E) [K.HasOrthogonalProjection] :
E โ‰ƒโ‚—[๐•œ] E

Auxiliary definition for reflection: the reflection as a linear equivalence.

Equations
    Instances For
      def Submodule.reflection {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] (K : Submodule ๐•œ E) [K.HasOrthogonalProjection] :

      Reflection in a complete subspace of an inner product space. The word "reflection" is sometimes understood to mean specifically reflection in a codimension-one subspace, and sometimes more generally to cover operations such as reflection in a point. The definition here, of reflection in a subspace, is a more general sense of the word that includes both those common cases.

      Equations
        Instances For
          theorem Submodule.reflection_apply {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] {K : Submodule ๐•œ E} [K.HasOrthogonalProjection] (p : E) :

          The result of reflecting.

          @[simp]
          theorem Submodule.reflection_symm {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] {K : Submodule ๐•œ E} [K.HasOrthogonalProjection] :

          Reflection is its own inverse.

          @[simp]
          theorem Submodule.reflection_inv {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] {K : Submodule ๐•œ E} [K.HasOrthogonalProjection] :

          Reflection is its own inverse.

          @[simp]
          theorem Submodule.reflection_reflection {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] (K : Submodule ๐•œ E) [K.HasOrthogonalProjection] (p : E) :

          Reflecting twice in the same subspace.

          theorem Submodule.reflection_involutive {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] (K : Submodule ๐•œ E) [K.HasOrthogonalProjection] :

          Reflection is involutive.

          @[simp]
          theorem Submodule.reflection_trans_reflection {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] (K : Submodule ๐•œ E) [K.HasOrthogonalProjection] :

          Reflection is involutive.

          @[simp]
          theorem Submodule.reflection_mul_reflection {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] (K : Submodule ๐•œ E) [K.HasOrthogonalProjection] :

          Reflection is involutive.

          theorem Submodule.reflection_orthogonal_apply {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] (K : Submodule ๐•œ E) [K.HasOrthogonalProjection] (v : E) :
          theorem Submodule.reflection_orthogonal {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] (K : Submodule ๐•œ E) [K.HasOrthogonalProjection] :
          theorem Submodule.reflection_singleton_apply {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] (u v : E) :
          (span ๐•œ {u}).reflection v = 2 โ€ข (inner ๐•œ u v / โ†‘โ€–uโ€– ^ 2) โ€ข u - v
          theorem Submodule.reflection_eq_self_iff {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] {K : Submodule ๐•œ E} [K.HasOrthogonalProjection] (x : E) :

          A point is its own reflection if and only if it is in the subspace.

          theorem Submodule.reflection_mem_subspace_eq_self {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] {K : Submodule ๐•œ E} [K.HasOrthogonalProjection] {x : E} (hx : x โˆˆ K) :
          theorem Submodule.reflection_map_apply {๐•œ : Type u_1} [RCLike ๐•œ] {E : Type u_4} {E' : Type u_5} [NormedAddCommGroup E] [NormedAddCommGroup E'] [InnerProductSpace ๐•œ E] [InnerProductSpace ๐•œ E'] (f : E โ‰ƒโ‚—แตข[๐•œ] E') (K : Submodule ๐•œ E) [K.HasOrthogonalProjection] (x : E') :
          (map (โ†‘f.toLinearEquiv) K).reflection x = f (K.reflection (f.symm x))

          Reflection in the Submodule.map of a subspace.

          theorem Submodule.reflection_map {๐•œ : Type u_1} [RCLike ๐•œ] {E : Type u_4} {E' : Type u_5} [NormedAddCommGroup E] [NormedAddCommGroup E'] [InnerProductSpace ๐•œ E] [InnerProductSpace ๐•œ E'] (f : E โ‰ƒโ‚—แตข[๐•œ] E') (K : Submodule ๐•œ E) [K.HasOrthogonalProjection] :

          Reflection in the Submodule.map of a subspace.

          @[simp]
          theorem Submodule.reflection_bot {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] :

          Reflection through the trivial subspace {0} is just negation.

          theorem Submodule.reflection_mem_subspace_orthogonalComplement_eq_neg {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] {K : Submodule ๐•œ E} [K.HasOrthogonalProjection] {v : E} (hv : v โˆˆ Kแ—ฎ) :

          The reflection in K of an element of Kแ—ฎ is its negation.

          theorem Submodule.reflection_mem_subspace_orthogonal_precomplement_eq_neg {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] {K : Submodule ๐•œ E} [K.HasOrthogonalProjection] {v : E} (hv : v โˆˆ K) :

          The reflection in Kแ—ฎ of an element of K is its negation.

          theorem Submodule.reflection_orthogonalComplement_singleton_eq_neg {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] (v : E) :
          (span ๐•œ {v})แ—ฎ.reflection v = -v

          The reflection in (๐•œ โˆ™ v)แ—ฎ of v is -v.