ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Submodule.smul_mem_iff'
@[simp]
theorem smul_mem_iff' [Group G] [MulAction G M] [SMul G R] [IsScalarTower G R M] (g : G) :
    g • x ∈ p ↔ x ∈ p 
Arguments: {G : Type u''} {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] {module_M : Module R M} (p : Submodule R M) {x : M} [Group G] [MulAction G M] [SMul G R] [IsScalarTower G R M] (g : G)
Goal: g • x ∈ p ↔ x ∈ p
-- Submodule.nonempty
protected theorem nonempty : (p : Set M).Nonempty 
Arguments: {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] {module_M : Module R M} (p : Submodule R M)
Goal: (↑p).Nonempty
-- Submodule.mk_eq_zero
theorem mk_eq_zero {x} (h : x ∈ p) : (⟨x, h⟩ : p) = 0 ↔ x = 0 
Arguments: {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] {module_M : Module R M} (p : Submodule R M) {x : M} (h : x ∈ p)
Goal: ⟨x, h⟩ = 0 ↔ x = 0
-- Submodule.coe_eq_zero
@[norm_cast] -- Porting note: removed `@[simp]` because this follows from `ZeroMemClass.coe_zero`
theorem coe_eq_zero {x : p} : (x : M) = 0 ↔ x = 0 
Arguments: {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] {module_M : Module R M} {p : Submodule R M} {x : ↥p}
Goal: ↑x = 0 ↔ x = 0
-- Submodule.coe_add
@[simp, norm_cast]
theorem coe_add (x y : p) : (↑(x + y) : M) = ↑x + ↑y 
Arguments: {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] {module_M : Module R M} {p : Submodule R M} (x y : ↥p)
Goal: ↑(x + y) = ↑x + ↑y
-- Submodule.coe_zero
@[simp, norm_cast]
theorem coe_zero : ((0 : p) : M) = 0 
Arguments: {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] {module_M : Module R M} {p : Submodule R M}
Goal: ↑0 = 0
-- Submodule.coe_smul
@[norm_cast]
theorem coe_smul (r : R) (x : p) : ((r • x : p) : M) = r • (x : M) 
Arguments: {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] {module_M : Module R M} {p : Submodule R M} (r : R) (x : ↥p)
Goal: ↑(r • x) = r • ↑x
-- Submodule.coe_smul_of_tower
@[simp, norm_cast]
theorem coe_smul_of_tower [SMul S R] [SMul S M] [IsScalarTower S R M] (r : S) (x : p) :
    ((r • x : p) : M) = r • (x : M) 
Arguments: {S : Type u'} {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] {module_M : Module R M} {p : Submodule R M} [SMul S R] [SMul S M] [IsScalarTower S R M] (r : S) (x : ↥p)
Goal: ↑(r • x) = r • ↑x
-- Submodule.coe_mk
@[norm_cast] -- Porting note: removed `@[simp]` because this is now structure eta
theorem coe_mk (x : M) (hx : x ∈ p) : ((⟨x, hx⟩ : p) : M) = x 
Arguments: {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] {module_M : Module R M} {p : Submodule R M} (x : M) (hx : x ∈ p)
Goal: ↑⟨x, hx⟩ = x
-- Submodule.coe_mem
theorem coe_mem (x : p) : (x : M) ∈ p 
Arguments: {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] {module_M : Module R M} {p : Submodule R M} (x : ↥p)
Goal: ↑x ∈ p
-- Submodule.vadd_def
theorem vadd_def [VAdd M α] (g : p) (m : α) : g +ᵥ m = (g : M) +ᵥ m 
Arguments: {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] {module_M : Module R M} {p : Submodule R M} {α : Type u_1} [VAdd M α] (g : ↥p) (m : α)
Goal: g +ᵥ m = ↑g +ᵥ m
-- Submodule.neg_mem
protected theorem neg_mem (hx : x ∈ p) : -x ∈ p 
Arguments: {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] {module_M : Module R M} (p : Submodule R M) {x : M} (hx : x ∈ p)
Goal: -x ∈ p
-- Submodule.coe_toAddSubgroup
@[simp]
theorem coe_toAddSubgroup : (p.toAddSubgroup : Set M) = p 
Arguments: {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] {module_M : Module R M} (p : Submodule R M)
Goal: ↑p.toAddSubgroup = ↑p
-- Submodule.mem_toAddSubgroup
@[simp]
theorem mem_toAddSubgroup : x ∈ p.toAddSubgroup ↔ x ∈ p 
Arguments: {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] {module_M : Module R M} (p : Submodule R M) {x : M}
Goal: x ∈ p.toAddSubgroup ↔ x ∈ p
-- Submodule.toAddSubgroup_injective
theorem toAddSubgroup_injective : Injective (toAddSubgroup : Submodule R M → AddSubgroup M)
  
Arguments: {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] {module_M : Module R M}
Goal: Function.Injective Submodule.toAddSubgroup
-- Submodule.toAddSubgroup_eq
@[simp]
theorem toAddSubgroup_eq : p.toAddSubgroup = p'.toAddSubgroup ↔ p = p' 
Arguments: {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] {module_M : Module R M} (p p' : Submodule R M)
Goal: p.toAddSubgroup = p'.toAddSubgroup ↔ p = p'
-- Submodule.toAddSubgroup_strictMono
@[mono]
theorem toAddSubgroup_strictMono : StrictMono (toAddSubgroup : Submodule R M → AddSubgroup M) 
Arguments: {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] {module_M : Module R M}
Goal: StrictMono Submodule.toAddSubgroup
-- Submodule.toAddSubgroup_le
theorem toAddSubgroup_le : p.toAddSubgroup ≤ p'.toAddSubgroup ↔ p ≤ p' 
Arguments: {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] {module_M : Module R M} (p p' : Submodule R M)
Goal: p.toAddSubgroup ≤ p'.toAddSubgroup ↔ p ≤ p'
-- Submodule.toAddSubgroup_mono
@[mono]
theorem toAddSubgroup_mono : Monotone (toAddSubgroup : Submodule R M → AddSubgroup M) 
Arguments: {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] {module_M : Module R M}
Goal: Monotone Submodule.toAddSubgroup
-- Submodule.sub_mem
protected theorem sub_mem : x ∈ p → y ∈ p → x - y ∈ p 
Arguments: {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] {module_M : Module R M} (p : Submodule R M) {x y : M}
Goal: x ∈ p → y ∈ p → x - y ∈ p
-- Submodule.neg_mem_iff
protected theorem neg_mem_iff : -x ∈ p ↔ x ∈ p 
Arguments: {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] {module_M : Module R M} (p : Submodule R M) {x : M}
Goal: -x ∈ p ↔ x ∈ p
-- Submodule.add_mem_iff_left
protected theorem add_mem_iff_left : y ∈ p → (x + y ∈ p ↔ x ∈ p) 
Arguments: {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] {module_M : Module R M} (p : Submodule R M) {x y : M}
Goal: y ∈ p → (x + y ∈ p ↔ x ∈ p)
-- Submodule.add_mem_iff_right
protected theorem add_mem_iff_right : x ∈ p → (x + y ∈ p ↔ y ∈ p) 
Arguments: {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] {module_M : Module R M} (p : Submodule R M) {x y : M}
Goal: x ∈ p → (x + y ∈ p ↔ y ∈ p)
-- Submodule.coe_neg
protected theorem coe_neg (x : p) : ((-x : p) : M) = -x 
Arguments: {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] {module_M : Module R M} (p : Submodule R M) (x : ↥p)
Goal: ↑(-x) = -↑x
-- Submodule.coe_sub
protected theorem coe_sub (x y : p) : (↑(x - y) : M) = ↑x - ↑y 
Arguments: {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] {module_M : Module R M} (p : Submodule R M) (x y : ↥p)
Goal: ↑(x - y) = ↑x - ↑y
-- Submodule.sub_mem_iff_left
theorem sub_mem_iff_left (hy : y ∈ p) : x - y ∈ p ↔ x ∈ p 
Arguments: {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] {module_M : Module R M} (p : Submodule R M) {x y : M} (hy : y ∈ p)
Goal: x - y ∈ p ↔ x ∈ p
-- Submodule.sub_mem_iff_right
theorem sub_mem_iff_right (hx : x ∈ p) : x - y ∈ p ↔ y ∈ p 
Arguments: {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] {module_M : Module R M} (p : Submodule R M) {x y : M} (hx : x ∈ p)
Goal: x - y ∈ p ↔ y ∈ p
-- Submodule.neg_coe
theorem neg_coe : -(p : Set M) = p 
Arguments: {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] {module_M : Module R M} (p : Submodule R M)
Goal: -↑p = ↑p
-- Submodule.not_mem_of_ortho
theorem not_mem_of_ortho {x : M} {N : Submodule R M}
    (ortho : ∀ (c : R), ∀ y ∈ N, c • x + y = (0 : M) → c = 0) : x ∉ N 
Arguments: {R : Type u} {M : Type v} [Ring R] [IsDomain R] [AddCommGroup M] [Module R M] {x : M} {N : Submodule R M} (ortho : ∀ (c : R), ∀ y ∈ N, c • x + y = 0 → c = 0)
Goal: x ∉ N
-- Submodule.ne_zero_of_ortho
theorem ne_zero_of_ortho {x : M} {N : Submodule R M}
    (ortho : ∀ (c : R), ∀ y ∈ N, c • x + y = (0 : M) → c = 0) : x ≠ 0 
Arguments: {R : Type u} {M : Type v} [Ring R] [IsDomain R] [AddCommGroup M] [Module R M] {x : M} {N : Submodule R M} (ortho : ∀ (c : R), ∀ y ∈ N, c • x + y = 0 → c = 0)
Goal: x ≠ 0
-- Submodule.smul_mem_iff
theorem smul_mem_iff (s0 : s ≠ 0) : s • x ∈ p ↔ x ∈ p 
Arguments: {S : Type u'} {R : Type u} {M : Type v} [DivisionSemiring S] [Semiring R] [AddCommMonoid M] [Module R M] [SMul S R] [Module S M] [IsScalarTower S R M] (p : Submodule R M) {s : S} {x : M} (s0 : s ≠ 0)
Goal: s • x ∈ p ↔ x ∈ p
-- CharacterModule.ext
@[ext] theorem ext {c c' : CharacterModule A} (h : ∀ x, c x = c' x) : c = c' 
Arguments: (A : Type uA) [AddCommGroup A] {c c' : CharacterModule A} (h : ∀ (x : A), c x = c' x)
Goal: c = c'
-- CharacterModule.smul_apply
@[simp] lemma smul_apply (c : CharacterModule A) (r : R) (a : A) : (r • c) a = c (r • a) 
Arguments: {R : Type uR} [CommRing R] {A : Type uA} [AddCommGroup A] [Module R A] (c : CharacterModule A) (r : R) (a : A)
Goal: (r • c) a = c (r • a)
-- CharacterModule.dual_apply
@[simps] def dual (f : A →ₗ[R] B) : CharacterModule B →ₗ[R] CharacterModule A 
Arguments: {R : Type uR} [CommRing R] {A : Type uA} [AddCommGroup A] {B : Type uB} [AddCommGroup B] [Module R A] [Module R B] (f : A →ₗ[R] B) (L : CharacterModule B)
Goal: (CharacterModule.dual f) L = AddMonoidHom.comp L f.toAddMonoidHom
-- CharacterModule.dual_surjective_of_injective
lemma dual_surjective_of_injective (f : A →ₗ[R] B) (hf : Function.Injective f) :
    Function.Surjective (dual f) 
Arguments: {R : Type uR} [CommRing R] {A : Type uA} [AddCommGroup A] {B : Type uB} [AddCommGroup B] [Module R A] [Module R B] (f : A →ₗ[R] B) (hf : Function.Injective ⇑f)
Goal: Function.Surjective ⇑(CharacterModule.dual f)
-- CharacterModule.uncurry_apply
@[simps] noncomputable def uncurry :
    (A →ₗ[R] CharacterModule B) →ₗ[R] CharacterModule (A ⊗[R] B) 
Arguments: {R : Type uR} [CommRing R] {A : Type uA} [AddCommGroup A] {B : Type uB} [AddCommGroup B] [Module R A] [Module R B] (c : A →ₗ[R] CharacterModule B)
Goal: CharacterModule.uncurry c = TensorProduct.liftAddHom c.toAddMonoidHom ⋯
-- CharacterModule.curry_apply_apply
@[simps] noncomputable def curry :
    CharacterModule (A ⊗[R] B) →ₗ[R] (A →ₗ[R] CharacterModule B) 
Arguments: {R : Type uR} [CommRing R] {A : Type uA} [AddCommGroup A] {B : Type uB} [AddCommGroup B] [Module R A] [Module R B] (c : CharacterModule (TensorProduct R A B))
Goal: ∀ (x : A), (CharacterModule.curry c) x = AddMonoidHom.comp c ↑((TensorProduct.mk R A B) x)
-- CharacterModule.homEquiv_apply_apply
@[simps!] noncomputable def homEquiv :
    (A →ₗ[R] CharacterModule B) ≃ₗ[R] CharacterModule (A ⊗[R] B) 
Arguments: {R : Type uR} [CommRing R] {A : Type uA} [AddCommGroup A] {B : Type uB} [AddCommGroup B] [Module R A] [Module R B] (c : A →ₗ[R] CharacterModule B) (x : (addConGen (TensorProduct.Eqv R A B)).Quotient)
Goal: (CharacterModule.homEquiv c) x = AddCon.liftOn x ⇑(FreeAddMonoid.lift fun mn => (c.toAddMonoidHom mn.1) mn.2) ⋯
-- CharacterModule.homEquiv_symm_apply_apply_apply
@[simps!] noncomputable def homEquiv :
    (A →ₗ[R] CharacterModule B) ≃ₗ[R] CharacterModule (A ⊗[R] B) 
Arguments: {R : Type uR} [CommRing R] {A : Type uA} [AddCommGroup A] {B : Type uB} [AddCommGroup B] [Module R A] [Module R B] (a : CharacterModule (TensorProduct R A B))
Goal: ∀ (x : A) (a_1 : B), ((CharacterModule.homEquiv.symm a) x) a_1 = a (x ⊗ₜ[R] a_1)
-- CharacterModule.dual_rTensor_conj_homEquiv
theorem dual_rTensor_conj_homEquiv (f : A →ₗ[R] A') :
    homEquiv.symm.toLinearMap ∘ₗ dual (f.rTensor B) ∘ₗ homEquiv.toLinearMap = f.lcomp R _ 
Arguments: {R : Type uR} [CommRing R] {A : Type uA} [AddCommGroup A] (A' : Type u_1) [AddCommGroup A'] {B : Type uB} [AddCommGroup B] [Module R A] [Module R A'] [Module R B] (f : A →ₗ[R] A')
Goal: ↑CharacterModule.homEquiv.symm ∘ₗ CharacterModule.dual (LinearMap.rTensor B f) ∘ₗ ↑CharacterModule.homEquiv =
  LinearMap.lcomp R (CharacterModule B) f
-- CharacterModule.int.divByNat_self
protected lemma int.divByNat_self (n : ℕ) :
    int.divByNat n n = 0 
Arguments: (n : ℕ)
Goal: (CharacterModule.int.divByNat n) ↑n = 0
-- CharacterModule.intSpanEquivQuotAddOrderOf_symm_apply_coe
@[simps!] noncomputable def intSpanEquivQuotAddOrderOf (a : A) :
    (ℤ ∙ a) ≃ₗ[ℤ] ℤ ⧸ Ideal.span {(addOrderOf a : ℤ)} 
Arguments: {A : Type uA} [AddCommGroup A] (a : A)
Goal: ∀ (a_1 : ℤ ⧸ Ideal.span {↑(addOrderOf a)}),
  ↑((CharacterModule.intSpanEquivQuotAddOrderOf a).symm a_1) =
    ↑((LinearMap.toSpanSingleton ℤ A a).quotKerEquivRange
        (((LinearMap.ker (LinearMap.toSpanSingleton ℤ A a)).quotEquivOfEq (Ideal.span {↑(addOrderOf a)}) ⋯).symm a_1))
-- CharacterModule.intSpanEquivQuotAddOrderOf_apply
@[simps!] noncomputable def intSpanEquivQuotAddOrderOf (a : A) :
    (ℤ ∙ a) ≃ₗ[ℤ] ℤ ⧸ Ideal.span {(addOrderOf a : ℤ)} 
Arguments: {A : Type uA} [AddCommGroup A] (a : A)
Goal: ∀ (a_1 : ↥(Submodule.span ℤ {a})),
  (CharacterModule.intSpanEquivQuotAddOrderOf a) a_1 =
    ((LinearMap.ker (LinearMap.toSpanSingleton ℤ A a)).quotEquivOfEq (Ideal.span {↑(addOrderOf a)}) ⋯)
      ((LinearMap.toSpanSingleton ℤ A a).quotKerEquivRange.symm
        ((LinearEquiv.ofEq (Submodule.span ℤ {a}) (LinearMap.range (LinearMap.toSpanSingleton ℤ A a)) ⋯) a_1))
-- CharacterModule.intSpanEquivQuotAddOrderOf_apply_self
lemma intSpanEquivQuotAddOrderOf_apply_self (a : A) :
    intSpanEquivQuotAddOrderOf a ⟨a, Submodule.mem_span_singleton_self a⟩ =
    Submodule.Quotient.mk 1 
Arguments: {A : Type uA} [AddCommGroup A] (a : A)
Goal: (CharacterModule.intSpanEquivQuotAddOrderOf a) ⟨a, ⋯⟩ = Submodule.Quotient.mk 1
-- CharacterModule.eq_zero_of_ofSpanSingleton_apply_self
lemma eq_zero_of_ofSpanSingleton_apply_self (a : A)
    (h : ofSpanSingleton a ⟨a, Submodule.mem_span_singleton_self a⟩ = 0) : a = 0 
Arguments: {A : Type uA} [AddCommGroup A] (a : A) (h : (CharacterModule.ofSpanSingleton a) ⟨a, ⋯⟩ = 0)
Goal: a = 0
-- CharacterModule.exists_character_apply_ne_zero_of_ne_zero
lemma exists_character_apply_ne_zero_of_ne_zero {a : A} (ne_zero : a ≠ 0) :
    ∃ (c : CharacterModule A), c a ≠ 0 
Arguments: {A : Type uA} [AddCommGroup A] {a : A} (ne_zero : a ≠ 0)
Goal: ∃ c, c a ≠ 0
-- CharacterModule.eq_zero_of_character_apply
lemma eq_zero_of_character_apply {a : A} (h : ∀ c : CharacterModule A, c a = 0) : a = 0 
Arguments: {A : Type uA} [AddCommGroup A] {a : A} (h : ∀ (c : CharacterModule A), c a = 0)
Goal: a = 0
-- CharacterModule.dual_surjective_iff_injective
lemma dual_surjective_iff_injective {f : A →ₗ[R] A'} :
    Function.Surjective (dual f) ↔ Function.Injective f 
Arguments: {R : Type uR} [CommRing R] {A : Type uA} [AddCommGroup A] {A' : Type u_1} [AddCommGroup A'] [Module R A] [Module R A'] {f : A →ₗ[R] A'}
Goal: Function.Surjective ⇑(CharacterModule.dual f) ↔ Function.Injective ⇑f
-- rTensor_injective_iff_lcomp_surjective
theorem _root_.rTensor_injective_iff_lcomp_surjective {f : A →ₗ[R] A'} :
    Function.Injective (f.rTensor B) ↔ Function.Surjective (f.lcomp R <| CharacterModule B) 
Arguments: {R : Type uR} [CommRing R] {A : Type uA} [AddCommGroup A] {A' : Type u_1} [AddCommGroup A'] {B : Type uB} [AddCommGroup B] [Module R A] [Module R A'] [Module R B] {f : A →ₗ[R] A'}
Goal: Function.Injective ⇑(LinearMap.rTensor B f) ↔ Function.Surjective ⇑(LinearMap.lcomp R (CharacterModule B) f)
-- IsSMulRegular.pi
theorem _root_.IsSMulRegular.pi {α : Type*} [∀ i, SMul α <| f i] {k : α}
    (hk : ∀ i, IsSMulRegular (f i) k) : IsSMulRegular (∀ i, f i) k 
Arguments: {I : Type u} {f : I → Type v} {α : Type u_1} [(i : I) → SMul α (f i)] {k : α} (hk : ∀ (i : I), IsSMulRegular (f i) k)
Goal: IsSMulRegular ((i : I) → f i) k
-- AddMonoidHom.coe_smul
@[simp] theorem coe_smul (r : R) (f : A →+ B) : ⇑(r • f) = r • ⇑f 
Arguments: {R : Type u_1} {A : Type u_4} {B : Type u_5} [Monoid R] [AddMonoid A] [AddCommMonoid B] [DistribMulAction R B] (r : R) (f : A →+ B)
Goal: ⇑(r • f) = r • ⇑f
-- AddMonoidHom.smul_apply
theorem smul_apply (r : R) (f : A →+ B) (x : A) : (r • f) x = r • f x 
Arguments: {R : Type u_1} {A : Type u_4} {B : Type u_5} [Monoid R] [AddMonoid A] [AddCommMonoid B] [DistribMulAction R B] (r : R) (f : A →+ B) (x : A)
Goal: (r • f) x = r • f x
-- AddMonoid.End.coe_smul
@[simp] theorem coe_smul (r : R) (f : AddMonoid.End A) : ⇑(r • f) = r • ⇑f 
Arguments: {R : Type u_1} {A : Type u_4} [Monoid R] [AddCommMonoid A] [DistribMulAction R A] (r : R) (f : AddMonoid.End A)
Goal: ⇑(r • f) = r • ⇑f
-- AddMonoid.End.smul_apply
theorem smul_apply (r : R) (f : AddMonoid.End A) (x : A) : (r • f) x = r • f x 
Arguments: {R : Type u_1} {A : Type u_4} [Monoid R] [AddCommMonoid A] [DistribMulAction R A] (r : R) (f : AddMonoid.End A) (x : A)
Goal: (r • f) x = r • f x
-- AddMonoidHom.smulLeft_apply
@[simps! (config := .asFn)]
protected def smulLeft [Monoid M] [AddMonoid A] [DistribMulAction M A] (c : M) : A →+ A 
Arguments: {M : Type u_3} {A : Type u_4} [Monoid M] [AddMonoid A] [DistribMulAction M A] (c : M)
Goal: ⇑(AddMonoidHom.smulLeft c) = fun x => c • x
-- AddMonoidHom.coe_smul'
@[simp] theorem coe_smul' [Semiring R] [AddCommMonoid M] [Module R M] :
    ⇑(.smul : R →+ M →+ M) = AddMonoidHom.smulLeft 
Arguments: {R : Type u_1} {M : Type u_3} [Semiring R] [AddCommMonoid M] [Module R M]
Goal: ⇑AddMonoidHom.smul = AddMonoidHom.smulLeft
-- Submodule.apply_mem_map₂
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 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} {P : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [Module R M] [Module R N] [Module R P] (f : M →ₗ[R] N →ₗ[R] P) {m : M} {n : N} {p : Submodule R M} {q : Submodule R N} (hm : m ∈ p) (hn : n ∈ q)
Goal: (f m) n ∈ Submodule.map₂ f p q
-- Submodule.map₂_le
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 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} {P : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [Module R M] [Module R N] [Module R P] {f : M →ₗ[R] N →ₗ[R] P} {p : Submodule R M} {q : Submodule R N} {r : Submodule R P}
Goal: Submodule.map₂ f p q ≤ r ↔ ∀ m ∈ p, ∀ n ∈ q, (f m) n ∈ r
-- Submodule.map₂_span_span
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) 
Arguments: (R : Type u_1) {M : Type u_2} {N : Type u_3} {P : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [Module R M] [Module R N] [Module R P] (f : M →ₗ[R] N →ₗ[R] P) (s : Set M) (t : Set N)
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)
-- Submodule.map₂_bot_right
@[simp]
theorem map₂_bot_right (f : M →ₗ[R] N →ₗ[R] P) (p : Submodule R M) : map₂ f p ⊥ = ⊥ 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} {P : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [Module R M] [Module R N] [Module R P] (f : M →ₗ[R] N →ₗ[R] P) (p : Submodule R M)
Goal: Submodule.map₂ f p ⊥ = ⊥
-- Submodule.map₂_bot_left
@[simp]
theorem map₂_bot_left (f : M →ₗ[R] N →ₗ[R] P) (q : Submodule R N) : map₂ f ⊥ q = ⊥ 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} {P : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [Module R M] [Module R N] [Module R P] (f : M →ₗ[R] N →ₗ[R] P) (q : Submodule R N)
Goal: Submodule.map₂ f ⊥ q = ⊥
-- Submodule.map₂_le_map₂
@[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₂ 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} {P : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [Module R M] [Module R N] [Module R P] {f : M →ₗ[R] N →ₗ[R] P} {p₁ p₂ : Submodule R M} {q₁ q₂ : Submodule R N} (hp : p₁ ≤ p₂) (hq : q₁ ≤ q₂)
Goal: Submodule.map₂ f p₁ q₁ ≤ Submodule.map₂ f p₂ q₂
-- Submodule.map₂_le_map₂_left
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 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} {P : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [Module R M] [Module R N] [Module R P] {f : M →ₗ[R] N →ₗ[R] P} {p₁ p₂ : Submodule R M} {q : Submodule R N} (h : p₁ ≤ p₂)
Goal: Submodule.map₂ f p₁ q ≤ Submodule.map₂ f p₂ q
-- Submodule.map₂_le_map₂_right
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₂ 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} {P : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [Module R M] [Module R N] [Module R P] {f : M →ₗ[R] N →ₗ[R] P} {p : Submodule R M} {q₁ q₂ : Submodule R N} (h : q₁ ≤ q₂)
Goal: Submodule.map₂ f p q₁ ≤ Submodule.map₂ f p q₂
-- Submodule.map₂_sup_right
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₂ 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} {P : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [Module R M] [Module R N] [Module R P] (f : M →ₗ[R] N →ₗ[R] P) (p : Submodule R M) (q₁ q₂ : Submodule R N)
Goal: Submodule.map₂ f p (q₁ ⊔ q₂) = Submodule.map₂ f p q₁ ⊔ Submodule.map₂ f p q₂
-- Submodule.map₂_sup_left
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 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} {P : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [Module R M] [Module R N] [Module R P] (f : M →ₗ[R] N →ₗ[R] P) (p₁ p₂ : Submodule R M) (q : Submodule R N)
Goal: Submodule.map₂ f (p₁ ⊔ p₂) q = Submodule.map₂ f p₁ q ⊔ Submodule.map₂ f p₂ q
-- Submodule.image2_subset_map₂
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) 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} {P : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [Module R M] [Module R N] [Module R P] (f : M →ₗ[R] N →ₗ[R] P) (p : Submodule R M) (q : Submodule R N)
Goal: Set.image2 (fun m n => (f m) n) ↑p ↑q ⊆ ↑(Submodule.map₂ f p q)
-- Submodule.map₂_eq_span_image2
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)) 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} {P : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [Module R M] [Module R N] [Module R P] (f : M →ₗ[R] N →ₗ[R] P) (p : Submodule R M) (q : Submodule R N)
Goal: Submodule.map₂ f p q = Submodule.span R (Set.image2 (fun m n => (f m) n) ↑p ↑q)
-- Submodule.map₂_flip
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 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} {P : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [Module R M] [Module R N] [Module R P] (f : M →ₗ[R] N →ₗ[R] P) (p : Submodule R M) (q : Submodule R N)
Goal: Submodule.map₂ f.flip q p = Submodule.map₂ f p q
-- Submodule.map₂_iSup_left
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 
Arguments: {ι : Sort uι} {R : Type u_1} {M : Type u_2} {N : Type u_3} {P : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [Module R M] [Module R N] [Module R P] (f : M →ₗ[R] N →ₗ[R] P) (s : ι → Submodule R M) (t : Submodule R N)
Goal: Submodule.map₂ f (⨆ i, s i) t = ⨆ i, Submodule.map₂ f (s i) t
-- Submodule.map₂_iSup_right
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) 
Arguments: {ι : Sort uι} {R : Type u_1} {M : Type u_2} {N : Type u_3} {P : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [Module R M] [Module R N] [Module R P] (f : M →ₗ[R] N →ₗ[R] P) (s : Submodule R M) (t : ι → Submodule R N)
Goal: Submodule.map₂ f s (⨆ i, t i) = ⨆ i, Submodule.map₂ f s (t i)