doc-next-gen

Mathlib.Algebra.Module.Submodule.Map

Module docstring

{"# map and comap for Submodules

Main declarations

  • Submodule.map: The pushforward of a submodule p ⊆ M by f : M → M₂
  • Submodule.comap: The pullback of a submodule p ⊆ M₂ along f : M → M₂
  • Submodule.giMapComap: map f and comap f form a GaloisInsertion when f is surjective.
  • Submodule.gciMapComap: map f and comap f form a GaloisCoinsertion when f is injective.

Tags

submodule, subspace, linear map, pushforward, pullback ","### Linear equivalences "}

Submodule.map definition
(f : F) (p : Submodule R M) : Submodule R₂ M₂
Full source
/-- The pushforward of a submodule `p ⊆ M` by `f : M → M₂` -/
def map (f : F) (p : Submodule R M) : Submodule R₂ M₂ :=
  { p.toAddSubmonoid.map f with
    carrier := f '' p
    smul_mem' := by
      rintro c x ⟨y, hy, rfl⟩
      obtain ⟨a, rfl⟩ := σ₁₂.surjective c
      exact ⟨_, p.smul_mem a hy, map_smulₛₗ f _ _⟩ }
Pushforward of a submodule under a linear map
Informal description
Given a linear map $f : M \to M₂$ between modules over semirings $R$ and $R₂$ respectively, and a submodule $p \subseteq M$, the pushforward $\text{map}(f, p)$ is the submodule of $M₂$ consisting of all elements of the form $f(x)$ where $x \in p$. More formally, $\text{map}(f, p)$ is defined as: - The underlying set is the image $f(p) = \{f(x) \mid x \in p\}$ - It inherits the submodule structure from $M₂$, being closed under addition and scalar multiplication (where scalar multiplication uses the appropriate ring homomorphism $\sigma_{12} : R \to R₂$ when necessary)
Submodule.map_coe theorem
(f : F) (p : Submodule R M) : (map f p : Set M₂) = f '' p
Full source
@[simp]
theorem map_coe (f : F) (p : Submodule R M) : (map f p : Set M₂) = f '' p :=
  rfl
Pushforward Submodule as Image under Linear Map
Informal description
For any linear map $f : M \to M₂$ between modules over semirings $R$ and $R₂$ respectively, and any submodule $p \subseteq M$, the underlying set of the pushforward submodule $\text{map}(f, p)$ is equal to the image of $p$ under $f$, i.e., $\text{map}(f, p) = \{f(x) \mid x \in p\}$.
Submodule.map_coe_toLinearMap theorem
(f : F) (p : Submodule R M) : map (f : M →ₛₗ[σ₁₂] M₂) p = map f p
Full source
@[simp]
theorem map_coe_toLinearMap (f : F) (p : Submodule R M) : map (f : M →ₛₗ[σ₁₂] M₂) p = map f p := rfl
Equality of Pushforwards: Linear Map vs Function
Informal description
For any linear map $f : M \to M₂$ between modules over semirings $R$ and $R₂$ respectively, and any submodule $p \subseteq M$, the pushforward of $p$ under $f$ as a linear map is equal to the pushforward of $p$ under $f$ as a function. That is, $\text{map}(f, p) = \text{map}(f_{\text{linear}}, p)$, where $f_{\text{linear}}$ denotes $f$ viewed as a linear map.
Submodule.map_toAddSubmonoid theorem
(f : M →ₛₗ[σ₁₂] M₂) (p : Submodule R M) : (p.map f).toAddSubmonoid = p.toAddSubmonoid.map (f : M →+ M₂)
Full source
theorem map_toAddSubmonoid (f : M →ₛₗ[σ₁₂] M₂) (p : Submodule R M) :
    (p.map f).toAddSubmonoid = p.toAddSubmonoid.map (f : M →+ M₂) :=
  SetLike.coe_injective rfl
Compatibility of Submodule Pushforward with Additive Submonoid Structure
Informal description
Let $f : M \to M₂$ be a linear map between modules over semirings $R$ and $R₂$ respectively, and let $p$ be a submodule of $M$. Then the underlying additive submonoid of the pushforward submodule $\text{map}(f, p)$ is equal to the pushforward of the underlying additive submonoid of $p$ under the additive monoid homomorphism corresponding to $f$. In symbols: $$(p.\text{map}(f)).\text{toAddSubmonoid} = (p.\text{toAddSubmonoid}).\text{map}(f)$$
Submodule.map_toAddSubmonoid' theorem
(f : M →ₛₗ[σ₁₂] M₂) (p : Submodule R M) : (p.map f).toAddSubmonoid = p.toAddSubmonoid.map f
Full source
theorem map_toAddSubmonoid' (f : M →ₛₗ[σ₁₂] M₂) (p : Submodule R M) :
    (p.map f).toAddSubmonoid = p.toAddSubmonoid.map f :=
  SetLike.coe_injective rfl
Compatibility of Submodule and Additive Submonoid Pushforwards under Linear Maps
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, and let $\sigma_{12}: R \to R₂$ be a ring homomorphism. Given a $\sigma_{12}$-linear map $f: M \to M₂$ and a submodule $p \subseteq M$, the additive submonoid associated with the pushforward submodule $f(p)$ is equal to the pushforward of the additive submonoid associated with $p$ under $f$. In symbols: $$(f(p))_{\text{add}} = f(p_{\text{add}})$$ where $(-)_{\text{add}}$ denotes the underlying additive submonoid structure.
AddMonoidHom.coe_toIntLinearMap_map theorem
{A A₂ : Type*} [AddCommGroup A] [AddCommGroup A₂] (f : A →+ A₂) (s : AddSubgroup A) : (AddSubgroup.toIntSubmodule s).map f.toIntLinearMap = AddSubgroup.toIntSubmodule (s.map f)
Full source
@[simp]
theorem _root_.AddMonoidHom.coe_toIntLinearMap_map {A A₂ : Type*} [AddCommGroup A] [AddCommGroup A₂]
    (f : A →+ A₂) (s : AddSubgroup A) :
    (AddSubgroup.toIntSubmodule s).map f.toIntLinearMap =
      AddSubgroup.toIntSubmodule (s.map f) := rfl
Compatibility of $\mathbb{Z}$-submodule image with additive group homomorphism
Informal description
Let $A$ and $A_2$ be additive commutative groups, and let $f : A \to A_2$ be an additive group homomorphism. For any additive subgroup $s$ of $A$, the image of the $\mathbb{Z}$-submodule corresponding to $s$ under the $\mathbb{Z}$-linear map induced by $f$ is equal to the $\mathbb{Z}$-submodule corresponding to the image of $s$ under $f$. In symbols: $$f_{\mathbb{Z}}(s_{\mathbb{Z}}) = (f(s))_{\mathbb{Z}}$$ where $(-)_{\mathbb{Z}}$ denotes the corresponding $\mathbb{Z}$-submodule structure.
MonoidHom.coe_toAdditive_map theorem
{G G₂ : Type*} [Group G] [Group G₂] (f : G →* G₂) (s : Subgroup G) : s.toAddSubgroup.map (MonoidHom.toAdditive f) = Subgroup.toAddSubgroup (s.map f)
Full source
@[simp]
theorem _root_.MonoidHom.coe_toAdditive_map {G G₂ : Type*} [Group G] [Group G₂] (f : G →* G₂)
    (s : Subgroup G) :
    s.toAddSubgroup.map (MonoidHom.toAdditive f) = Subgroup.toAddSubgroup (s.map f) := rfl
Compatibility of Subgroup Images with Additive Conversion
Informal description
Let $G$ and $G_2$ be groups, and let $f: G \to G_2$ be a group homomorphism. For any subgroup $s$ of $G$, the image of the additive subgroup corresponding to $s$ under the additive version of $f$ is equal to the additive subgroup corresponding to the image of $s$ under $f$. In symbols: $$\text{toAddSubgroup}(s).\text{map}(\text{toAdditive}(f)) = \text{toAddSubgroup}(s.\text{map}(f))$$
AddMonoidHom.coe_toMultiplicative_map theorem
{G G₂ : Type*} [AddGroup G] [AddGroup G₂] (f : G →+ G₂) (s : AddSubgroup G) : s.toSubgroup.map (AddMonoidHom.toMultiplicative f) = AddSubgroup.toSubgroup (s.map f)
Full source
@[simp]
theorem _root_.AddMonoidHom.coe_toMultiplicative_map {G G₂ : Type*} [AddGroup G] [AddGroup G₂]
    (f : G →+ G₂) (s : AddSubgroup G) :
    s.toSubgroup.map (AddMonoidHom.toMultiplicative f) = AddSubgroup.toSubgroup (s.map f) := rfl
Compatibility of Image with Additive-Multiplicative Conversion for Subgroups
Informal description
Let $G$ and $G₂$ be additive groups, and let $f : G \to G₂$ be an additive group homomorphism. For any additive subgroup $s$ of $G$, the image of $s$ under the multiplicative version of $f$ (via the equivalence between additive and multiplicative homomorphisms) is equal to the multiplicative version of the image of $s$ under $f$. More precisely, if we convert $s$ to a multiplicative subgroup and apply the multiplicative version of $f$, the result is the same as converting the image of $s$ under $f$ to a multiplicative subgroup.
Submodule.mem_map theorem
{f : F} {p : Submodule R M} {x : M₂} : x ∈ map f p ↔ ∃ y, y ∈ p ∧ f y = x
Full source
@[simp]
theorem mem_map {f : F} {p : Submodule R M} {x : M₂} : x ∈ map f px ∈ map f p ↔ ∃ y, y ∈ p ∧ f y = x :=
  Iff.rfl
Characterization of Elements in the Pushforward of a Submodule
Informal description
For a linear map $f : M \to M₂$ between modules over semirings $R$ and $R₂$, a submodule $p \subseteq M$, and an element $x \in M₂$, we have $x \in \text{map}(f, p)$ if and only if there exists $y \in p$ such that $f(y) = x$.
Submodule.mem_map_of_mem theorem
{f : F} {p : Submodule R M} {r} (h : r ∈ p) : f r ∈ map f p
Full source
theorem mem_map_of_mem {f : F} {p : Submodule R M} {r} (h : r ∈ p) : f r ∈ map f p :=
  Set.mem_image_of_mem _ h
Image of Submodule Element under Linear Map Belongs to Pushforward Submodule
Informal description
Let $f : M \to M₂$ be a linear map between modules over semirings $R$ and $R₂$ respectively, and let $p$ be a submodule of $M$. For any element $r \in p$, the image $f(r)$ belongs to the pushforward submodule $\text{map}(f, p) \subseteq M₂$.
Submodule.apply_coe_mem_map theorem
(f : F) {p : Submodule R M} (r : p) : f r ∈ map f p
Full source
theorem apply_coe_mem_map (f : F) {p : Submodule R M} (r : p) : f r ∈ map f p :=
  mem_map_of_mem r.prop
Image of Submodule Element under Linear Map Belongs to Pushforward Submodule
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, and let $f : M \to M₂$ be a linear map. For any submodule $p \subseteq M$ and any element $r \in p$, the image $f(r)$ belongs to the pushforward submodule $\text{map}(f, p) \subseteq M₂$.
Submodule.map_id theorem
: map (LinearMap.id : M →ₗ[R] M) p = p
Full source
@[simp]
theorem map_id : map (LinearMap.id : M →ₗ[R] M) p = p :=
  Submodule.ext fun a => by simp
Identity Map Preserves Submodule: $\text{map}(\text{id}, p) = p$
Informal description
For any submodule $p$ of a module $M$ over a semiring $R$, the pushforward of $p$ under the identity linear map $\text{id} : M \to M$ is equal to $p$ itself, i.e., $\text{map}(\text{id}, p) = p$.
Submodule.map_comp theorem
[RingHomSurjective σ₂₃] [RingHomSurjective σ₁₃] (f : M →ₛₗ[σ₁₂] M₂) (g : M₂ →ₛₗ[σ₂₃] M₃) (p : Submodule R M) : map (g.comp f : M →ₛₗ[σ₁₃] M₃) p = map g (map f p)
Full source
theorem map_comp [RingHomSurjective σ₂₃] [RingHomSurjective σ₁₃] (f : M →ₛₗ[σ₁₂] M₂)
    (g : M₂ →ₛₗ[σ₂₃] M₃) (p : Submodule R M) : map (g.comp f : M →ₛₗ[σ₁₃] M₃) p = map g (map f p) :=
  SetLike.coe_injective <| by simp only [← image_comp, map_coe, LinearMap.coe_comp, comp_apply]
Composition of Pushforwards for Submodules: $(g \circ f)(p) = g(f(p))$
Informal description
Let $R$, $R_2$, $R_3$ be semirings and $M$, $M_2$, $M_3$ be modules over $R$, $R_2$, $R_3$ respectively. Given ring homomorphisms $\sigma_{12} : R \to R_2$ and $\sigma_{23} : R_2 \to R_3$ that are surjective, and linear maps $f : M \to M_2$ (linear with respect to $\sigma_{12}$) and $g : M_2 \to M_3$ (linear with respect to $\sigma_{23}$), for any submodule $p \subseteq M$, the pushforward of $p$ under the composition $g \circ f$ equals the pushforward under $g$ of the pushforward of $p$ under $f$. That is, $$(g \circ f)(p) = g(f(p))$$ where $(g \circ f)(p)$ denotes the image of $p$ under the composed linear map $g \circ f$, and $g(f(p))$ denotes the image under $g$ of the image of $p$ under $f$.
Submodule.map_mono theorem
{f : F} {p p' : Submodule R M} : p ≤ p' → map f p ≤ map f p'
Full source
@[gcongr]
theorem map_mono {f : F} {p p' : Submodule R M} : p ≤ p' → map f p ≤ map f p' :=
  image_subset _
Monotonicity of Submodule Pushforward: $p \subseteq p' \Rightarrow f(p) \subseteq f(p')$
Informal description
For any linear map $f : M \to M_2$ between modules over semirings $R$ and $R_2$ respectively, and any submodules $p, p' \subseteq M$ such that $p \subseteq p'$, the image of $p$ under $f$ is contained in the image of $p'$ under $f$, i.e., $f(p) \subseteq f(p')$.
Submodule.map_zero theorem
: map (0 : M →ₛₗ[σ₁₂] M₂) p = ⊥
Full source
@[simp]
protected theorem map_zero : map (0 : M →ₛₗ[σ₁₂] M₂) p =  :=
  have : ∃ x : M, x ∈ p := ⟨0, p.zero_mem⟩
  ext <| by simp [this, eq_comm]
Pushforward of Submodule Under Zero Map is Zero Submodule
Informal description
For any submodule $p$ of a module $M$ over a semiring $R$, the pushforward of $p$ under the zero linear map $0 : M \to M₂$ is equal to the zero submodule $\{0\}$ of $M₂$.
Submodule.map_add_le theorem
(f g : M →ₛₗ[σ₁₂] M₂) : map (f + g) p ≤ map f p ⊔ map g p
Full source
theorem map_add_le (f g : M →ₛₗ[σ₁₂] M₂) : map (f + g) p ≤ mapmap f p ⊔ map g p := by
  rintro x ⟨m, hm, rfl⟩
  exact add_mem_sup (mem_map_of_mem hm) (mem_map_of_mem hm)
Image of Submodule under Sum of Linear Maps is Contained in Supremum of Individual Images
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, and let $f, g : M \to M₂$ be linear maps. For any submodule $p$ of $M$, the image of $p$ under the sum $f + g$ is contained in the supremum of the images of $p$ under $f$ and $g$ individually. That is, \[ (f + g)(p) \subseteq f(p) \sqcup g(p). \]
Submodule.map_inf_le theorem
(f : F) {p q : Submodule R M} : (p ⊓ q).map f ≤ p.map f ⊓ q.map f
Full source
theorem map_inf_le (f : F) {p q : Submodule R M} :
    (p ⊓ q).map f ≤ p.map f ⊓ q.map f :=
  image_inter_subset f p q
Image of Submodule Intersection is Contained in Intersection of Images
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, and let $f : M \to M₂$ be a linear map. For any submodules $p, q$ of $M$, the image of their intersection under $f$ is contained in the intersection of their images under $f$. That is, \[ f(p \cap q) \subseteq f(p) \cap f(q). \]
Submodule.map_inf theorem
(f : F) {p q : Submodule R M} (hf : Injective f) : (p ⊓ q).map f = p.map f ⊓ q.map f
Full source
theorem map_inf (f : F) {p q : Submodule R M} (hf : Injective f) :
    (p ⊓ q).map f = p.map f ⊓ q.map f :=
  SetLike.coe_injective <| Set.image_inter hf
Image of Submodule Intersection under Injective Linear Map Equals Intersection of Images
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, and let $f : M \to M₂$ be an injective linear map. For any two submodules $p, q$ of $M$, the image under $f$ of their intersection equals the intersection of their images. That is, \[ f(p \cap q) = f(p) \cap f(q). \]
Submodule.map_iInf theorem
{ι : Type*} [Nonempty ι] {p : ι → Submodule R M} (f : F) (hf : Injective f) : (⨅ i, p i).map f = ⨅ i, (p i).map f
Full source
lemma map_iInf {ι : Type*} [Nonempty ι] {p : ι → Submodule R M} (f : F) (hf : Injective f) :
    (⨅ i, p i).map f = ⨅ i, (p i).map f :=
  SetLike.coe_injective <| by simpa only [map_coe, iInf_coe] using hf.injOn.image_iInter_eq
Image of Infimum of Submodules under Injective Linear Map Equals Infimum of Images
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, and let $f : M \to M₂$ be an injective linear map. For any nonempty index set $\iota$ and any family of submodules $(p_i)_{i \in \iota}$ of $M$, the image under $f$ of the infimum of the submodules equals the infimum of their images. That is, \[ f\left(\bigsqcap_{i \in \iota} p_i\right) = \bigsqcap_{i \in \iota} f(p_i). \]
Submodule.range_map_nonempty theorem
(N : Submodule R M) : (Set.range (fun ϕ => Submodule.map ϕ N : (M →ₛₗ[σ₁₂] M₂) → Submodule R₂ M₂)).Nonempty
Full source
theorem range_map_nonempty (N : Submodule R M) :
    (Set.range (fun ϕ => Submodule.map ϕ N : (M →ₛₗ[σ₁₂] M₂) → Submodule R₂ M₂)).Nonempty :=
  ⟨_, Set.mem_range.mpr ⟨0, rfl⟩⟩
Nonemptiness of the Range of Submodule Pushforwards under Linear Maps
Informal description
For any submodule $N$ of a module $M$ over a semiring $R$, the range of the pushforward map $\phi \mapsto \text{map}(\phi, N)$, where $\phi$ ranges over all linear maps from $M$ to another module $M₂$ over a semiring $R₂$, is nonempty. In other words, there exists at least one linear map $\phi : M \to M₂$ such that $\text{map}(\phi, N)$ is a submodule of $M₂$.
Submodule.equivMapOfInjective definition
(f : F) (i : Injective f) (p : Submodule R M) : p ≃ₛₗ[σ₁₂] p.map f
Full source
/-- The pushforward of a submodule by an injective linear map is
linearly equivalent to the original submodule. See also `LinearEquiv.submoduleMap` for a
computable version when `f` has an explicit inverse. -/
noncomputable def equivMapOfInjective (f : F) (i : Injective f) (p : Submodule R M) :
    p ≃ₛₗ[σ₁₂] p.map f :=
  { Equiv.Set.image f p i with
    map_add' := by
      intros
      simp only [coe_add, map_add, Equiv.toFun_as_coe, Equiv.Set.image_apply]
      rfl
    map_smul' := by
      intros
      -- Note: https://github.com/leanprover-community/mathlib4/pull/8386 changed `map_smulₛₗ` into `map_smulₛₗ _`
      simp only [coe_smul_of_tower, map_smulₛₗ _, Equiv.toFun_as_coe, Equiv.Set.image_apply]
      rfl }
Linear equivalence between a submodule and its image under an injective linear map
Informal description
Given an injective linear map \( f : M \to M₂ \) between modules over semirings \( R \) and \( R₂ \) respectively, and a submodule \( p \subseteq M \), there is a linear equivalence between \( p \) and its image \( f(p) \subseteq M₂ \). More precisely, the equivalence is given by: - The forward map sends each \( x \in p \) to \( f(x) \in f(p) \). - The inverse map sends each \( y \in f(p) \) to the unique \( x \in p \) such that \( f(x) = y \) (which exists and is unique by injectivity of \( f \)). This equivalence preserves both the additive and scalar multiplicative structures.
Submodule.coe_equivMapOfInjective_apply theorem
(f : F) (i : Injective f) (p : Submodule R M) (x : p) : (equivMapOfInjective f i p x : M₂) = f x
Full source
@[simp]
theorem coe_equivMapOfInjective_apply (f : F) (i : Injective f) (p : Submodule R M) (x : p) :
    (equivMapOfInjective f i p x : M₂) = f x :=
  rfl
Commutativity of Submodule Equivalence with Original Map
Informal description
Let $f : M \to M₂$ be an injective linear map between modules over semirings $R$ and $R₂$ respectively, and let $p$ be a submodule of $M$. For any element $x \in p$, the image of $x$ under the linear equivalence $\text{equivMapOfInjective}(f, i, p)$ (viewed as an element of $M₂$) equals $f(x)$. In other words, the following diagram commutes: \[ \begin{CD} p @>{\text{equivMapOfInjective}(f, i, p)}>> p.map f \\ @V{\text{inclusion}}VV @VV{\text{inclusion}}V \\ M @>{f}>> M₂ \end{CD} \] where the vertical arrows are the inclusion maps.
Submodule.map_equivMapOfInjective_symm_apply theorem
(f : F) (i : Injective f) (p : Submodule R M) (x : p.map f) : f ((equivMapOfInjective f i p).symm x) = x
Full source
@[simp]
theorem map_equivMapOfInjective_symm_apply (f : F) (i : Injective f) (p : Submodule R M)
    (x : p.map f) : f ((equivMapOfInjective f i p).symm x) = x := by
  rw [← LinearEquiv.apply_symm_apply (equivMapOfInjective f i p) x, coe_equivMapOfInjective_apply,
    i.eq_iff, LinearEquiv.apply_symm_apply]
Inverse Image Property for Linear Equivalence of Submodules
Informal description
Let $f : M \to M₂$ be an injective linear map between modules over semirings $R$ and $R₂$ respectively, and let $p$ be a submodule of $M$. For any element $x$ in the image submodule $f(p) \subseteq M₂$, applying $f$ to the preimage of $x$ under the linear equivalence $\text{equivMapOfInjective}(f, i, p)$ yields $x$ itself. That is, $f((\text{equivMapOfInjective}(f, i, p))^{-1}(x)) = x$.
Submodule.comap definition
[SemilinearMapClass F σ₁₂ M M₂] (f : F) (p : Submodule R₂ M₂) : Submodule R M
Full source
/-- The pullback of a submodule `p ⊆ M₂` along `f : M → M₂` -/
def comap [SemilinearMapClass F σ₁₂ M M₂] (f : F) (p : Submodule R₂ M₂) : Submodule R M :=
  { p.toAddSubmonoid.comap f with
    carrier := f ⁻¹' p
    -- Note: https://github.com/leanprover-community/mathlib4/pull/8386 added `map_smulₛₗ _`
    smul_mem' := fun a x h => by simp [p.smul_mem (σ₁₂ a) h, map_smulₛₗ _] }
Pullback of a submodule along a semilinear map
Informal description
Given a semilinear map \( f : M \to M₂ \) (where \( M \) and \( M₂ \) are modules over semirings \( R \) and \( R₂ \) respectively, connected by a ring homomorphism \( \sigma₁₂ : R \to R₂ \)) and a submodule \( p \subseteq M₂ \), the pullback submodule \( \text{comap } f \ p \) is the submodule of \( M \) consisting of all elements \( x \in M \) such that \( f(x) \in p \). More formally, \( \text{comap } f \ p = \{ x \in M \mid f(x) \in p \} \), and it inherits the structure of a submodule of \( M \).
Submodule.comap_coe theorem
(f : F) (p : Submodule R₂ M₂) : (comap f p : Set M) = f ⁻¹' p
Full source
@[simp]
theorem comap_coe (f : F) (p : Submodule R₂ M₂) : (comap f p : Set M) = f ⁻¹' p :=
  rfl
Pullback Submodule as Preimage
Informal description
For a semilinear map $f : M \to M₂$ between modules over semirings $R$ and $R₂$ respectively, and a submodule $p \subseteq M₂$, the underlying set of the pullback submodule $\text{comap } f \ p$ is equal to the preimage $f^{-1}(p)$ of $p$ under $f$. That is, $(\text{comap } f \ p) = f^{-1}(p)$ as sets.
Submodule.comap_coe_toLinearMap theorem
(f : F) (p : Submodule R₂ M₂) : comap (f : M →ₛₗ[σ₁₂] M₂) p = comap f p
Full source
@[simp] theorem comap_coe_toLinearMap (f : F) (p : Submodule R₂ M₂) :
    comap (f : M →ₛₗ[σ₁₂] M₂) p = comap f p := rfl
Equality of Pullback Submodules via Semilinear and Linear Maps
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, connected by a ring homomorphism $\sigma₁₂ : R \to R₂$. Let $f : M \to M₂$ be a semilinear map and $p$ be a submodule of $M₂$. Then the pullback submodule $\text{comap}(f, p)$ is equal to the pullback submodule obtained by considering $f$ as a linear map, i.e., $\text{comap}(f : M \to_{σ₁₂} M₂, p) = \text{comap}(f, p)$.
Submodule.AddMonoidHom.coe_toIntLinearMap_comap theorem
{A A₂ : Type*} [AddCommGroup A] [AddCommGroup A₂] (f : A →+ A₂) (s : AddSubgroup A₂) : (AddSubgroup.toIntSubmodule s).comap f.toIntLinearMap = AddSubgroup.toIntSubmodule (s.comap f)
Full source
@[simp]
theorem AddMonoidHom.coe_toIntLinearMap_comap {A A₂ : Type*} [AddCommGroup A] [AddCommGroup A₂]
    (f : A →+ A₂) (s : AddSubgroup A₂) :
    (AddSubgroup.toIntSubmodule s).comap f.toIntLinearMap =
      AddSubgroup.toIntSubmodule (s.comap f) := rfl
Compatibility of $\mathbb{Z}$-submodule conversion with pullback of additive subgroups
Informal description
Let $A$ and $A_2$ be additive commutative groups, and let $f : A \to A_2$ be an additive group homomorphism. For any additive subgroup $s$ of $A_2$, the $\mathbb{Z}$-submodule obtained by first converting $s$ to a $\mathbb{Z}$-submodule and then pulling back along the $\mathbb{Z}$-linear map induced by $f$ is equal to the $\mathbb{Z}$-submodule obtained by first pulling back $s$ along $f$ and then converting to a $\mathbb{Z}$-submodule. In symbols: $$(s_{\mathbb{Z}}).\text{comap}(f_{\mathbb{Z}}) = (s.\text{comap}(f))_{\mathbb{Z}}$$ where: - $s_{\mathbb{Z}}$ denotes the $\mathbb{Z}$-submodule corresponding to $s$, - $f_{\mathbb{Z}}$ denotes the $\mathbb{Z}$-linear map induced by $f$, - $\text{comap}$ denotes the pullback operation.
Submodule.mem_comap theorem
{f : F} {p : Submodule R₂ M₂} : x ∈ comap f p ↔ f x ∈ p
Full source
@[simp]
theorem mem_comap {f : F} {p : Submodule R₂ M₂} : x ∈ comap f px ∈ comap f p ↔ f x ∈ p :=
  Iff.rfl
Characterization of Elements in Pullback Submodule: $x \in f^{-1}(p) \leftrightarrow f(x) \in p$
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, connected by a ring homomorphism $\sigma₁₂ : R \to R₂$. Let $f : M \to M₂$ be a semilinear map and $p$ be a submodule of $M₂$. For any element $x \in M$, we have $x \in \text{comap}(f, p)$ if and only if $f(x) \in p$.
Submodule.comap_id theorem
: comap (LinearMap.id : M →ₗ[R] M) p = p
Full source
@[simp]
theorem comap_id : comap (LinearMap.id : M →ₗ[R] M) p = p :=
  SetLike.coe_injective rfl
Pullback of Submodule Along Identity Map is Itself
Informal description
For any submodule $p$ of a module $M$ over a semiring $R$, the pullback of $p$ along the identity linear map $\text{id} : M \to M$ is equal to $p$ itself. That is, $\text{comap}(\text{id}, p) = p$.
Submodule.comap_comp theorem
(f : M →ₛₗ[σ₁₂] M₂) (g : M₂ →ₛₗ[σ₂₃] M₃) (p : Submodule R₃ M₃) : comap (g.comp f : M →ₛₗ[σ₁₃] M₃) p = comap f (comap g p)
Full source
theorem comap_comp (f : M →ₛₗ[σ₁₂] M₂) (g : M₂ →ₛₗ[σ₂₃] M₃) (p : Submodule R₃ M₃) :
    comap (g.comp f : M →ₛₗ[σ₁₃] M₃) p = comap f (comap g p) :=
  rfl
Composition Law for Submodule Pullbacks
Informal description
Let $R$, $R₂$, and $R₃$ be semirings, and let $M$, $M₂$, and $M₃$ be modules over $R$, $R₂$, and $R₃$ respectively. Given semilinear maps $f : M \to M₂$ and $g : M₂ \to M₃$ (with associated ring homomorphisms $\sigma_{12} : R \to R₂$ and $\sigma_{23} : R₂ \to R₃$), and a submodule $p \subseteq M₃$, the pullback of $p$ along the composition $g \circ f$ is equal to the pullback along $f$ of the pullback along $g$ of $p$. In symbols: \[ \text{comap } (g \circ f) \ p = \text{comap } f \ (\text{comap } g \ p) \]
Submodule.comap_mono theorem
{f : F} {q q' : Submodule R₂ M₂} : q ≤ q' → comap f q ≤ comap f q'
Full source
@[gcongr]
theorem comap_mono {f : F} {q q' : Submodule R₂ M₂} : q ≤ q' → comap f q ≤ comap f q' :=
  preimage_mono
Monotonicity of Submodule Pullback under Inclusion
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, and let $f : M \to M₂$ be a semilinear map. For any two submodules $q, q'$ of $M₂$, if $q \subseteq q'$, then the pullback submodules satisfy $\text{comap } f \ q \subseteq \text{comap } f \ q'$.
Submodule.le_comap_pow_of_le_comap theorem
(p : Submodule R M) {f : M →ₗ[R] M} (h : p ≤ p.comap f) (k : ℕ) : p ≤ p.comap (f ^ k)
Full source
theorem le_comap_pow_of_le_comap (p : Submodule R M) {f : M →ₗ[R] M}
    (h : p ≤ p.comap f) (k : ) : p ≤ p.comap (f ^ k) := by
  induction k with
  | zero => simp [Module.End.one_eq_id]
  | succ k ih => simp [Module.End.iterate_succ, comap_comp, h.trans (comap_mono ih)]
Iterated Pullback Containment for Submodules: $p \subseteq f^{-k}(p)$ under $p \subseteq f^{-1}(p)$
Informal description
Let $M$ be a module over a semiring $R$, $p$ a submodule of $M$, and $f : M \to M$ a linear map. If $p$ is contained in its pullback along $f$ (i.e., $p \subseteq f^{-1}(p)$), then for any natural number $k$, $p$ is contained in its pullback along the $k$-th iterate of $f$ (i.e., $p \subseteq (f^k)^{-1}(p)$).
Submodule.map_le_iff_le_comap theorem
{f : F} {p : Submodule R M} {q : Submodule R₂ M₂} : map f p ≤ q ↔ p ≤ comap f q
Full source
theorem map_le_iff_le_comap {f : F} {p : Submodule R M} {q : Submodule R₂ M₂} :
    mapmap f p ≤ q ↔ p ≤ comap f q :=
  image_subset_iff
Galois Connection Between Submodule Pushforward and Pullback
Informal description
Let $R$ and $R₂$ be semirings, $M$ be an $R$-module, $M₂$ be an $R₂$-module, and $f : M \to M₂$ be a semilinear map. For any submodule $p \subseteq M$ and $q \subseteq M₂$, the pushforward submodule $f(p) \subseteq M₂$ is contained in $q$ if and only if $p$ is contained in the pullback submodule $f^{-1}(q) \subseteq M$. In symbols: \[ f(p) \subseteq q \leftrightarrow p \subseteq f^{-1}(q). \]
Submodule.gc_map_comap theorem
(f : F) : GaloisConnection (map f) (comap f)
Full source
theorem gc_map_comap (f : F) : GaloisConnection (map f) (comap f)
  | _, _ => map_le_iff_le_comap
Galois Connection Between Submodule Pushforward and Pullback
Informal description
For any semilinear map $f : M \to M₂$ between modules over semirings $R$ and $R₂$ respectively, the functions $\text{map}(f)$ (pushforward) and $\text{comap}(f)$ (pullback) form a Galois connection between the complete lattices of submodules of $M$ and $M₂$. That is, for any submodule $p \subseteq M$ and $q \subseteq M₂$, we have: \[ \text{map}(f)(p) \subseteq q \leftrightarrow p \subseteq \text{comap}(f)(q). \]
Submodule.map_bot theorem
(f : F) : map f ⊥ = ⊥
Full source
@[simp]
theorem map_bot (f : F) : map f  =  :=
  (gc_map_comap f).l_bot
Pushforward of Zero Submodule is Zero Submodule
Informal description
For any semilinear map $f : M \to M₂$ between modules over semirings $R$ and $R₂$ respectively, the pushforward of the zero submodule $\{0\}$ under $f$ is the zero submodule $\{0\}$ in $M₂$. That is, $f(\{0\}) = \{0\}$.
Submodule.map_sup theorem
(f : F) : map f (p ⊔ p') = map f p ⊔ map f p'
Full source
@[simp]
theorem map_sup (f : F) : map f (p ⊔ p') = mapmap f p ⊔ map f p' :=
  (gc_map_comap f : GaloisConnection (map f) (comap f)).l_sup
Pushforward Preserves Suprema of Submodules: $f(p \sqcup p') = f(p) \sqcup f(p')$
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, and let $f : M \to M₂$ be a semilinear map. For any two submodules $p, p'$ of $M$, the pushforward of their supremum under $f$ equals the supremum of their pushforwards, i.e., \[ f(p \sqcup p') = f(p) \sqcup f(p'). \]
Submodule.map_iSup theorem
{ι : Sort*} (f : F) (p : ι → Submodule R M) : map f (⨆ i, p i) = ⨆ i, map f (p i)
Full source
@[simp]
theorem map_iSup {ι : Sort*} (f : F) (p : ι → Submodule R M) :
    map f (⨆ i, p i) = ⨆ i, map f (p i) :=
  (gc_map_comap f : GaloisConnection (map f) (comap f)).l_iSup
Pushforward Preserves Arbitrary Suprema of Submodules
Informal description
Let $M$ and $M_2$ be modules over semirings $R$ and $R_2$ respectively, connected by a ring homomorphism $\sigma_{12} \colon R \to R_2$. Given a semilinear map $f \colon M \to M_2$ and a family of submodules $(p_i)_{i \in \iota}$ of $M$, the pushforward of their supremum equals the supremum of their pushforwards: \[ f\left(\bigsqcup_{i \in \iota} p_i\right) = \bigsqcup_{i \in \iota} f(p_i) \] where $\bigsqcup$ denotes the supremum (smallest submodule containing all given submodules) in the lattice of submodules.
Submodule.comap_top theorem
(f : F) : comap f ⊤ = ⊤
Full source
@[simp]
theorem comap_top (f : F) : comap f  =  :=
  rfl
Pullback of Universal Submodule is Universal
Informal description
For any semilinear map $f \colon M \to M_2$ between modules over semirings $R$ and $R_2$ respectively, the pullback of the universal submodule (the entire module $M_2$) along $f$ is the universal submodule of $M$. In other words, $f^{-1}(M_2) = M$.
Submodule.comap_inf theorem
(f : F) : comap f (q ⊓ q') = comap f q ⊓ comap f q'
Full source
@[simp]
theorem comap_inf (f : F) : comap f (q ⊓ q') = comapcomap f q ⊓ comap f q' :=
  rfl
Pullback Preserves Intersection of Submodules
Informal description
Let $M$ and $M_2$ be modules over semirings $R$ and $R_2$ respectively, connected by a ring homomorphism $\sigma_{12} : R \to R_2$. Given a semilinear map $f : M \to M_2$ and submodules $q, q' \subseteq M_2$, the pullback of the intersection satisfies: \[ f^{-1}(q \cap q') = f^{-1}(q) \cap f^{-1}(q') \] where $f^{-1}(S)$ denotes the preimage of $S$ under $f$.
Submodule.comap_iInf theorem
[RingHomSurjective σ₁₂] {ι : Sort*} (f : F) (p : ι → Submodule R₂ M₂) : comap f (⨅ i, p i) = ⨅ i, comap f (p i)
Full source
@[simp]
theorem comap_iInf [RingHomSurjective σ₁₂] {ι : Sort*} (f : F) (p : ι → Submodule R₂ M₂) :
    comap f (⨅ i, p i) = ⨅ i, comap f (p i) :=
  (gc_map_comap f : GaloisConnection (map f) (comap f)).u_iInf
Pullback Preserves Infima of Submodules
Informal description
Let $R$ and $R₂$ be semirings with a ring homomorphism $\sigma_{12} : R \to R₂$, and let $M$ and $M₂$ be modules over $R$ and $R₂$ respectively. Given a semilinear map $f : M \to M₂$ (with respect to $\sigma_{12}$) and an indexed family of submodules $(p_i)_{i \in \iota}$ of $M₂$, the pullback of their infimum equals the infimum of their pullbacks: \[ f^{-1}\left(\bigcap_i p_i\right) = \bigcap_i f^{-1}(p_i). \]
Submodule.comap_zero theorem
: comap (0 : M →ₛₗ[σ₁₂] M₂) q = ⊤
Full source
@[simp]
theorem comap_zero : comap (0 : M →ₛₗ[σ₁₂] M₂) q =  :=
  ext <| by simp
Pullback of Any Submodule Along Zero Map is Entire Module
Informal description
For any submodule $q$ of a module $M₂$ over a semiring $R₂$, the pullback of $q$ along the zero linear map $0 : M \to M₂$ is the entire module $M$, i.e., $\text{comap } 0 \ q = \top$.
Submodule.map_comap_le theorem
[RingHomSurjective σ₁₂] (f : F) (q : Submodule R₂ M₂) : map f (comap f q) ≤ q
Full source
theorem map_comap_le [RingHomSurjective σ₁₂] (f : F) (q : Submodule R₂ M₂) :
    map f (comap f q) ≤ q :=
  (gc_map_comap f).l_u_le _
Pushforward-Pullback Inclusion for Submodules under Surjective Linear Maps
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, connected by a ring homomorphism $\sigma_{12} : R \to R₂$. For any surjective semilinear map $f : M \to M₂$ and any submodule $q \subseteq M₂$, the pushforward of the pullback of $q$ along $f$ is contained in $q$, i.e., \[ f(f^{-1}(q)) \subseteq q. \]
Submodule.le_comap_map theorem
[RingHomSurjective σ₁₂] (f : F) (p : Submodule R M) : p ≤ comap f (map f p)
Full source
theorem le_comap_map [RingHomSurjective σ₁₂] (f : F) (p : Submodule R M) : p ≤ comap f (map f p) :=
  (gc_map_comap f).le_u_l _
Submodule containment in preimage of its image under a linear map
Informal description
For any linear map $f \colon M \to M₂$ between modules over semirings $R$ and $R₂$ (with a ring homomorphism $\sigma_{12} \colon R \to R₂$), and any submodule $p \subseteq M$, the submodule $p$ is contained in the pullback of its pushforward under $f$. That is, \[ p \subseteq f^{-1}(f(p)), \] where $f^{-1}(f(p))$ denotes the preimage of $f(p)$ under $f$.
Submodule.submoduleOf definition
(p q : Submodule R M) : Submodule R q
Full source
/-- For any `R` submodules `p` and `q`, `p ⊓ q` as a submodule of `q`. -/
def submoduleOf (p q : Submodule R M) : Submodule R q :=
  Submodule.comap q.subtype p
Intersection of submodules as a submodule
Informal description
For any submodules \( p \) and \( q \) of a module \( M \) over a semiring \( R \), the submodule \( p \cap q \) viewed as a submodule of \( q \). More precisely, this is the pullback of \( p \) along the inclusion map \( q \hookrightarrow M \), which consists of all elements of \( q \) that also belong to \( p \).
Submodule.submoduleOfEquivOfLe definition
{p q : Submodule R M} (h : p ≤ q) : p.submoduleOf q ≃ₗ[R] p
Full source
/-- If `p ≤ q`, then `p` as a subgroup of `q` is isomorphic to `p`. -/
def submoduleOfEquivOfLe {p q : Submodule R M} (h : p ≤ q) : p.submoduleOf q ≃ₗ[R] p where
  toFun m := ⟨m.1, m.2⟩
  invFun m := ⟨⟨m.1, h m.2⟩, m.2⟩
  left_inv _ := Subtype.ext rfl
  right_inv _ := Subtype.ext rfl
  map_add' _ _ := rfl
  map_smul' _ _ := rfl
Linear isomorphism between a submodule and its restriction to a containing submodule
Informal description
Given two submodules \( p \) and \( q \) of a module \( M \) over a semiring \( R \), if \( p \) is contained in \( q \) (i.e., \( p \leq q \)), then the submodule \( p \) viewed as a submodule of \( q \) is linearly isomorphic to \( p \) itself. More precisely, the isomorphism \( p.\text{submoduleOf} q \simeqₗ[R] p \) is given by: - The forward map sends \( x \in p \cap q \) to \( x \in p \) - The inverse map sends \( x \in p \) to \( x \) viewed as an element of \( q \) (which is valid since \( p \leq q \)) - Both maps are linear and preserve the module structure.
Submodule.giMapComap definition
(hf : Surjective f) : GaloisInsertion (map f) (comap f)
Full source
/-- `map f` and `comap f` form a `GaloisInsertion` when `f` is surjective. -/
def giMapComap (hf : Surjective f) : GaloisInsertion (map f) (comap f) :=
  (gc_map_comap f).toGaloisInsertion fun S x hx => by
    rcases hf x with ⟨y, rfl⟩
    simp only [mem_map, mem_comap]
    exact ⟨y, hx, rfl⟩
Galois insertion between submodule pushforward and pullback for surjective linear maps
Informal description
Given a surjective linear map \( f : M \to M₂ \) between modules over semirings \( R \) and \( R₂ \) respectively, the pair of functions \( \text{map}(f) \) (pushforward) and \( \text{comap}(f) \) (pullback) forms a Galois insertion between the complete lattices of submodules of \( M \) and \( M₂ \). This means: 1. \( \text{map}(f) \) and \( \text{comap}(f) \) form a Galois connection (i.e., \( \text{map}(f)(p) \subseteq q \leftrightarrow p \subseteq \text{comap}(f)(q) \) for all submodules \( p \subseteq M \) and \( q \subseteq M₂ \)) 2. The composition \( \text{map}(f) \circ \text{comap}(f) \) is the identity on submodules of \( M₂ \)
Submodule.map_comap_eq_of_surjective theorem
(p : Submodule R₂ M₂) : (p.comap f).map f = p
Full source
theorem map_comap_eq_of_surjective (p : Submodule R₂ M₂) : (p.comap f).map f = p :=
  (giMapComap hf).l_u_eq _
Pushforward-Pullback Identity for Submodules under Surjective Linear Maps
Informal description
For any submodule $p$ of $M₂$ and a surjective linear map $f : M \to M₂$, the pushforward of the pullback of $p$ along $f$ equals $p$ itself, i.e., $\text{map}(f, \text{comap}(f, p)) = p$.
Submodule.map_surjective_of_surjective theorem
: Function.Surjective (map f)
Full source
theorem map_surjective_of_surjective : Function.Surjective (map f) :=
  (giMapComap hf).l_surjective
Surjectivity of Submodule Pushforward for Surjective Linear Maps
Informal description
Given a surjective linear map $f : M \to M₂$ between modules over semirings $R$ and $R₂$ respectively, the pushforward map $\text{map}(f) : \text{Submodule}(R, M) \to \text{Submodule}(R₂, M₂)$ is surjective. That is, for every submodule $p \subseteq M₂$, there exists a submodule $q \subseteq M$ such that $\text{map}(f, q) = p$.
Submodule.comap_injective_of_surjective theorem
: Function.Injective (comap f)
Full source
theorem comap_injective_of_surjective : Function.Injective (comap f) :=
  (giMapComap hf).u_injective
Injectivity of Submodule Pullback for Surjective Linear Maps
Informal description
For a surjective linear map $f \colon M \to M₂$ between modules over semirings $R$ and $R₂$ respectively, the pullback operation $\text{comap}(f) \colon \text{Submodule}(R₂, M₂) \to \text{Submodule}(R, M)$ is injective. That is, for any two submodules $p, q \subseteq M₂$, if $\text{comap}(f)(p) = \text{comap}(f)(q)$, then $p = q$.
Submodule.map_sup_comap_of_surjective theorem
(p q : Submodule R₂ M₂) : (p.comap f ⊔ q.comap f).map f = p ⊔ q
Full source
theorem map_sup_comap_of_surjective (p q : Submodule R₂ M₂) :
    (p.comap f ⊔ q.comap f).map f = p ⊔ q :=
  (giMapComap hf).l_sup_u _ _
Pushforward of Supremum of Pullbacks Equals Supremum for Surjective Linear Maps
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, and let $f : M \to M₂$ be a surjective linear map. For any two submodules $p, q \subseteq M₂$, the pushforward of the supremum of their pullbacks equals the supremum of $p$ and $q$, i.e., $$f(\text{comap}(f, p) \sqcup \text{comap}(f, q)) = p \sqcup q.$$
Submodule.map_iSup_comap_of_sujective theorem
{ι : Sort*} (S : ι → Submodule R₂ M₂) : (⨆ i, (S i).comap f).map f = iSup S
Full source
theorem map_iSup_comap_of_sujective {ι : Sort*} (S : ι → Submodule R₂ M₂) :
    (⨆ i, (S i).comap f).map f = iSup S :=
  (giMapComap hf).l_iSup_u _
Pushforward of Supremum of Pullbacks Equals Supremum for Surjective Linear Maps
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, and let $f : M \to M₂$ be a surjective linear map. For any family of submodules $(S_i)_{i \in \iota}$ of $M₂$, the pushforward of the supremum of their pullbacks equals the supremum of the submodules: \[ f\left(\bigsqcup_{i \in \iota} f^{-1}(S_i)\right) = \bigsqcup_{i \in \iota} S_i. \]
Submodule.map_inf_comap_of_surjective theorem
(p q : Submodule R₂ M₂) : (p.comap f ⊓ q.comap f).map f = p ⊓ q
Full source
theorem map_inf_comap_of_surjective (p q : Submodule R₂ M₂) :
    (p.comap f ⊓ q.comap f).map f = p ⊓ q :=
  (giMapComap hf).l_inf_u _ _
Image of Intersection of Pullbacks Equals Intersection for Surjective Linear Maps
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, and let $f : M \to M₂$ be a surjective linear map. For any two submodules $p, q \subseteq M₂$, the image under $f$ of the intersection of their pullbacks equals the intersection of $p$ and $q$, i.e., $$f(p \cap f^{-1}(q)) = p \cap q.$$
Submodule.map_iInf_comap_of_surjective theorem
{ι : Sort*} (S : ι → Submodule R₂ M₂) : (⨅ i, (S i).comap f).map f = iInf S
Full source
theorem map_iInf_comap_of_surjective {ι : Sort*} (S : ι → Submodule R₂ M₂) :
    (⨅ i, (S i).comap f).map f = iInf S :=
  (giMapComap hf).l_iInf_u _
Pushforward-Pullback Infimum Identity for Surjective Linear Maps
Informal description
Let $f : M \to M₂$ be a surjective linear map between modules over semirings $R$ and $R₂$ respectively. For any family of submodules $(S_i)_{i \in \iota}$ of $M₂$, the pushforward of the infimum of their pullbacks equals the infimum of the family: \[ f\left(\bigcap_{i} f^{-1}(S_i)\right) = \bigcap_{i} S_i. \]
Submodule.comap_le_comap_iff_of_surjective theorem
{p q : Submodule R₂ M₂} : p.comap f ≤ q.comap f ↔ p ≤ q
Full source
theorem comap_le_comap_iff_of_surjective {p q : Submodule R₂ M₂} : p.comap f ≤ q.comap f ↔ p ≤ q :=
  (giMapComap hf).u_le_u_iff
Pullback Order-Preserving Property for Surjective Linear Maps: $f^{-1}(p) \subseteq f^{-1}(q) \leftrightarrow p \subseteq q$
Informal description
For any submodules $p, q$ of $M₂$ and a surjective linear map $f : M \to M₂$, the pullback of $p$ along $f$ is contained in the pullback of $q$ along $f$ if and only if $p$ is contained in $q$. That is, $f^{-1}(p) \subseteq f^{-1}(q) \leftrightarrow p \subseteq q$.
Submodule.comap_lt_comap_iff_of_surjective theorem
{p q : Submodule R₂ M₂} : p.comap f < q.comap f ↔ p < q
Full source
lemma comap_lt_comap_iff_of_surjective {p q : Submodule R₂ M₂} : p.comap f < q.comap f ↔ p < q := by
  apply lt_iff_lt_of_le_iff_le' <;> exact comap_le_comap_iff_of_surjective hf
Strict Pullback Order-Preserving Property for Surjective Linear Maps: $f^{-1}(p) \subsetneq f^{-1}(q) \leftrightarrow p \subsetneq q$
Informal description
For any submodules $p, q$ of $M₂$ and a surjective linear map $f \colon M \to M₂$, the pullback of $p$ along $f$ is strictly contained in the pullback of $q$ along $f$ if and only if $p$ is strictly contained in $q$. That is, $f^{-1}(p) \subsetneq f^{-1}(q) \leftrightarrow p \subsetneq q$.
Submodule.comap_strictMono_of_surjective theorem
: StrictMono (comap f)
Full source
theorem comap_strictMono_of_surjective : StrictMono (comap f) :=
  (giMapComap hf).strictMono_u
Strict Monotonicity of Submodule Pullback for Surjective Linear Maps
Informal description
For a surjective linear map $f \colon M \to M_2$ between modules over semirings $R$ and $R_2$ respectively, the pullback operation $\text{comap}(f) \colon \text{Submodule}(R_2, M_2) \to \text{Submodule}(R, M)$ is strictly monotone. That is, for any submodules $p, q \subseteq M_2$, if $p < q$ then $\text{comap}(f)(p) < \text{comap}(f)(q)$.
Submodule.le_map_of_comap_le_of_surjective theorem
(h : q.comap f ≤ p) : q ≤ p.map f
Full source
theorem le_map_of_comap_le_of_surjective (h : q.comap f ≤ p) : q ≤ p.map f :=
  map_comap_eq_of_surjective hf q ▸ map_mono h
Inclusion of Submodules under Surjective Linear Maps: Pullback Condition Implies Pushforward Inclusion
Informal description
Let $f : M \to M_2$ be a surjective linear map between modules over semirings $R$ and $R_2$ respectively. For any submodules $p \subseteq M$ and $q \subseteq M_2$, if the pullback of $q$ along $f$ is contained in $p$, then $q$ is contained in the pushforward of $p$ along $f$. In other words, if $\text{comap}(f, q) \subseteq p$, then $q \subseteq \text{map}(f, p)$.
Submodule.lt_map_of_comap_lt_of_surjective theorem
(h : q.comap f < p) : q < p.map f
Full source
theorem lt_map_of_comap_lt_of_surjective (h : q.comap f < p) : q < p.map f := by
  rw [lt_iff_le_not_le] at h ⊢; rw [map_le_iff_le_comap]
  exact h.imp_left (le_map_of_comap_le_of_surjective hf)
Strict inclusion preservation under surjective linear maps: $f^{-1}(q) \subsetneq p$ implies $q \subsetneq f(p)$
Informal description
Let $f : M \to M_2$ be a surjective linear map between modules over semirings $R$ and $R_2$ respectively. For any submodules $p \subseteq M$ and $q \subseteq M_2$, if the pullback of $q$ along $f$ is strictly contained in $p$, then $q$ is strictly contained in the pushforward of $p$ along $f$. In other words, if $f^{-1}(q) \subsetneq p$, then $q \subsetneq f(p)$.
Submodule.gciMapComap definition
(hf : Injective f) : GaloisCoinsertion (map f) (comap f)
Full source
/-- `map f` and `comap f` form a `GaloisCoinsertion` when `f` is injective. -/
def gciMapComap (hf : Injective f) : GaloisCoinsertion (map f) (comap f) :=
  (gc_map_comap f).toGaloisCoinsertion fun S x => by
    simp only [mem_comap, mem_map, forall_exists_index, and_imp]
    intro y hy hxy
    rw [hf.eq_iff] at hxy
    rwa [← hxy]
Galois coinsertion between submodule pushforward and pullback for injective linear maps
Informal description
Given an injective linear map \( f : M \to M₂ \) between modules over semirings \( R \) and \( R₂ \) respectively, the functions \(\text{map}(f)\) (pushforward) and \(\text{comap}(f)\) (pullback) form a Galois coinsertion between the complete lattices of submodules of \( M \) and \( M₂ \). This means: 1. They form a Galois connection: \(\text{map}(f)(p) \subseteq q \leftrightarrow p \subseteq \text{comap}(f)(q)\) for any submodules \( p \subseteq M \) and \( q \subseteq M₂ \). 2. The composition \(\text{comap}(f) \circ \text{map}(f)\) is the identity on submodules of \( M \).
Submodule.comap_map_eq_of_injective theorem
(p : Submodule R M) : (p.map f).comap f = p
Full source
theorem comap_map_eq_of_injective (p : Submodule R M) : (p.map f).comap f = p :=
  (gciMapComap hf).u_l_eq _
Pullback-Pushforward Identity for Injective Linear Maps: $f^{-1}(f(p)) = p$
Informal description
Let $f : M \to M₂$ be an injective linear map between modules over semirings $R$ and $R₂$ respectively. For any submodule $p$ of $M$, the pullback of the pushforward of $p$ along $f$ equals $p$ itself, i.e., $f^{-1}(f(p)) = p$.
Submodule.comap_surjective_of_injective theorem
: Function.Surjective (comap f)
Full source
theorem comap_surjective_of_injective : Function.Surjective (comap f) :=
  (gciMapComap hf).u_surjective
Surjectivity of Submodule Pullback for Injective Linear Maps
Informal description
If $f : M \to M_2$ is an injective linear map between modules over semirings $R$ and $R_2$ respectively, then the pullback operation $\text{comap}(f) : \text{Submodule}(R_2, M_2) \to \text{Submodule}(R, M)$ is surjective. That is, for every submodule $p \subseteq M$, there exists a submodule $q \subseteq M_2$ such that $\text{comap}(f)(q) = p$.
Submodule.map_injective_of_injective theorem
: Function.Injective (map f)
Full source
theorem map_injective_of_injective : Function.Injective (map f) :=
  (gciMapComap hf).l_injective
Injectivity of Submodule Pushforward for Injective Linear Maps
Informal description
If a linear map $f \colon M \to M_2$ between modules over semirings $R$ and $R_2$ is injective, then the pushforward map $\text{map}(f) \colon \text{Submodule}(R, M) \to \text{Submodule}(R_2, M_2)$ is injective. That is, for any submodules $p, q \subseteq M$, if $\text{map}(f)(p) = \text{map}(f)(q)$, then $p = q$.
Submodule.comap_inf_map_of_injective theorem
(p q : Submodule R M) : (p.map f ⊓ q.map f).comap f = p ⊓ q
Full source
theorem comap_inf_map_of_injective (p q : Submodule R M) : (p.map f ⊓ q.map f).comap f = p ⊓ q :=
  (gciMapComap hf).u_inf_l _ _
Pullback of Intersection of Pushforwards Equals Intersection for Injective Linear Maps
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, and let $f : M \to M₂$ be an injective linear map. For any two submodules $p, q \subseteq M$, the pullback of the infimum of their pushforwards equals the infimum of $p$ and $q$, i.e., $$(f(p) \cap f(q)) \cap f^{-1} = p \cap q$$ where $f(p)$ denotes the image of $p$ under $f$, and $f^{-1}$ denotes the preimage operation.
Submodule.comap_iInf_map_of_injective theorem
{ι : Sort*} (S : ι → Submodule R M) : (⨅ i, (S i).map f).comap f = iInf S
Full source
theorem comap_iInf_map_of_injective {ι : Sort*} (S : ι → Submodule R M) :
    (⨅ i, (S i).map f).comap f = iInf S :=
  (gciMapComap hf).u_iInf_l _
Pullback of Infimum of Pushforwards Equals Infimum of Submodules for Injective Linear Maps
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, and let $f : M \to M₂$ be an injective linear map. For any family of submodules $(S_i)_{i \in \iota}$ of $M$, the pullback of the infimum of their pushforwards equals the infimum of the original submodules: \[ f^{-1}\left(\bigcap_{i} f(S_i)\right) = \bigcap_{i} S_i. \]
Submodule.comap_sup_map_of_injective theorem
(p q : Submodule R M) : (p.map f ⊔ q.map f).comap f = p ⊔ q
Full source
theorem comap_sup_map_of_injective (p q : Submodule R M) : (p.map f ⊔ q.map f).comap f = p ⊔ q :=
  (gciMapComap hf).u_sup_l _ _
Pullback Preserves Supremum of Pushforwards for Injective Linear Maps
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, and let $f : M \to M₂$ be an injective linear map. For any two submodules $p, q \subseteq M$, the pullback of the supremum of their pushforwards equals the supremum of $p$ and $q$, i.e., \[ f^{-1}(f(p) \vee f(q)) = p \vee q, \] where $f(p)$ denotes the image of $p$ under $f$, $f^{-1}$ denotes the preimage operation, and $\vee$ denotes the supremum of submodules.
Submodule.comap_iSup_map_of_injective theorem
{ι : Sort*} (S : ι → Submodule R M) : (⨆ i, (S i).map f).comap f = iSup S
Full source
theorem comap_iSup_map_of_injective {ι : Sort*} (S : ι → Submodule R M) :
    (⨆ i, (S i).map f).comap f = iSup S :=
  (gciMapComap hf).u_iSup_l _
Pullback of Supremum of Pushforwards Equals Supremum of Submodules for Injective Linear Maps
Informal description
Let $M$ and $M_2$ be modules over semirings $R$ and $R_2$ respectively, and let $f : M \to M_2$ be an injective linear map. For any family of submodules $(S_i)_{i \in \iota}$ of $M$, the pullback of the supremum of their pushforwards equals the supremum of the original submodules: \[ f^{-1}\left(\bigvee_{i} f(S_i)\right) = \bigvee_{i} S_i. \]
Submodule.map_le_map_iff_of_injective theorem
(p q : Submodule R M) : p.map f ≤ q.map f ↔ p ≤ q
Full source
theorem map_le_map_iff_of_injective (p q : Submodule R M) : p.map f ≤ q.map f ↔ p ≤ q :=
  (gciMapComap hf).l_le_l_iff
Inclusion Preservation of Submodule Pushforward under Injective Linear Maps: $f(p) \subseteq f(q) \leftrightarrow p \subseteq q$
Informal description
Let $f : M \to M_2$ be an injective linear map between modules over semirings $R$ and $R_2$ respectively. For any submodules $p, q \subseteq M$, the pushforward submodule $f(p)$ is contained in $f(q)$ if and only if $p$ is contained in $q$. In other words, $f(p) \subseteq f(q) \leftrightarrow p \subseteq q$.
Submodule.map_strictMono_of_injective theorem
: StrictMono (map f)
Full source
theorem map_strictMono_of_injective : StrictMono (map f) :=
  (gciMapComap hf).strictMono_l
Strict Monotonicity of Submodule Pushforward for Injective Linear Maps
Informal description
If $f : M \to M_2$ is an injective linear map between modules over semirings $R$ and $R_2$ respectively, then the pushforward map $\text{map}(f) : \text{Submodule}(R, M) \to \text{Submodule}(R_2, M_2)$ is strictly monotone. That is, for any submodules $p, q \subseteq M$, if $p \subsetneq q$, then $\text{map}(f, p) \subsetneq \text{map}(f, q)$.
Submodule.map_lt_map_iff_of_injective theorem
{p q : Submodule R M} : p.map f < q.map f ↔ p < q
Full source
lemma map_lt_map_iff_of_injective {p q : Submodule R M} :
    p.map f < q.map f ↔ p < q := by
  rw [lt_iff_le_and_ne, lt_iff_le_and_ne, map_le_map_iff_of_injective hf,
    (map_injective_of_injective hf).ne_iff]
Strict Inclusion Preservation of Submodule Pushforward under Injective Linear Maps: $f(p) \subsetneq f(q) \leftrightarrow p \subsetneq q$
Informal description
Let $f \colon M \to M_2$ be an injective linear map between modules over semirings $R$ and $R_2$ respectively. For any submodules $p, q \subseteq M$, the pushforward submodule $f(p)$ is strictly contained in $f(q)$ if and only if $p$ is strictly contained in $q$. In other words, $f(p) \subsetneq f(q) \leftrightarrow p \subsetneq q$.
Submodule.comap_lt_of_lt_map_of_injective theorem
{p : Submodule R M} {q : Submodule R₂ M₂} (h : q < p.map f) : q.comap f < p
Full source
lemma comap_lt_of_lt_map_of_injective {p : Submodule R M} {q : Submodule R₂ M₂}
    (h : q < p.map f) : q.comap f < p := by
  rw [← map_lt_map_iff_of_injective hf]
  exact (map_comap_le _ _).trans_lt h
Strict Pullback Inclusion under Injective Linear Maps: $q \subsetneq f(p) \Rightarrow f^{-1}(q) \subsetneq p$
Informal description
Let $f \colon M \to M_2$ be an injective linear map between modules over semirings $R$ and $R_2$ respectively. For any submodule $p \subseteq M$ and any submodule $q \subseteq M_2$, if $q$ is strictly contained in the pushforward $f(p)$, then the pullback $f^{-1}(q)$ is strictly contained in $p$. In other words, $q \subsetneq f(p)$ implies $f^{-1}(q) \subsetneq p$.
Submodule.map_covBy_of_injective theorem
{p q : Submodule R M} (h : p ⋖ q) : p.map f ⋖ q.map f
Full source
lemma map_covBy_of_injective {p q : Submodule R M} (h : p ⋖ q) :
    p.map f ⋖ q.map f := by
  refine ⟨lt_of_le_of_ne (map_mono h.1.le) ((map_injective_of_injective hf).ne h.1.ne), ?_⟩
  intro P h₁ h₂
  refine h.2 ?_ (Submodule.comap_lt_of_lt_map_of_injective hf h₂)
  rw [← Submodule.map_lt_map_iff_of_injective hf]
  refine h₁.trans_le ?_
  exact (Set.image_preimage_eq_of_subset (.trans h₂.le (Set.image_subset_range _ _))).superset
Covering Relation Preservation under Injective Linear Maps: $p \lessdot q \Rightarrow f(p) \lessdot f(q)$
Informal description
Let $f \colon M \to M_2$ be an injective linear map between modules over semirings $R$ and $R_2$ respectively. For any submodules $p, q \subseteq M$ such that $q$ covers $p$ (i.e., $p \subsetneq q$ and there is no submodule strictly between them), the pushforward submodule $f(q)$ covers $f(p)$ in $M_2$.
Submodule.orderIsoMapComapOfBijective definition
[FunLike F M M₂] [SemilinearMapClass F σ₁₂ M M₂] (f : F) (hf : Bijective f) : Submodule R M ≃o Submodule R₂ M₂
Full source
/-- A linear isomorphism induces an order isomorphism of submodules. -/
@[simps symm_apply apply]
def orderIsoMapComapOfBijective [FunLike F M M₂] [SemilinearMapClass F σ₁₂ M M₂]
    (f : F) (hf : Bijective f) : SubmoduleSubmodule R M ≃o Submodule R₂ M₂ where
  toFun := map f
  invFun := comap f
  left_inv := comap_map_eq_of_injective hf.injective
  right_inv := map_comap_eq_of_surjective hf.surjective
  map_rel_iff' := map_le_map_iff_of_injective hf.injective _ _
Order isomorphism between submodule lattices induced by a bijective semilinear map
Informal description
Given a bijective semilinear map \( f : M \to M₂ \) between modules over semirings \( R \) and \( R₂ \) (connected by a ring homomorphism \( \sigma_{12} : R \to R₂ \)), the functions `map f` and `comap f` induce an order isomorphism between the lattices of submodules of \( M \) and \( M₂ \). Specifically: - The forward map sends a submodule \( p \subseteq M \) to its image \( f(p) \subseteq M₂ \) - The inverse map sends a submodule \( q \subseteq M₂ \) to its preimage \( f^{-1}(q) \subseteq M \) - This correspondence preserves the inclusion order of submodules in both directions
Submodule.orderIsoMapComap definition
[EquivLike F M M₂] [SemilinearMapClass F σ₁₂ M M₂] (f : F) : Submodule R M ≃o Submodule R₂ M₂
Full source
/-- A linear isomorphism induces an order isomorphism of submodules. -/
@[simps! apply]
def orderIsoMapComap [EquivLike F M M₂] [SemilinearMapClass F σ₁₂ M M₂] (f : F) :
    SubmoduleSubmodule R M ≃o Submodule R₂ M₂ := orderIsoMapComapOfBijective f (EquivLike.bijective f)
Order isomorphism of submodule lattices induced by a linear isomorphism
Informal description
Given a linear isomorphism \( f : M \to M₂ \) between modules over semirings \( R \) and \( R₂ \) (connected by a ring homomorphism \( \sigma_{12} : R \to R₂ \)), the functions mapping submodules \( p \subseteq M \) to their images \( f(p) \subseteq M₂ \) and pulling back submodules \( q \subseteq M₂ \) to their preimages \( f^{-1}(q) \subseteq M \) form an order isomorphism between the lattices of submodules of \( M \) and \( M₂ \). This isomorphism preserves the inclusion order of submodules in both directions.
Submodule.orderIsoMapComap_symm_apply theorem
[EquivLike F M M₂] [SemilinearMapClass F σ₁₂ M M₂] (f : F) (p : Submodule R₂ M₂) : (orderIsoMapComap f).symm p = comap f p
Full source
@[simp]
lemma orderIsoMapComap_symm_apply [EquivLike F M M₂] [SemilinearMapClass F σ₁₂ M M₂]
    (f : F) (p : Submodule R₂ M₂) :
    (orderIsoMapComap f).symm p = comap f p :=
  rfl
Inverse Order Isomorphism Maps to Preimage Submodule
Informal description
Given a linear isomorphism $f : M \to M₂$ between modules over semirings $R$ and $R₂$ (connected by a ring homomorphism $\sigma_{12} : R \to R₂$), the inverse of the order isomorphism between submodule lattices maps a submodule $p \subseteq M₂$ to its preimage under $f$, i.e., $(f^*)^{-1}(p) = f^{-1}(p)$, where $f^*$ denotes the order isomorphism between submodule lattices induced by $f$.
Submodule.map_eq_bot_iff theorem
: p.map e = ⊥ ↔ p = ⊥
Full source
@[simp] protected lemma map_eq_bot_iff : p.map e = ⊥ ↔ p = ⊥ := map_eq_bot_iff (orderIsoMapComap e)
Pushforward to Zero Submodule Characterization via Linear Equivalence
Informal description
For a linear equivalence $e : M \to M₂$ and a submodule $p \subseteq M$, the pushforward submodule $e(p)$ is equal to the zero submodule $\{0\}$ if and only if $p$ itself is the zero submodule $\{0\}$.
Submodule.map_eq_top_iff theorem
: p.map e = ⊤ ↔ p = ⊤
Full source
@[simp] protected lemma map_eq_top_iff : p.map e = ⊤ ↔ p = ⊤ := map_eq_top_iff (orderIsoMapComap e)
Pushforward of Submodule is Entire Module if and only if Original Submodule is Entire Module
Informal description
For a linear equivalence $e : M \to M₂$ between modules and a submodule $p \subseteq M$, the pushforward submodule $e(p)$ equals the entire module $M₂$ if and only if $p$ equals the entire module $M$.
Submodule.map_ne_bot_iff theorem
: p.map e ≠ ⊥ ↔ p ≠ ⊥
Full source
protected lemma map_ne_bot_iff : p.map e ≠ ⊥p.map e ≠ ⊥ ↔ p ≠ ⊥ := by simp
Non-triviality Preservation under Linear Equivalence Pushforward
Informal description
For a linear equivalence $e : M \to M₂$ and a submodule $p \subseteq M$, the pushforward submodule $e(p)$ is not the zero submodule if and only if $p$ itself is not the zero submodule.
Submodule.map_ne_top_iff theorem
: p.map e ≠ ⊤ ↔ p ≠ ⊤
Full source
protected lemma map_ne_top_iff : p.map e ≠ ⊤p.map e ≠ ⊤ ↔ p ≠ ⊤ := by simp
Pushforward of Submodule is Proper if and only if Original Submodule is Proper
Informal description
For a linear equivalence $e : M \to M₂$ between modules and a submodule $p \subseteq M$, the pushforward submodule $e(p) \subseteq M₂$ is not equal to the entire module $M₂$ if and only if $p$ is not equal to the entire module $M$.
Submodule.map_inf_eq_map_inf_comap theorem
[RingHomSurjective σ₁₂] {f : F} {p : Submodule R M} {p' : Submodule R₂ M₂} : map f p ⊓ p' = map f (p ⊓ comap f p')
Full source
theorem map_inf_eq_map_inf_comap [RingHomSurjective σ₁₂] {f : F} {p : Submodule R M}
    {p' : Submodule R₂ M₂} : mapmap f p ⊓ p' = map f (p ⊓ comap f p') :=
  le_antisymm (by rintro _ ⟨⟨x, h₁, rfl⟩, h₂⟩; exact ⟨_, ⟨h₁, h₂⟩, rfl⟩)
    (le_inf (map_mono inf_le_left) (map_le_iff_le_comap.2 inf_le_right))
Intersection-Pushforward-Pullback Identity for Submodules under Surjective Linear Maps
Informal description
Let $R$ and $R_2$ be semirings, $M$ an $R$-module, $M_2$ an $R_2$-module, and $f : M \to M_2$ a surjective semilinear map. For any submodules $p \subseteq M$ and $p' \subseteq M_2$, the intersection of the pushforward $f(p)$ with $p'$ equals the pushforward of the intersection of $p$ with the pullback $f^{-1}(p')$. In symbols: \[ f(p) \cap p' = f(p \cap f^{-1}(p')). \]
Submodule.map_comap_subtype theorem
: map p.subtype (comap p.subtype p') = p ⊓ p'
Full source
@[simp]
theorem map_comap_subtype : map p.subtype (comap p.subtype p') = p ⊓ p' :=
  ext fun x => ⟨by rintro ⟨⟨_, h₁⟩, h₂, rfl⟩; exact ⟨h₁, h₂⟩, fun ⟨h₁, h₂⟩ => ⟨⟨_, h₁⟩, h₂, rfl⟩⟩
Pushforward-Pullback Identity for Submodule Inclusion: $\text{map } \iota (\text{comap } \iota \ p') = p \cap p'$
Informal description
Let $M$ be a module over a semiring $R$, and let $p$ and $p'$ be submodules of $M$. Then the pushforward of the pullback of $p'$ under the inclusion map $p \hookrightarrow M$ is equal to the intersection of $p$ and $p'$. More formally, if $\iota : p \hookrightarrow M$ denotes the inclusion map, then: \[ \text{map } \iota (\text{comap } \iota \ p') = p \cap p' \]
LinearMap.iInf_invariant theorem
{σ : R →+* R} [RingHomSurjective σ] {ι : Sort*} (f : M →ₛₗ[σ] M) {p : ι → Submodule R M} (hf : ∀ i, ∀ v ∈ p i, f v ∈ p i) : ∀ v ∈ iInf p, f v ∈ iInf p
Full source
/-- The infimum of a family of invariant submodule of an endomorphism is also an invariant
submodule. -/
theorem _root_.LinearMap.iInf_invariant {σ : R →+* R} [RingHomSurjective σ] {ι : Sort*}
    (f : M →ₛₗ[σ] M) {p : ι → Submodule R M} (hf : ∀ i, ∀ v ∈ p i, f v ∈ p i) :
    ∀ v ∈ iInf p, f v ∈ iInf p := by
  have : ∀ i, (p i).map f ≤ p i := by
    rintro i - ⟨v, hv, rfl⟩
    exact hf i v hv
  suffices (iInf p).map f ≤ iInf p by exact fun v hv => this ⟨v, hv, rfl⟩
  exact le_iInf fun i => (Submodule.map_mono (iInf_le p i)).trans (this i)
Infimum of Invariant Submodules is Invariant under Linear Endomorphism
Informal description
Let $R$ be a semiring and $M$ be an $R$-module. Given a family of submodules $\{p_i\}_{i \in \iota}$ of $M$ indexed by a type $\iota$, and a $\sigma$-linear endomorphism $f : M \to M$ (where $\sigma : R \to R$ is a ring homomorphism) such that each $p_i$ is $f$-invariant (i.e., for all $v \in p_i$, we have $f(v) \in p_i$), then the infimum $\bigsqcap_i p_i$ is also $f$-invariant. That is, for any $v \in \bigsqcap_i p_i$, we have $f(v) \in \bigsqcap_i p_i$.
Submodule.disjoint_iff_comap_eq_bot theorem
{p q : Submodule R M} : Disjoint p q ↔ comap p.subtype q = ⊥
Full source
theorem disjoint_iff_comap_eq_bot {p q : Submodule R M} : DisjointDisjoint p q ↔ comap p.subtype q = ⊥ := by
  rw [← (map_injective_of_injective (show Injective p.subtype from Subtype.coe_injective)).eq_iff,
    map_comap_subtype, map_bot, disjoint_iff]
Disjointness Criterion for Submodules via Pullback: $p \cap q = \{0\} \iff \text{comap } \iota \ q = \{0\}$
Informal description
Two submodules $p$ and $q$ of an $R$-module $M$ are disjoint (i.e., $p \cap q = \{0\}$) if and only if the pullback of $q$ under the inclusion map $p \hookrightarrow M$ is the zero submodule of $p$. More formally, let $\iota : p \hookrightarrow M$ be the inclusion map. Then: \[ p \cap q = \{0\} \iff \text{comap } \iota \ q = \{0\} \]
Submodule.map_neg theorem
(f : M →ₗ[R] M₂) : map (-f) p = map f p
Full source
@[simp]
protected theorem map_neg (f : M →ₗ[R] M₂) : map (-f) p = map f p :=
  ext fun _ =>
    ⟨fun ⟨x, hx, hy⟩ => hy ▸ ⟨-x, show -x ∈ p from neg_mem hx, map_neg f x⟩, fun ⟨x, hx, hy⟩ =>
      hy ▸ ⟨-x, show -x ∈ p from neg_mem hx, (map_neg (-f) _).trans (neg_neg (f x))⟩⟩
Pushforward Invariance Under Negation of Linear Map
Informal description
For any linear map $f \colon M \to M₂$ between modules over a semiring $R$, and any submodule $p \subseteq M$, the pushforward of $p$ under $-f$ is equal to the pushforward of $p$ under $f$, i.e., $\text{map}(-f, p) = \text{map}(f, p)$.
Submodule.comap_neg theorem
{f : M →ₗ[R] M₂} {p : Submodule R M₂} : p.comap (-f) = p.comap f
Full source
@[simp]
lemma comap_neg {f : M →ₗ[R] M₂} {p : Submodule R M₂} :
    p.comap (-f) = p.comap f := by
  ext; simp
Pullback Submodule Invariance under Negation of Linear Map
Informal description
For any linear map $f \colon M \to M₂$ between modules over a semiring $R$ and any submodule $p \subseteq M₂$, the pullback submodule along $-f$ is equal to the pullback submodule along $f$, i.e., $p.\text{comap}(-f) = p.\text{comap}(f)$.
Submodule.map_toAddSubgroup theorem
(f : M →ₗ[R] M₂) (p : Submodule R M) : (p.map f).toAddSubgroup = p.toAddSubgroup.map (f : M →+ M₂)
Full source
lemma map_toAddSubgroup (f : M →ₗ[R] M₂) (p : Submodule R M) :
    (p.map f).toAddSubgroup = p.toAddSubgroup.map (f : M →+ M₂) :=
  rfl
Compatibility of Submodule Pushforward with Additive Subgroup Pushforward
Informal description
Let $M$ and $M₂$ be modules over a semiring $R$, and let $f : M \to M₂$ be a linear map. For any submodule $p \subseteq M$, the additive subgroup corresponding to the pushforward submodule $\text{map}(f, p)$ is equal to the pushforward of the additive subgroup corresponding to $p$ under the additive group homomorphism induced by $f$. In symbols: \[ (\text{map}(f, p)).\text{toAddSubgroup} = \text{map}(f_{\text{add}}, p.\text{toAddSubgroup}) \] where $f_{\text{add}} : M \to M₂$ denotes $f$ viewed as an additive group homomorphism.
Submodule.comap_smul theorem
(f : V →ₗ[K] V₂) (p : Submodule K V₂) (a : K) (h : a ≠ 0) : p.comap (a • f) = p.comap f
Full source
theorem comap_smul (f : V →ₗ[K] V₂) (p : Submodule K V₂) (a : K) (h : a ≠ 0) :
    p.comap (a • f) = p.comap f := by
  ext b; simp only [Submodule.mem_comap, p.smul_mem_iff h, LinearMap.smul_apply]
Pullback Invariance under Scalar Multiplication of Linear Maps: $\text{comap}(a \cdot f, p) = \text{comap}(f, p)$ for $a \neq 0$
Informal description
Let $V$ and $V₂$ be modules over a field $K$, and let $f : V \to V₂$ be a linear map. For any submodule $p \subseteq V₂$ and any nonzero scalar $a \in K$, the pullback submodule of $p$ along the scaled linear map $a \cdot f$ is equal to the pullback submodule of $p$ along $f$. That is, \[ \text{comap}(a \cdot f, p) = \text{comap}(f, p). \]
Submodule.map_smul theorem
(f : V →ₗ[K] V₂) (p : Submodule K V) (a : K) (h : a ≠ 0) : p.map (a • f) = p.map f
Full source
protected theorem map_smul (f : V →ₗ[K] V₂) (p : Submodule K V) (a : K) (h : a ≠ 0) :
    p.map (a • f) = p.map f :=
  le_antisymm (by rw [map_le_iff_le_comap, comap_smul f _ a h, ← map_le_iff_le_comap])
    (by rw [map_le_iff_le_comap, ← comap_smul f _ a h, ← map_le_iff_le_comap])
Pushforward Invariance under Scalar Multiplication of Linear Maps: $\text{map}(a \cdot f, p) = \text{map}(f, p)$ for $a \neq 0$
Informal description
Let $V$ and $V₂$ be vector spaces over a field $K$, and let $f : V \to V₂$ be a linear map. For any submodule $p \subseteq V$ and any nonzero scalar $a \in K$, the pushforward submodule of $p$ under the scaled linear map $a \cdot f$ is equal to the pushforward submodule of $p$ under $f$. That is, \[ \text{map}(a \cdot f, p) = \text{map}(f, p). \]
Submodule.comap_smul' theorem
(f : V →ₗ[K] V₂) (p : Submodule K V₂) (a : K) : p.comap (a • f) = ⨅ _ : a ≠ 0, p.comap f
Full source
theorem comap_smul' (f : V →ₗ[K] V₂) (p : Submodule K V₂) (a : K) :
    p.comap (a • f) = ⨅ _ : a ≠ 0, p.comap f := by
  classical by_cases h : a = 0 <;> simp [h, comap_smul]
Pullback of Submodule under Scaled Linear Map as Infimum over Nonzero Condition
Informal description
Let $V$ and $V₂$ be vector spaces over a field $K$, and let $f : V \to V₂$ be a linear map. For any submodule $p \subseteq V₂$ and any scalar $a \in K$, the pullback submodule of $p$ along the scaled linear map $a \cdot f$ is equal to the infimum of the pullback submodule of $p$ along $f$ over all proofs that $a \neq 0$. That is, \[ \text{comap}(a \cdot f, p) = \bigsqcap_{h : a \neq 0} \text{comap}(f, p). \]
Submodule.map_smul' theorem
(f : V →ₗ[K] V₂) (p : Submodule K V) (a : K) : p.map (a • f) = ⨆ _ : a ≠ 0, map f p
Full source
theorem map_smul' (f : V →ₗ[K] V₂) (p : Submodule K V) (a : K) :
    p.map (a • f) = ⨆ _ : a ≠ 0, map f p := by
  classical by_cases h : a = 0 <;> simp [h, Submodule.map_smul]
Pushforward of Submodule under Scaled Linear Map as Supremum over Nonzero Condition
Informal description
Let $V$ and $V₂$ be vector spaces over a field $K$, and let $f : V \to V₂$ be a linear map. For any submodule $p \subseteq V$ and any scalar $a \in K$, the pushforward submodule of $p$ under the scaled linear map $a \cdot f$ is equal to the supremum of the pushforward submodule of $p$ under $f$ over all proofs that $a \neq 0$. That is, \[ \text{map}(a \cdot f, p) = \bigsqcup_{h : a \neq 0} \text{map}(f, p). \]
Submodule.comapSubtypeEquivOfLe definition
{p q : Submodule R M} (hpq : p ≤ q) : comap q.subtype p ≃ₗ[R] p
Full source
/-- If `s ≤ t`, then we can view `s` as a submodule of `t` by taking the comap
of `t.subtype`. -/
@[simps apply_coe symm_apply]
def comapSubtypeEquivOfLe {p q : Submodule R M} (hpq : p ≤ q) : comapcomap q.subtype p ≃ₗ[R] p where
  toFun x := ⟨x, x.2⟩
  invFun x := ⟨⟨x, hpq x.2⟩, x.2⟩
  left_inv x := by simp only [coe_mk, SetLike.eta, LinearEquiv.coe_coe]
  right_inv x := by simp only [Subtype.coe_mk, SetLike.eta, LinearEquiv.coe_coe]
  map_add' _ _ := rfl
  map_smul' _ _ := rfl
Linear equivalence between a submodule and its pullback under inclusion
Informal description
Given two submodules $p$ and $q$ of a module $M$ over a semiring $R$ with $p \subseteq q$, there exists a linear equivalence between the pullback of $p$ along the inclusion map $q \hookrightarrow M$ and $p$ itself. More precisely, the equivalence is given by: - The forward map sends $\langle x, h_x \rangle$ to $x$ (where $h_x$ is a proof that $x \in p$) - The inverse map sends $x \in p$ to $\langle \langle x, h_{x} \rangle, h_x \rangle$ (where $h_x$ is a proof that $x \in p$ and $h_{x}$ is a proof that $x \in q$ from $p \subseteq q$) This equivalence preserves both the additive and multiplicative structures.
Submodule.mem_map_equiv theorem
{e : M ≃ₛₗ[τ₁₂] M₂} {x : M₂} : x ∈ p.map (e : M →ₛₗ[τ₁₂] M₂) ↔ e.symm x ∈ p
Full source
@[simp high]
theorem mem_map_equiv {e : M ≃ₛₗ[τ₁₂] M₂} {x : M₂} :
    x ∈ p.map (e : M →ₛₗ[τ₁₂] M₂)x ∈ p.map (e : M →ₛₗ[τ₁₂] M₂) ↔ e.symm x ∈ p := by
  rw [Submodule.mem_map]; constructor
  · rintro ⟨y, hy, hx⟩
    simp [← hx, hy]
  · intro hx
    exact ⟨e.symm x, hx, by simp⟩
Characterization of Elements in the Pushforward via Linear Equivalence
Informal description
Let $M$ and $M_2$ be modules over semirings $R$ and $R_2$ respectively, with a linear equivalence $e : M \simeq_{[\tau_{12}]} M_2$. For any submodule $p \subseteq M$ and element $x \in M_2$, we have $x \in \text{map}(e, p)$ if and only if $e^{-1}(x) \in p$.
Submodule.map_equiv_eq_comap_symm theorem
(e : M ≃ₛₗ[τ₁₂] M₂) (K : Submodule R M) : K.map (e : M →ₛₗ[τ₁₂] M₂) = K.comap (e.symm : M₂ →ₛₗ[τ₂₁] M)
Full source
theorem map_equiv_eq_comap_symm (e : M ≃ₛₗ[τ₁₂] M₂) (K : Submodule R M) :
    K.map (e : M →ₛₗ[τ₁₂] M₂) = K.comap (e.symm : M₂ →ₛₗ[τ₂₁] M) :=
  Submodule.ext fun _ => by rw [mem_map_equiv, mem_comap, LinearEquiv.coe_coe]
Pushforward-Pullback Duality for Linear Equivalences: $e(K) = e^{-1}{}^{-1}(K)$
Informal description
Let $M$ and $M_2$ be modules over semirings $R$ and $R_2$ respectively, connected by a ring homomorphism $\tau_{12} : R \to R_2$. Given a linear equivalence $e : M \simeq_{[\tau_{12}]} M_2$ and a submodule $K \subseteq M$, the pushforward of $K$ under $e$ equals the pullback of $K$ under the inverse equivalence $e^{-1}$. That is, $$ e(K) = \{ y \in M_2 \mid e^{-1}(y) \in K \}. $$
Submodule.comap_equiv_eq_map_symm theorem
(e : M ≃ₛₗ[τ₁₂] M₂) (K : Submodule R₂ M₂) : K.comap (e : M →ₛₗ[τ₁₂] M₂) = K.map (e.symm : M₂ →ₛₗ[τ₂₁] M)
Full source
theorem comap_equiv_eq_map_symm (e : M ≃ₛₗ[τ₁₂] M₂) (K : Submodule R₂ M₂) :
    K.comap (e : M →ₛₗ[τ₁₂] M₂) = K.map (e.symm : M₂ →ₛₗ[τ₂₁] M) :=
  (map_equiv_eq_comap_symm e.symm K).symm
Pullback-Pushforward Duality for Linear Equivalences: $e^{-1}(K) = e(K^{-1})$
Informal description
Let $M$ and $M_2$ be modules over semirings $R$ and $R_2$ respectively, connected by a ring homomorphism $\tau_{12} : R \to R_2$. Given a linear equivalence $e : M \simeq_{[\tau_{12}]} M_2$ and a submodule $K \subseteq M_2$, the pullback of $K$ under $e$ equals the pushforward of $K$ under the inverse equivalence $e^{-1}$. That is, $$ e^{-1}(K) = \{ e^{-1}(y) \mid y \in K \}. $$
Submodule.map_symm_eq_iff theorem
(e : M ≃ₛₗ[τ₁₂] M₂) {K : Submodule R₂ M₂} : K.map e.symm = p ↔ p.map e = K
Full source
theorem map_symm_eq_iff (e : M ≃ₛₗ[τ₁₂] M₂) {K : Submodule R₂ M₂} :
    K.map e.symm = p ↔ p.map e = K := by
  constructor <;> rintro rfl
  · calc
      map e (map e.symm K) = comap e.symm (map e.symm K) := map_equiv_eq_comap_symm _ _
      _ = K := comap_map_eq_of_injective e.symm.injective _
  · calc
      map e.symm (map e p) = comap e (map e p) := (comap_equiv_eq_map_symm _ _).symm
      _ = p := comap_map_eq_of_injective e.injective _
Pushforward-Pullback Equivalence for Linear Isomorphisms: $e^{-1}(K) = p \leftrightarrow e(p) = K$
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, connected by a ring homomorphism $\tau_{12} : R \to R₂$, and let $e : M \simeq_{[\tau_{12}]} M₂$ be a linear equivalence. For any submodule $K \subseteq M₂$, the pushforward of $K$ under the inverse equivalence $e^{-1}$ equals a submodule $p$ of $M$ if and only if the pushforward of $p$ under $e$ equals $K$. That is, $$ e^{-1}(K) = p \quad \text{if and only if} \quad e(p) = K. $$
Submodule.orderIsoMapComap_apply' theorem
(e : M ≃ₛₗ[τ₁₂] M₂) (p : Submodule R M) : orderIsoMapComap e p = comap e.symm p
Full source
theorem orderIsoMapComap_apply' (e : M ≃ₛₗ[τ₁₂] M₂) (p : Submodule R M) :
    orderIsoMapComap e p = comap e.symm p :=
  p.map_equiv_eq_comap_symm _
Order Isomorphism Action: $\text{orderIsoMapComap } e \ p = e^{-1}{}^{-1}(p)$
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, connected by a ring homomorphism $\tau_{12} : R \to R₂$. Given a linear equivalence $e : M \simeq_{[\tau_{12}]} M₂$ and a submodule $p \subseteq M$, the order isomorphism $\text{orderIsoMapComap } e$ maps $p$ to the pullback of $p$ under the inverse equivalence $e^{-1}$, i.e., $$ \text{orderIsoMapComap } e \ p = \{ y \in M₂ \mid e^{-1}(y) \in p \}. $$
Submodule.orderIsoMapComap_symm_apply' theorem
(e : M ≃ₛₗ[τ₁₂] M₂) (p : Submodule R₂ M₂) : (orderIsoMapComap e).symm p = map e.symm p
Full source
theorem orderIsoMapComap_symm_apply' (e : M ≃ₛₗ[τ₁₂] M₂) (p : Submodule R₂ M₂) :
    (orderIsoMapComap e).symm p = map e.symm p :=
  p.comap_equiv_eq_map_symm _
Inverse Order Isomorphism Maps to Pushforward Under Inverse Linear Equivalence
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, connected by a ring homomorphism $\tau_{12} : R \to R₂$, and let $e : M \simeq_{[\tau_{12}]} M₂$ be a linear equivalence. For any submodule $p \subseteq M₂$, the inverse of the order isomorphism $\text{orderIsoMapComap}(e)$ applied to $p$ equals the image of $p$ under the inverse linear map $e^{-1} : M₂ \to M$. That is, $$ (\text{orderIsoMapComap}\, e)^{-1}(p) = \{ e^{-1}(x) \mid x \in p \}. $$
Submodule.inf_comap_le_comap_add theorem
(f₁ f₂ : M →ₛₗ[τ₁₂] M₂) : comap f₁ q ⊓ comap f₂ q ≤ comap (f₁ + f₂) q
Full source
theorem inf_comap_le_comap_add (f₁ f₂ : M →ₛₗ[τ₁₂] M₂) :
    comapcomap f₁ q ⊓ comap f₂ qcomap (f₁ + f₂) q := by
  rw [SetLike.le_def]
  intro m h
  change f₁ m + f₂ m ∈ q
  change f₁ m ∈ qf₁ m ∈ q ∧ f₂ m ∈ q at h
  apply q.add_mem h.1 h.2
Intersection of Pullbacks is Contained in Pullback of Sum for Semilinear Maps
Informal description
Let $M$ and $M₂$ be modules over semirings $R$ and $R₂$ respectively, connected by a ring homomorphism $\tau₁₂ : R \to R₂$. For any two semilinear maps $f₁, f₂ : M \to M₂$ and a submodule $q \subseteq M₂$, the intersection of the pullbacks $\text{comap } f₁ \ q$ and $\text{comap } f₂ \ q$ is contained in the pullback of their sum, i.e., \[ \text{comap } f₁ \ q \cap \text{comap } f₂ \ q \leq \text{comap } (f₁ + f₂) \ q \]
Submodule.comap_le_comap_smul theorem
(fₗ : N →ₗ[R] N₂) (c : R) : comap fₗ qₗ ≤ comap (c • fₗ) qₗ
Full source
theorem comap_le_comap_smul (fₗ : N →ₗ[R] N₂) (c : R) : comap fₗ qₗ ≤ comap (c • fₗ) qₗ := by
  rw [SetLike.le_def]
  intro m h
  change c • fₗ m ∈ qₗ
  change fₗ m ∈ qₗ at h
  apply qₗ.smul_mem _ h
Inclusion of Preimages under a Linear Map and its Scalar Multiple: $\text{comap}\, fₗ\, qₗ \leq \text{comap}\, (c \cdot fₗ)\, qₗ$
Informal description
Let $R$ be a semiring, $N$ and $N₂$ be $R$-modules, $fₗ : N → N₂$ be a linear map, $qₗ$ be a submodule of $N₂$, and $c ∈ R$. Then the preimage of $qₗ$ under $fₗ$ is contained in the preimage of $qₗ$ under the scalar multiple $c \cdot fₗ$. In other words, for any $x ∈ N$, if $fₗ(x) ∈ qₗ$, then $(c \cdot fₗ)(x) ∈ qₗ$.
Submodule.compatibleMaps definition
: Submodule R (N →ₗ[R] N₂)
Full source
/-- Given modules `M`, `M₂` over a commutative ring, together with submodules `p ⊆ M`, `q ⊆ M₂`,
the set of maps $\{f ∈ Hom(M, M₂) | f(p) ⊆ q \}$ is a submodule of `Hom(M, M₂)`. -/
def compatibleMaps : Submodule R (N →ₗ[R] N₂) where
  carrier := { fₗ | pₗ ≤ comap fₗ qₗ }
  zero_mem' := by simp
  add_mem' {f₁ f₂} h₁ h₂ := by
    apply le_trans _ (inf_comap_le_comap_add qₗ f₁ f₂)
    rw [le_inf_iff]
    exact ⟨h₁, h₂⟩
  smul_mem' c fₗ h := by
    dsimp at h
    exact le_trans h (comap_le_comap_smul qₗ fₗ c)
Submodule of linear maps preserving submodule inclusion
Informal description
Given modules \( N \) and \( N₂ \) over a commutative ring \( R \), together with submodules \( pₗ \subseteq N \) and \( qₗ \subseteq N₂ \), the set of linear maps \( \{ fₗ \in \text{Hom}_R(N, N₂) \mid pₗ \subseteq fₗ^{-1}(qₗ) \} \) forms a submodule of \( \text{Hom}_R(N, N₂) \). Here, \( fₗ^{-1}(qₗ) \) denotes the preimage of \( qₗ \) under \( fₗ \).
LinearMap.submoduleComap definition
(f : M →ₗ[R] M₁) (q : Submodule R M₁) : q.comap f →ₗ[R] q
Full source
/-- The `LinearMap` from the preimage of a submodule to itself.

This is the linear version of `AddMonoidHom.addSubmonoidComap`
and `AddMonoidHom.addSubgroupComap`. -/
@[simps!]
def submoduleComap (f : M →ₗ[R] M₁) (q : Submodule R M₁) : q.comap f →ₗ[R] q :=
  f.restrict fun _ ↦ Submodule.mem_comap.1
Restriction of a linear map to its preimage submodule
Informal description
Given a linear map \( f \colon M \to M₁ \) over a semiring \( R \) and a submodule \( q \subseteq M₁ \), the linear map \( \text{submoduleComap} \) is the restriction of \( f \) to the preimage submodule \( q.\text{comap} f = \{ x \in M \mid f(x) \in q \} \), mapping into \( q \). More precisely, for any \( x \in q.\text{comap} f \), the map sends \( x \) to \( f(x) \in q \), where the membership \( f(x) \in q \) is guaranteed by the definition of the preimage submodule.
LinearMap.submoduleComap_surjective_of_surjective theorem
(f : M →ₗ[R] M₁) (q : Submodule R M₁) (hf : Surjective f) : Surjective (f.submoduleComap q)
Full source
theorem submoduleComap_surjective_of_surjective (f : M →ₗ[R] M₁) (q : Submodule R M₁)
    (hf : Surjective f) : Surjective (f.submoduleComap q) := fun y ↦ by
  obtain ⟨x, hx⟩ := hf y
  use ⟨x, Submodule.mem_comap.mpr (hx ▸ y.2)⟩
  apply Subtype.val_injective
  simp [hx]
Surjectivity of Restricted Linear Map to Preimage Submodule
Informal description
Let $f \colon M \to M₁$ be a surjective linear map between modules over a semiring $R$, and let $q \subseteq M₁$ be a submodule. Then the restriction of $f$ to the preimage submodule $f^{-1}(q) \subseteq M$, mapping into $q$, is also surjective.
LinearMap.submoduleMap definition
(f : M →ₗ[R] M₁) (p : Submodule R M) : p →ₗ[R] p.map f
Full source
/-- A linear map between two modules restricts to a linear map from any submodule p of the
domain onto the image of that submodule.

This is the linear version of `AddMonoidHom.addSubmonoidMap` and `AddMonoidHom.addSubgroupMap`. -/
def submoduleMap (f : M →ₗ[R] M₁) (p : Submodule R M) : p →ₗ[R] p.map f :=
  f.restrict fun x hx ↦ Submodule.mem_map.mpr ⟨x, hx, rfl⟩
Restriction of a linear map to a submodule and its image
Informal description
Given a linear map \( f \colon M \to M₁ \) over a semiring \( R \) and a submodule \( p \subseteq M \), the linear map \( f \) restricts to a linear map from \( p \) to the image submodule \( f(p) \subseteq M₁ \). More precisely, for any \( x \in p \), the restricted map sends \( x \) to \( f(x) \in f(p) \), where \( f(p) \) is the submodule of \( M₁ \) consisting of all elements of the form \( f(x) \) for \( x \in p \).
LinearMap.submoduleMap_coe_apply theorem
(f : M →ₗ[R] M₁) {p : Submodule R M} (x : p) : ↑(f.submoduleMap p x) = f x
Full source
@[simp]
theorem submoduleMap_coe_apply (f : M →ₗ[R] M₁) {p : Submodule R M} (x : p) :
    ↑(f.submoduleMap p x) = f x := rfl
Equality of Image under Restricted Map and Original Map
Informal description
Let $f \colon M \to M₁$ be a linear map over a semiring $R$, and let $p \subseteq M$ be a submodule. For any element $x \in p$, the image of $x$ under the restricted linear map $f \colon p \to p.\text{map}(f)$ is equal to $f(x)$ when viewed as an element of $M₁$. In other words, if we denote the inclusion map from $p.\text{map}(f)$ to $M₁$ by $\uparrow$, then $\uparrow(f(x)) = f(x)$ for all $x \in p$.
LinearMap.submoduleMap_surjective theorem
(f : M →ₗ[R] M₁) (p : Submodule R M) : Function.Surjective (f.submoduleMap p)
Full source
theorem submoduleMap_surjective (f : M →ₗ[R] M₁) (p : Submodule R M) :
    Function.Surjective (f.submoduleMap p) := f.toAddMonoidHom.addSubmonoidMap_surjective _
Surjectivity of the Restricted Linear Map to its Image Submodule
Informal description
Let $R$ be a semiring, and let $M$ and $M_1$ be modules over $R$. Given a linear map $f \colon M \to M_1$ and a submodule $p \subseteq M$, the restricted linear map $f|_{p} \colon p \to f(p)$ is surjective.
LinearMap.map_codRestrict theorem
[RingHomSurjective σ₂₁] (p : Submodule R M) (f : M₂ →ₛₗ[σ₂₁] M) (h p') : Submodule.map (codRestrict p f h) p' = comap p.subtype (p'.map f)
Full source
theorem map_codRestrict [RingHomSurjective σ₂₁] (p : Submodule R M) (f : M₂ →ₛₗ[σ₂₁] M) (h p') :
    Submodule.map (codRestrict p f h) p' = comap p.subtype (p'.map f) :=
  Submodule.ext fun ⟨x, hx⟩ => by simp [Subtype.ext_iff_val]
Equality of Pushforward via Codomain Restriction and Pullback of Pushforward
Informal description
Let $R$ and $R_1$ be semirings, $M$ be an $R$-module, $M_2$ be an $R_1$-module, and $\sigma_{21} : R_1 \to R$ be a surjective ring homomorphism. Given a submodule $p \subseteq M$, a $\sigma_{21}$-semilinear map $f : M_2 \to M$ such that $f(x) \in p$ for all $x \in M_2$, and a submodule $p' \subseteq M_2$, the pushforward of $p'$ under the codomain-restricted map $\text{codRestrict } p \ f \ h$ equals the pullback along the inclusion $p \hookrightarrow M$ of the pushforward of $p'$ under $f$. In other words: $$\text{map } (\text{codRestrict } p \ f \ h) \ p' = \text{comap } p.\text{subtype } (\text{map } f \ p')$$
LinearMap.comap_codRestrict theorem
(p : Submodule R M) (f : M₂ →ₛₗ[σ₂₁] M) (hf p') : Submodule.comap (codRestrict p f hf) p' = Submodule.comap f (map p.subtype p')
Full source
theorem comap_codRestrict (p : Submodule R M) (f : M₂ →ₛₗ[σ₂₁] M) (hf p') :
    Submodule.comap (codRestrict p f hf) p' = Submodule.comap f (map p.subtype p') :=
  Submodule.ext fun x => ⟨fun h => ⟨⟨_, hf x⟩, h, rfl⟩, by rintro ⟨⟨_, _⟩, h, ⟨⟩⟩; exact h⟩
Pullback-Pushforward Relation for Codomain-Restricted Linear Maps
Informal description
Let $R$ be a semiring, $M$ and $M₂$ be modules over $R$, and $\sigma₂₁: R \to R$ be a ring homomorphism. Given a submodule $p \subseteq M$, a $\sigma₂₁$-semilinear map $f: M₂ \to M$ such that $f(x) \in p$ for all $x \in M₂$ (with proof $hf$), and a submodule $p' \subseteq M₂$, the pullback of $p'$ under the codomain-restricted map $\text{codRestrict } p \ f \ hf$ equals the pullback under $f$ of the pushforward of $p'$ under the inclusion map $p.subtype: p \hookrightarrow M$. In other words: $$ \text{comap } (\text{codRestrict } p \ f \ hf) \ p' = \text{comap } f \ (\text{map } p.subtype \ p') $$
LinearEquiv.map_eq_comap theorem
{p : Submodule R M} : (p.map (e : M →ₛₗ[σ₁₂] M₂) : Submodule R₂ M₂) = p.comap (e.symm : M₂ →ₛₗ[σ₂₁] M)
Full source
theorem map_eq_comap {p : Submodule R M} :
    (p.map (e : M →ₛₗ[σ₁₂] M₂) : Submodule R₂ M₂) = p.comap (e.symm : M₂ →ₛₗ[σ₂₁] M) :=
  SetLike.coe_injective <| by simp [e.image_eq_preimage]
Equality of Pushforward and Pullback under Linear Equivalence
Informal description
Let $R$ and $R₂$ be semirings, $M$ be an $R$-module, $M₂$ be an $R₂$-module, and $\sigma₁₂: R \to R₂$ be a ring homomorphism. For any linear equivalence $e: M \simeq M₂$ (with inverse $e^{-1}: M₂ \simeq M$) and any submodule $p \subseteq M$, the pushforward of $p$ under $e$ equals the pullback of $p$ under $e^{-1}$. That is, $$ e(p) = e^{-1}{}^{-1}(p) $$ where: - $e(p) = \{e(x) \mid x \in p\}$ is the image of $p$ under $e$ - $e^{-1}{}^{-1}(p) = \{y \in M₂ \mid e^{-1}(y) \in p\}$ is the preimage of $p$ under $e^{-1}$
LinearEquiv.submoduleMap definition
(p : Submodule R M) : p ≃ₛₗ[σ₁₂] ↥(p.map (e : M →ₛₗ[σ₁₂] M₂) : Submodule R₂ M₂)
Full source
/-- A linear equivalence of two modules restricts to a linear equivalence from any submodule
`p` of the domain onto the image of that submodule.

This is the linear version of `AddEquiv.submonoidMap` and `AddEquiv.subgroupMap`.

This is `LinearEquiv.ofSubmodule'` but with `map` on the right instead of `comap` on the left. -/
def submoduleMap (p : Submodule R M) : p ≃ₛₗ[σ₁₂] ↥(p.map (e : M →ₛₗ[σ₁₂] M₂) : Submodule R₂ M₂) :=
  { ((e : M →ₛₗ[σ₁₂] M₂).domRestrict p).codRestrict (p.map (e : M →ₛₗ[σ₁₂] M₂)) fun x =>
      ⟨x, by
        simp only [LinearMap.domRestrict_apply, eq_self_iff_true, and_true, SetLike.coe_mem,
          SetLike.mem_coe]⟩ with
    invFun := fun y =>
      ⟨(e.symm : M₂ →ₛₗ[σ₂₁] M) y, by
        rcases y with ⟨y', hy⟩
        rw [Submodule.mem_map] at hy
        rcases hy with ⟨x, hx, hxy⟩
        subst hxy
        simp only [symm_apply_apply, Submodule.coe_mk, coe_coe, hx]⟩
    left_inv := fun x => by
      simp only [LinearMap.domRestrict_apply, LinearMap.codRestrict_apply, LinearMap.toFun_eq_coe,
        LinearEquiv.coe_coe, LinearEquiv.symm_apply_apply, SetLike.eta]
    right_inv := fun y => by
      apply SetCoe.ext
      simp only [LinearMap.domRestrict_apply, LinearMap.codRestrict_apply, LinearMap.toFun_eq_coe,
        LinearEquiv.coe_coe, LinearEquiv.apply_symm_apply] }
Linear equivalence between a submodule and its image under a linear isomorphism
Informal description
Given a linear equivalence $e \colon M \simeq M₂$ between modules over semirings $R$ and $R₂$ (with a ring homomorphism $\sigma_{12} \colon R \to R₂$), and a submodule $p \subseteq M$, the linear equivalence restricts to a linear equivalence between $p$ and its image under $e$ in $M₂$. More precisely, the restriction gives an isomorphism $p \simeq e(p)$ where $e(p) = \{e(x) \mid x \in p\}$ is the image submodule of $p$ under $e$.
LinearEquiv.submoduleMap_apply theorem
(p : Submodule R M) (x : p) : ↑(e.submoduleMap p x) = e x
Full source
@[simp]
theorem submoduleMap_apply (p : Submodule R M) (x : p) : ↑(e.submoduleMap p x) = e x :=
  rfl
Image of Submodule Element under Linear Equivalence
Informal description
Let $R$ and $R₂$ be semirings with a ring homomorphism $\sigma_{12} \colon R \to R₂$, and let $M$ be an $R$-module and $M₂$ an $R₂$-module. Given a linear equivalence $e \colon M \simeq M₂$ and a submodule $p \subseteq M$, for any element $x \in p$, the image of $x$ under the restricted linear equivalence $e.submoduleMap(p)$ equals the image of $x$ under $e$. That is, $$ (e.submoduleMap(p))(x) = e(x) $$ where $e.submoduleMap(p) \colon p \simeq e(p)$ is the restriction of $e$ to $p$.
LinearEquiv.submoduleMap_symm_apply theorem
(p : Submodule R M) (x : (p.map (e : M →ₛₗ[σ₁₂] M₂) : Submodule R₂ M₂)) : ↑((e.submoduleMap p).symm x) = e.symm x
Full source
@[simp]
theorem submoduleMap_symm_apply (p : Submodule R M)
    (x : (p.map (e : M →ₛₗ[σ₁₂] M₂) : Submodule R₂ M₂)) : ↑((e.submoduleMap p).symm x) = e.symm x :=
  rfl
Inverse of Submodule Map under Linear Equivalence
Informal description
Let $e \colon M \simeq M₂$ be a linear equivalence between modules over semirings $R$ and $R₂$ (with a ring homomorphism $\sigma_{12} \colon R \to R₂$), and let $p \subseteq M$ be a submodule. For any element $x$ in the image submodule $e(p) \subseteq M₂$, the inverse of the restricted linear equivalence $e.submoduleMap p$ satisfies $\left((e.submoduleMap p)^{-1}(x)\right) = e^{-1}(x)$.