File: Mathlib/Algebra/Module/Submodule/Bilinear.lean

full_name: Submodule.map₂
code: /-- Map a pair of submodules under a bilinear map.

This is the submodule version of `Set.image2`.  -/
def map₂ (f : M →ₗ[R] N →ₗ[R] P) (p : Submodule R M) (q : Submodule R N) : Submodule R P 
goal: Submodule R P

full_name: Submodule.apply_mem_map₂
code: theorem apply_mem_map₂ (f : M →ₗ[R] N →ₗ[R] P) {m : M} {n : N} {p : Submodule R M}
    {q : Submodule R N} (hm : m ∈ p) (hn : n ∈ q) : f m n ∈ map₂ f p q 
goal: (f m) n ∈ Submodule.map₂ f p q

full_name: Submodule.map₂_le
code: theorem map₂_le {f : M →ₗ[R] N →ₗ[R] P} {p : Submodule R M} {q : Submodule R N}
    {r : Submodule R P} : map₂ f p q ≤ r ↔ ∀ m ∈ p, ∀ n ∈ q, f m n ∈ r 
goal: Submodule.map₂ f p q ≤ r ↔ ∀ m ∈ p, ∀ n ∈ q, (f m) n ∈ r

full_name: Submodule.map₂_span_span
code: theorem map₂_span_span (f : M →ₗ[R] N →ₗ[R] P) (s : Set M) (t : Set N) :
    map₂ f (span R s) (span R t) = span R (Set.image2 (fun m n => f m n) s t) 
goal: Submodule.map₂ f (Submodule.span R s) (Submodule.span R t) = Submodule.span R (Set.image2 (fun m n => (f m) n) s t)

full_name: Submodule.map₂_bot_right
code: @[simp]
theorem map₂_bot_right (f : M →ₗ[R] N →ₗ[R] P) (p : Submodule R M) : map₂ f p ⊥ = ⊥ 
goal: Submodule.map₂ f p ⊥ = ⊥

full_name: Submodule.map₂_bot_left
code: @[simp]
theorem map₂_bot_left (f : M →ₗ[R] N →ₗ[R] P) (q : Submodule R N) : map₂ f ⊥ q = ⊥ 
goal: Submodule.map₂ f ⊥ q = ⊥

full_name: Submodule.map₂_le_map₂
code: @[mono]
theorem map₂_le_map₂ {f : M →ₗ[R] N →ₗ[R] P} {p₁ p₂ : Submodule R M} {q₁ q₂ : Submodule R N}
    (hp : p₁ ≤ p₂) (hq : q₁ ≤ q₂) : map₂ f p₁ q₁ ≤ map₂ f p₂ q₂ 
goal: Submodule.map₂ f p₁ q₁ ≤ Submodule.map₂ f p₂ q₂

full_name: Submodule.map₂_le_map₂_left
code: theorem map₂_le_map₂_left {f : M →ₗ[R] N →ₗ[R] P} {p₁ p₂ : Submodule R M} {q : Submodule R N}
    (h : p₁ ≤ p₂) : map₂ f p₁ q ≤ map₂ f p₂ q 
goal: Submodule.map₂ f p₁ q ≤ Submodule.map₂ f p₂ q

full_name: Submodule.map₂_le_map₂_right
code: theorem map₂_le_map₂_right {f : M →ₗ[R] N →ₗ[R] P} {p : Submodule R M} {q₁ q₂ : Submodule R N}
    (h : q₁ ≤ q₂) : map₂ f p q₁ ≤ map₂ f p q₂ 
goal: Submodule.map₂ f p q₁ ≤ Submodule.map₂ f p q₂

full_name: Submodule.map₂_sup_right
code: theorem map₂_sup_right (f : M →ₗ[R] N →ₗ[R] P) (p : Submodule R M) (q₁ q₂ : Submodule R N) :
    map₂ f p (q₁ ⊔ q₂) = map₂ f p q₁ ⊔ map₂ f p q₂ 
goal: Submodule.map₂ f p (q₁ ⊔ q₂) = Submodule.map₂ f p q₁ ⊔ Submodule.map₂ f p q₂

full_name: Submodule.map₂_sup_left
code: theorem map₂_sup_left (f : M →ₗ[R] N →ₗ[R] P) (p₁ p₂ : Submodule R M) (q : Submodule R N) :
    map₂ f (p₁ ⊔ p₂) q = map₂ f p₁ q ⊔ map₂ f p₂ q 
goal: Submodule.map₂ f (p₁ ⊔ p₂) q = Submodule.map₂ f p₁ q ⊔ Submodule.map₂ f p₂ q

full_name: Submodule.image2_subset_map₂
code: theorem image2_subset_map₂ (f : M →ₗ[R] N →ₗ[R] P) (p : Submodule R M) (q : Submodule R N) :
    Set.image2 (fun m n => f m n) (↑p : Set M) (↑q : Set N) ⊆ (↑(map₂ f p q) : Set P) 
goal: Set.image2 (fun m n => (f m) n) ↑p ↑q ⊆ ↑(Submodule.map₂ f p q)

full_name: Submodule.map₂_eq_span_image2
code: theorem map₂_eq_span_image2 (f : M →ₗ[R] N →ₗ[R] P) (p : Submodule R M) (q : Submodule R N) :
    map₂ f p q = span R (Set.image2 (fun m n => f m n) (p : Set M) (q : Set N)) 
goal: Submodule.map₂ f p q = Submodule.span R (Set.image2 (fun m n => (f m) n) ↑p ↑q)

full_name: Submodule.map₂_flip
code: theorem map₂_flip (f : M →ₗ[R] N →ₗ[R] P) (p : Submodule R M) (q : Submodule R N) :
    map₂ f.flip q p = map₂ f p q 
goal: Submodule.map₂ f.flip q p = Submodule.map₂ f p q

full_name: Submodule.map₂_iSup_left
code: theorem map₂_iSup_left (f : M →ₗ[R] N →ₗ[R] P) (s : ι → Submodule R M) (t : Submodule R N) :
    map₂ f (⨆ i, s i) t = ⨆ i, map₂ f (s i) t 
goal: Submodule.map₂ f (⨆ i, s i) t = ⨆ i, Submodule.map₂ f (s i) t

full_name: Submodule.map₂_iSup_right
code: theorem map₂_iSup_right (f : M →ₗ[R] N →ₗ[R] P) (s : Submodule R M) (t : ι → Submodule R N) :
    map₂ f s (⨆ i, t i) = ⨆ i, map₂ f s (t i) 
goal: Submodule.map₂ f s (⨆ i, t i) = ⨆ i, Submodule.map₂ f s (t i)

full_name: Submodule.map₂_span_singleton_eq_map
code: theorem map₂_span_singleton_eq_map (f : M →ₗ[R] N →ₗ[R] P) (m : M) :
    map₂ f (span R {m}) = map (f m) 
goal: Submodule.map₂ f (Submodule.span R {m}) = Submodule.map (f m)

full_name: Submodule.map₂_span_singleton_eq_map_flip
code: theorem map₂_span_singleton_eq_map_flip (f : M →ₗ[R] N →ₗ[R] P) (s : Submodule R M) (n : N) :
    map₂ f s (span R {n}) = map (f.flip n) s 
goal: Submodule.map₂ f s (Submodule.span R {n}) = Submodule.map (f.flip n) s