Range of affine maps #
The range of an affine map f : P₁ →ᵃ[R] P₂ is an affine subspace of P₂.
Implementation note #
Follows LinearMap.range.
def AffineMap.range {R : Type u_1} {V₁ : Type u_2} {V₂ : Type u_3} {P₁ : Type u_4} {P₂ : Type u_5} [Ring R] [AddCommGroup V₁] [Module R V₁] [AddCommGroup V₂] [Module R V₂] [AddTorsor V₁ P₁] [AddTorsor V₂ P₂] (f : P₁ →ᵃ[R] P₂) :
AffineSubspace R P₂
The range of an affine map is an affine subspace.
Instances For
instance AffineMap.instNonemptyRange {R : Type u_1} {V₁ : Type u_2} {V₂ : Type u_3} {P₁ : Type u_4} {P₂ : Type u_5} [Ring R] [AddCommGroup V₁] [Module R V₁] [AddCommGroup V₂] [Module R V₂] [AddTorsor V₁ P₁] [AddTorsor V₂ P₂] (f : P₁ →ᵃ[R] P₂) :
The range of an affine map is nonempty.
@[simp]
theorem AffineMap.map_top {R : Type u_1} {V₁ : Type u_2} {V₂ : Type u_3} {P₁ : Type u_4} {P₂ : Type u_5} [Ring R] [AddCommGroup V₁] [Module R V₁] [AddCommGroup V₂] [Module R V₂] [AddTorsor V₁ P₁] [AddTorsor V₂ P₂] (f : P₁ →ᵃ[R] P₂) :
def AffineMap.rangeRestrict {R : Type u_1} {V₁ : Type u_2} {V₂ : Type u_3} {P₁ : Type u_4} {P₂ : Type u_5} [Ring R] [AddCommGroup V₁] [Module R V₁] [AddCommGroup V₂] [Module R V₂] [AddTorsor V₁ P₁] [AddTorsor V₂ P₂] (f : P₁ →ᵃ[R] P₂) :
Restrict the codomain of an affine map f to f.range.
Equations
- f.rangeRestrict = { toFun := fun (p : P₁) => ⟨f p, ⋯⟩, linear := LinearMap.codRestrict f.range.direction f.linear ⋯, map_vadd' := ⋯ }
Instances For
@[simp]
theorem AffineMap.rangeRestrict_linear_apply_coe {R : Type u_1} {V₁ : Type u_2} {V₂ : Type u_3} {P₁ : Type u_4} {P₂ : Type u_5} [Ring R] [AddCommGroup V₁] [Module R V₁] [AddCommGroup V₂] [Module R V₂] [AddTorsor V₁ P₁] [AddTorsor V₂ P₂] (f : P₁ →ᵃ[R] P₂) (c : V₁) :
@[simp]
theorem AffineMap.rangeRestrict_apply_coe {R : Type u_1} {V₁ : Type u_2} {V₂ : Type u_3} {P₁ : Type u_4} {P₂ : Type u_5} [Ring R] [AddCommGroup V₁] [Module R V₁] [AddCommGroup V₂] [Module R V₂] [AddTorsor V₁ P₁] [AddTorsor V₂ P₂] (f : P₁ →ᵃ[R] P₂) (p : P₁) :
theorem AffineMap.surjective_rangeRestrict {R : Type u_1} {V₁ : Type u_2} {V₂ : Type u_3} {P₁ : Type u_4} {P₂ : Type u_5} [Ring R] [AddCommGroup V₁] [Module R V₁] [AddCommGroup V₂] [Module R V₂] [AddTorsor V₁ P₁] [AddTorsor V₂ P₂] (f : P₁ →ᵃ[R] P₂) :
@[simp]
theorem AffineMap.range_rangeRestrict {R : Type u_1} {V₁ : Type u_2} {V₂ : Type u_3} {P₁ : Type u_4} {P₂ : Type u_5} [Ring R] [AddCommGroup V₁] [Module R V₁] [AddCommGroup V₂] [Module R V₂] [AddTorsor V₁ P₁] [AddTorsor V₂ P₂] (f : P₁ →ᵃ[R] P₂) :
@[simp]
theorem AffineMap.injective_rangeRestrict_iff {R : Type u_1} {V₁ : Type u_2} {V₂ : Type u_3} {P₁ : Type u_4} {P₂ : Type u_5} [Ring R] [AddCommGroup V₁] [Module R V₁] [AddCommGroup V₂] [Module R V₂] [AddTorsor V₁ P₁] [AddTorsor V₂ P₂] (f : P₁ →ᵃ[R] P₂) :