ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Module.IsTorsionBy.mk_smul
@[simp]
theorem IsTorsionBy.mk_smul (hM : IsTorsionBy R M r) (b : R) (x : M) :
    haveI := hM.hasSMul
    Ideal.Quotient.mk (Ideal.span {r}) b • x = b • x 
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M] {r : R} (hM : Module.IsTorsionBy R M r) (b : R) (x : M)
Goal: (Ideal.Quotient.mk (Ideal.span {r})) b • x = b • x
-- Module.isTorsionBy_quotient_iff
theorem isTorsionBy_quotient_iff (N : Submodule R M) (r : R) :
    IsTorsionBy R (M⧸N) r ↔ ∀ x, r • x ∈ N 
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M] (N : Submodule R M) (r : R)
Goal: Module.IsTorsionBy R (M ⧸ N) r ↔ ∀ (x : M), r • x ∈ N
-- Module.IsTorsionBy.quotient
theorem IsTorsionBy.quotient (N : Submodule R M) {r : R}
    (h : IsTorsionBy R M r) : IsTorsionBy R (M⧸N) r 
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M] (N : Submodule R M) {r : R} (h : Module.IsTorsionBy R M r)
Goal: Module.IsTorsionBy R (M ⧸ N) r
-- Module.isTorsionBySet_quotient_iff
theorem isTorsionBySet_quotient_iff (N : Submodule R M) (s : Set R) :
    IsTorsionBySet R (M⧸N) s ↔ ∀ x, ∀ r ∈ s, r • x ∈ N 
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M] (N : Submodule R M) (s : Set R)
Goal: Module.IsTorsionBySet R (M ⧸ N) s ↔ ∀ (x : M), ∀ r ∈ s, r • x ∈ N
-- Module.IsTorsionBySet.quotient
theorem IsTorsionBySet.quotient (N : Submodule R M) {s}
    (h : IsTorsionBySet R M s) : IsTorsionBySet R (M⧸N) s 
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M] (N : Submodule R M) {s : Set R} (h : Module.IsTorsionBySet R M s)
Goal: Module.IsTorsionBySet R (M ⧸ N) s
-- Module.isTorsionBySet_quotient_set_smul
lemma isTorsionBySet_quotient_set_smul :
    IsTorsionBySet R (M⧸s • (⊤ : Submodule R M)) s 
Arguments: {R : Type u_1} (M : Type u_2) [CommRing R] [AddCommGroup M] [Module R M] (s : Set R)
Goal: Module.IsTorsionBySet R (M ⧸ s • ⊤) s
-- Module.isTorsionBy_quotient_element_smul
lemma isTorsionBy_quotient_element_smul :
    IsTorsionBy R (M⧸r • (⊤ : Submodule R M)) r 
Arguments: {R : Type u_1} (M : Type u_2) [CommRing R] [AddCommGroup M] [Module R M] (r : R)
Goal: Module.IsTorsionBy R (M ⧸ r • ⊤) r
-- Module.isTorsionBySet_quotient_ideal_smul
lemma isTorsionBySet_quotient_ideal_smul :
    IsTorsionBySet R (M⧸I • (⊤ : Submodule R M)) I 
Arguments: {R : Type u_1} (M : Type u_2) [CommRing R] [AddCommGroup M] [Module R M] (I : Ideal R)
Goal: Module.IsTorsionBySet R (M ⧸ I • ⊤) ↑I
-- Module.Quotient.mk_smul_mk
lemma Quotient.mk_smul_mk (r : R) (m : M) :
    Ideal.Quotient.mk I r •
      Submodule.Quotient.mk (p := (I • ⊤ : Submodule R M)) m =
      Submodule.Quotient.mk (p := (I • ⊤ : Submodule R M)) (r • m) 
Arguments: {R : Type u_1} (M : Type u_2) [CommRing R] [AddCommGroup M] [Module R M] (I : Ideal R) (r : R) (m : M)
Goal: (Ideal.Quotient.mk I) r • Submodule.Quotient.mk m = Submodule.Quotient.mk (r • m)
-- Submodule.torsionBySet.mk_smul
@[simp]
theorem torsionBySet.mk_smul (I : Ideal R) (b : R) (x : torsionBySet R M I) :
    Ideal.Quotient.mk I b • x = b • x 
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M] (I : Ideal R) (b : R) (x : ↥(Submodule.torsionBySet R M ↑I))
Goal: (Ideal.Quotient.mk I) b • x = b • x
-- Submodule.torsionBy.mk_ideal_smul
@[simp]
theorem torsionBy.mk_ideal_smul (a b : R) (x : torsionBy R M a) :
    (Ideal.Quotient.mk (Ideal.span {a})) b • x = b • x 
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M] (a b : R) (x : ↥(Submodule.torsionBy R M a))
Goal: (Ideal.Quotient.mk (Ideal.span {a})) b • x = b • x
-- Submodule.torsionBy.mk_smul
theorem torsionBy.mk_smul (a b : R) (x : torsionBy R M a) :
    Ideal.Quotient.mk (R ∙ a) b • x = b • x 
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M] (a b : R) (x : ↥(Submodule.torsionBy R M a))
Goal: (Ideal.Quotient.mk (Submodule.span R {a})) b • x = b • x
-- Submodule.mem_torsion'_iff
@[simp]
theorem mem_torsion'_iff (x : M) : x ∈ torsion' R M S ↔ ∃ a : S, a • x = 0 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] (S : Type u_3) [CommMonoid S] [DistribMulAction S M] [SMulCommClass S R M] (x : M)
Goal: x ∈ Submodule.torsion' R M S ↔ ∃ a, a • x = 0
-- Submodule.mem_torsion_iff
theorem mem_torsion_iff (x : M) : x ∈ torsion R M ↔ ∃ a : R⁰, a • x = 0 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] (x : M)
Goal: x ∈ Submodule.torsion R M ↔ ∃ a, a • x = 0
-- Submodule.instSMulSubtypeMemTorsion'_smul_coe
@[simps]
instance : SMul S (torsion' R M S) 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] (S : Type u_3) [CommMonoid S] [DistribMulAction S M] [SMulCommClass S R M] (s : S) (x : ↥(Submodule.torsion' R M S))
Goal: ↑(s • x) = s • ↑x
-- Submodule.isTorsion'_iff_torsion'_eq_top
theorem isTorsion'_iff_torsion'_eq_top : IsTorsion' M S ↔ torsion' R M S = ⊤ 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] (S : Type u_3) [CommMonoid S] [DistribMulAction S M] [SMulCommClass S R M]
Goal: Module.IsTorsion' M S ↔ Submodule.torsion' R M S = ⊤
-- Submodule.torsion'_isTorsion'
theorem torsion'_isTorsion' : IsTorsion' (torsion' R M S) S 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] (S : Type u_3) [CommMonoid S] [DistribMulAction S M] [SMulCommClass S R M]
Goal: Module.IsTorsion' (↥(Submodule.torsion' R M S)) S
-- Submodule.torsion'_torsion'_eq_top
@[simp]
theorem torsion'_torsion'_eq_top : torsion' R (torsion' R M S) S = ⊤ 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] (S : Type u_3) [CommMonoid S] [DistribMulAction S M] [SMulCommClass S R M]
Goal: Submodule.torsion' R (↥(Submodule.torsion' R M S)) S = ⊤
-- Submodule.torsion_torsion_eq_top
-- @[simp] Porting note (#10618): simp can prove this
theorem torsion_torsion_eq_top : torsion R (torsion R M) = ⊤ 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M]
Goal: Submodule.torsion R ↥(Submodule.torsion R M) = ⊤
-- Submodule.torsion_isTorsion
theorem torsion_isTorsion : Module.IsTorsion R (torsion R M) 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M]
Goal: Module.IsTorsion R ↥(Submodule.torsion R M)
-- Module.isTorsionBySet_annihilator_top
theorem _root_.Module.isTorsionBySet_annihilator_top :
    Module.IsTorsionBySet R M (⊤ : Submodule R M).annihilator 
Arguments: (R : Type u_1) (M : Type u_2) [CommSemiring R] [AddCommMonoid M] [Module R M]
Goal: Module.IsTorsionBySet R M ↑⊤.annihilator
-- Submodule.annihilator_top_inter_nonZeroDivisors
theorem _root_.Submodule.annihilator_top_inter_nonZeroDivisors [Module.Finite R M]
    (hM : Module.IsTorsion R M) : ((⊤ : Submodule R M).annihilator : Set R) ∩ R⁰ ≠ ∅ 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] [Module.Finite R M] (hM : Module.IsTorsion R M)
Goal: ↑⊤.annihilator ∩ ↑R⁰ ≠ ∅
-- Submodule.coe_torsion_eq_annihilator_ne_bot
theorem coe_torsion_eq_annihilator_ne_bot :
    (torsion R M : Set M) = { x : M | (R ∙ x).annihilator ≠ ⊥ } 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] [NoZeroDivisors R] [Nontrivial R]
Goal: ↑(Submodule.torsion R M) = {x | (Submodule.span R {x}).annihilator ≠ ⊥}
-- Submodule.noZeroSMulDivisors_iff_torsion_eq_bot
theorem noZeroSMulDivisors_iff_torsion_eq_bot : NoZeroSMulDivisors R M ↔ torsion R M = ⊥ 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] [NoZeroDivisors R] [Nontrivial R]
Goal: NoZeroSMulDivisors R M ↔ Submodule.torsion R M = ⊥
-- Submodule.torsion_int
lemma torsion_int {G} [AddCommGroup G] :
    (torsion ℤ G).toAddSubgroup = AddCommGroup.torsion G 
Arguments: {G : Type u_3} [AddCommGroup G]
Goal: (Submodule.torsion ℤ G).toAddSubgroup = AddCommGroup.torsion G
-- Submodule.QuotientTorsion.torsion_eq_bot
@[simp]
theorem torsion_eq_bot : torsion R (M ⧸ torsion R M) = ⊥ 
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M]
Goal: Submodule.torsion R (M ⧸ Submodule.torsion R M) = ⊥
-- Submodule.isTorsion'_powers_iff
theorem isTorsion'_powers_iff (p : R) :
    IsTorsion' M (Submonoid.powers p) ↔ ∀ x : M, ∃ n : ℕ, p ^ n • x = 0 
Arguments: {R : Type u_1} {M : Type u_2} [Monoid R] [AddCommMonoid M] [DistribMulAction R M] (p : R)
Goal: Module.IsTorsion' M ↥(Submonoid.powers p) ↔ ∀ (x : M), ∃ n, p ^ n • x = 0
-- Submodule.pow_pOrder_smul
@[simp]
theorem pow_pOrder_smul {p : R} (hM : IsTorsion' M <| Submonoid.powers p) (x : M)
    [∀ n : ℕ, Decidable (p ^ n • x = 0)] : p ^ pOrder hM x • x = 0 
Arguments: {R : Type u_1} {M : Type u_2} [Monoid R] [AddCommMonoid M] [DistribMulAction R M] {p : R} (hM : Module.IsTorsion' M ↥(Submonoid.powers p)) (x : M) [(n : ℕ) → Decidable (p ^ n • x = 0)]
Goal: p ^ Submodule.pOrder hM x • x = 0
-- Submodule.exists_isTorsionBy
theorem exists_isTorsionBy {p : R} (hM : IsTorsion' M <| Submonoid.powers p) (d : ℕ) (hd : d ≠ 0)
    (s : Fin d → M) (hs : span R (Set.range s) = ⊤) :
    ∃ j : Fin d, Module.IsTorsionBy R M (p ^ pOrder hM (s j)) 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] [(x : M) → Decidable (x = 0)] {p : R} (hM : Module.IsTorsion' M ↥(Submonoid.powers p)) (d : ℕ) (hd : d ≠ 0) (s : Fin d → M) (hs : Submodule.span R (Set.range s) = ⊤)
Goal: ∃ j, Module.IsTorsionBy R M (p ^ Submodule.pOrder hM (s j))
-- Ideal.Quotient.torsionBy_eq_span_singleton
theorem torsionBy_eq_span_singleton {R : Type w} [CommRing R] (a b : R) (ha : a ∈ R⁰) :
    torsionBy R (R ⧸ R ∙ a * b) a = R ∙ mk (R ∙ a * b) b 
Arguments: {R : Type w} [CommRing R] (a b : R) (ha : a ∈ R⁰)
Goal: Submodule.torsionBy R (R ⧸ Submodule.span R {a * b}) a =
  Submodule.span R {(Ideal.Quotient.mk (Submodule.span R {a * b})) b}
-- AddMonoid.isTorsion_iff_isTorsion_nat
theorem isTorsion_iff_isTorsion_nat [AddCommMonoid M] :
    AddMonoid.IsTorsion M ↔ Module.IsTorsion ℕ M 
Arguments: {M : Type u_2} [AddCommMonoid M]
Goal: AddMonoid.IsTorsion M ↔ Module.IsTorsion ℕ M
-- AddMonoid.isTorsion_iff_isTorsion_int
theorem isTorsion_iff_isTorsion_int [AddCommGroup M] :
    AddMonoid.IsTorsion M ↔ Module.IsTorsion ℤ M 
Arguments: {M : Type u_2} [AddCommGroup M]
Goal: AddMonoid.IsTorsion M ↔ Module.IsTorsion ℤ M
-- Set.star_mem_center
theorem Set.star_mem_center (ha : a ∈ Set.center R) : star a ∈ Set.center R 
Arguments: {R : Type u_1} [Mul R] [StarMul R] {a : R} (ha : a ∈ Set.center R)
Goal: star a ∈ Set.center R
-- Set.star_mem_centralizer'
theorem Set.star_mem_centralizer' (h : ∀ a : R, a ∈ s → star a ∈ s) (ha : a ∈ Set.centralizer s) :
    star a ∈ Set.centralizer s 
Arguments: {R : Type u_1} [Mul R] [StarMul R] {a : R} {s : Set R} (h : ∀ a ∈ s, star a ∈ s) (ha : a ∈ s.centralizer)
Goal: star a ∈ s.centralizer
-- Set.star_mem_centralizer
theorem Set.star_mem_centralizer (ha : a ∈ Set.centralizer (s ∪ star s)) :
    star a ∈ Set.centralizer (s ∪ star s) 
Arguments: {R : Type u_1} [Mul R] [StarMul R] {a : R} {s : Set R} (ha : a ∈ (s ∪ star s).centralizer)
Goal: star a ∈ (s ∪ star s).centralizer
-- Module.Injective.out
@[mk_iff] class Module.Injective : Prop where
  out : ∀ ⦃X Y : Type v⦄ [AddCommGroup X] [AddCommGroup Y] [Module R X] [Module R Y]
    (f : X →ₗ[R] Y) (_ : Function.Injective f) (g : X →ₗ[R] Q),
    ∃ h : Y →ₗ[R] Q, ∀ x, h (f x) = g x
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] [self : Module.Injective R Q] ⦃X Y : Type v⦄ [AddCommGroup X] [AddCommGroup Y] [Module R X] [Module R Y] (f : X →ₗ[R] Y)
Goal: Function.Injective ⇑f → ∀ (g : X →ₗ[R] Q), ∃ h, ∀ (x : X), h (f x) = g x
-- Module.injective_iff
@[mk_iff] class Module.Injective : Prop where
  out : ∀ ⦃X Y : Type v⦄ [AddCommGroup X] [AddCommGroup Y] [Module R X] [Module R Y]
    (f : X →ₗ[R] Y) (_ : Function.Injective f) (g : X →ₗ[R] Q),
    ∃ h : Y →ₗ[R] Q, ∀ x, h (f x) = g x
Arguments: (R : Type u) [Ring R] (Q : Type v) [AddCommGroup Q] [Module R Q]
Goal: Module.Injective R Q ↔
  ∀ ⦃X Y : Type v⦄ [inst : AddCommGroup X] [inst_1 : AddCommGroup Y] [inst_2 : Module R X] [inst_3 : Module R Y]
    (f : X →ₗ[R] Y), Function.Injective ⇑f → ∀ (g : X →ₗ[R] Q), ∃ h, ∀ (x : X), h (f x) = g x
-- Module.injective_object_of_injective_module
theorem Module.injective_object_of_injective_module [inj : Module.Injective R Q] :
    CategoryTheory.Injective (ModuleCat.of R Q) 
Arguments: (R : Type u) [Ring R] (Q : Type v) [AddCommGroup Q] [Module R Q] [inj : Module.Injective R Q]
Goal: CategoryTheory.Injective (ModuleCat.of R Q)
-- Module.injective_module_of_injective_object
theorem Module.injective_module_of_injective_object
    [inj : CategoryTheory.Injective <| ModuleCat.of R Q] :
    Module.Injective R Q 
Arguments: (R : Type u) [Ring R] (Q : Type v) [AddCommGroup Q] [Module R Q] [inj : CategoryTheory.Injective (ModuleCat.of R Q)]
Goal: Module.Injective R Q
-- Module.injective_iff_injective_object
theorem Module.injective_iff_injective_object :
    Module.Injective R Q ↔
    CategoryTheory.Injective (ModuleCat.of R Q) 
Arguments: (R : Type u) [Ring R] (Q : Type v) [AddCommGroup Q] [Module R Q]
Goal: Module.Injective R Q ↔ CategoryTheory.Injective (ModuleCat.of R Q)
-- Module.Baer.ExtensionOf.le
structure ExtensionOf extends LinearPMap R N Q where
  le : LinearMap.range i ≤ domain
  is_extension : ∀ m : M, f m = toLinearPMap ⟨i m, le ⟨m, rfl⟩⟩
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] {i : M →ₗ[R] N} {f : M →ₗ[R] Q} (self : Module.Baer.ExtensionOf i f)
Goal: LinearMap.range i ≤ self.domain
-- Module.Baer.ExtensionOf.is_extension
structure ExtensionOf extends LinearPMap R N Q where
  le : LinearMap.range i ≤ domain
  is_extension : ∀ m : M, f m = toLinearPMap ⟨i m, le ⟨m, rfl⟩⟩
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] {i : M →ₗ[R] N} {f : M →ₗ[R] Q} (self : Module.Baer.ExtensionOf i f) (m : M)
Goal: f m = ↑self.toLinearPMap ⟨i m, ⋯⟩
-- Module.Baer.ExtensionOf.ext
@[ext]
theorem ExtensionOf.ext {a b : ExtensionOf i f} (domain_eq : a.domain = b.domain)
    (to_fun_eq :
      ∀ ⦃x : a.domain⦄ ⦃y : b.domain⦄, (x : N) = y → a.toLinearPMap x = b.toLinearPMap y) :
    a = b 
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] {i : M →ₗ[R] N} {f : M →ₗ[R] Q} {a b : Module.Baer.ExtensionOf i f} (domain_eq : a.domain = b.domain) (to_fun_eq : ∀ ⦃x : ↥a.domain⦄ ⦃y : ↥b.domain⦄, ↑x = ↑y → ↑a.toLinearPMap x = ↑b.toLinearPMap y)
Goal: a = b
-- Module.Baer.ExtensionOf.ext_iff
theorem ExtensionOf.ext_iff {a b : ExtensionOf i f} :
    a = b ↔ ∃ _ : a.domain = b.domain, ∀ ⦃x : a.domain⦄ ⦃y : b.domain⦄,
    (x : N) = y → a.toLinearPMap x = b.toLinearPMap y 
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] {i : M →ₗ[R] N} {f : M →ₗ[R] Q} {a b : Module.Baer.ExtensionOf i f}
Goal: a = b ↔ ∃ (_ : a.domain = b.domain), ∀ ⦃x : ↥a.domain⦄ ⦃y : ↥b.domain⦄, ↑x = ↑y → ↑a.toLinearPMap x = ↑b.toLinearPMap y
-- Module.Baer.chain_linearPMap_of_chain_extensionOf
theorem chain_linearPMap_of_chain_extensionOf {c : Set (ExtensionOf i f)}
    (hchain : IsChain (· ≤ ·) c) :
    IsChain (· ≤ ·) <| (fun x : ExtensionOf i f => x.toLinearPMap) '' c 
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] {i : M →ₗ[R] N} {f : M →ₗ[R] Q} {c : Set (Module.Baer.ExtensionOf i f)} (hchain : IsChain (fun x x_1 => x ≤ x_1) c)
Goal: IsChain (fun x x_1 => x ≤ x_1) ((fun x => x.toLinearPMap) '' c)
-- Module.Baer.ExtensionOf.le_max
theorem ExtensionOf.le_max {c : Set (ExtensionOf i f)} (hchain : IsChain (· ≤ ·) c)
    (hnonempty : c.Nonempty) (a : ExtensionOf i f) (ha : a ∈ c) :
    a ≤ ExtensionOf.max hchain hnonempty 
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] {i : M →ₗ[R] N} {f : M →ₗ[R] Q} {c : Set (Module.Baer.ExtensionOf i f)} (hchain : IsChain (fun x x_1 => x ≤ x_1) c) (hnonempty : c.Nonempty) (a : Module.Baer.ExtensionOf i f) (ha : a ∈ c)
Goal: a ≤ Module.Baer.ExtensionOf.max hchain hnonempty
-- Module.Baer.extensionOfMax_is_max
theorem extensionOfMax_is_max :
    ∀ a : ExtensionOf i f, extensionOfMax i f ≤ a → a = extensionOfMax i f 
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (i : M →ₗ[R] N) (f : M →ₗ[R] Q) [Fact (Function.Injective ⇑i)] (a : Module.Baer.ExtensionOf i f)
Goal: Module.Baer.extensionOfMax i f ≤ a → a = Module.Baer.extensionOfMax i f
-- _private.Mathlib.Algebra.Module.Injective.0.Module.Baer.extensionOfMax_adjoin.aux1
private theorem extensionOfMax_adjoin.aux1 {y : N} (x : supExtensionOfMaxSingleton i f y) :
    ∃ (a : (extensionOfMax i f).domain) (b : R), x.1 = a.1 + b • y 
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (i : M →ₗ[R] N) {f : M →ₗ[R] Q} [Fact (Function.Injective ⇑i)] {y : N} (x : ↥(Module.Baer.supExtensionOfMaxSingleton i f y))
Goal: ∃ a b, ↑x = ↑a + b • y
-- Module.Baer.ExtensionOfMaxAdjoin.eqn
theorem ExtensionOfMaxAdjoin.eqn {y : N} (x : supExtensionOfMaxSingleton i f y) :
    ↑x = ↑(ExtensionOfMaxAdjoin.fst i x) + ExtensionOfMaxAdjoin.snd i x • y 
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (i : M →ₗ[R] N) {f : M →ₗ[R] Q} [Fact (Function.Injective ⇑i)] {y : N} (x : ↥(Module.Baer.supExtensionOfMaxSingleton i f y))
Goal: ↑x = ↑(Module.Baer.ExtensionOfMaxAdjoin.fst i x) + Module.Baer.ExtensionOfMaxAdjoin.snd i x • y
-- Module.Baer.ExtensionOfMaxAdjoin.extendIdealTo_is_extension
theorem ExtensionOfMaxAdjoin.extendIdealTo_is_extension (h : Module.Baer R Q) (y : N) :
    ∀ (x : R) (mem : x ∈ ExtensionOfMaxAdjoin.ideal i f y),
      ExtensionOfMaxAdjoin.extendIdealTo i f h y x = ExtensionOfMaxAdjoin.idealTo i f y ⟨x, mem⟩ 
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (i : M →ₗ[R] N) (f : M →ₗ[R] Q) [Fact (Function.Injective ⇑i)] (h : Module.Baer R Q) (y : N) (x : R) (mem : x ∈ Module.Baer.ExtensionOfMaxAdjoin.ideal i f y)
Goal: (Module.Baer.ExtensionOfMaxAdjoin.extendIdealTo i f h y) x = (Module.Baer.ExtensionOfMaxAdjoin.idealTo i f y) ⟨x, mem⟩
-- Module.Baer.ExtensionOfMaxAdjoin.extendIdealTo_wd'
theorem ExtensionOfMaxAdjoin.extendIdealTo_wd' (h : Module.Baer R Q) {y : N} (r : R)
    (eq1 : r • y = 0) : ExtensionOfMaxAdjoin.extendIdealTo i f h y r = 0 
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (i : M →ₗ[R] N) (f : M →ₗ[R] Q) [Fact (Function.Injective ⇑i)] (h : Module.Baer R Q) {y : N} (r : R) (eq1 : r • y = 0)
Goal: (Module.Baer.ExtensionOfMaxAdjoin.extendIdealTo i f h y) r = 0
-- Module.Baer.ExtensionOfMaxAdjoin.extendIdealTo_wd
theorem ExtensionOfMaxAdjoin.extendIdealTo_wd (h : Module.Baer R Q) {y : N} (r r' : R)
    (eq1 : r • y = r' • y) : ExtensionOfMaxAdjoin.extendIdealTo i f h y r =
    ExtensionOfMaxAdjoin.extendIdealTo i f h y r' 
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (i : M →ₗ[R] N) (f : M →ₗ[R] Q) [Fact (Function.Injective ⇑i)] (h : Module.Baer R Q) {y : N} (r r' : R) (eq1 : r • y = r' • y)
Goal: (Module.Baer.ExtensionOfMaxAdjoin.extendIdealTo i f h y) r = (Module.Baer.ExtensionOfMaxAdjoin.extendIdealTo i f h y) r'
-- Module.Baer.ExtensionOfMaxAdjoin.extendIdealTo_eq
theorem ExtensionOfMaxAdjoin.extendIdealTo_eq (h : Module.Baer R Q) {y : N} (r : R)
    (hr : r • y ∈ (extensionOfMax i f).domain) : ExtensionOfMaxAdjoin.extendIdealTo i f h y r =
    (extensionOfMax i f).toLinearPMap ⟨r • y, hr⟩ 
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (i : M →ₗ[R] N) (f : M →ₗ[R] Q) [Fact (Function.Injective ⇑i)] (h : Module.Baer R Q) {y : N} (r : R) (hr : r • y ∈ (Module.Baer.extensionOfMax i f).domain)
Goal: (Module.Baer.ExtensionOfMaxAdjoin.extendIdealTo i f h y) r = ↑(Module.Baer.extensionOfMax i f).toLinearPMap ⟨r • y, hr⟩
-- Module.Baer.ExtensionOfMaxAdjoin.extensionToFun_wd
theorem ExtensionOfMaxAdjoin.extensionToFun_wd (h : Module.Baer R Q) {y : N}
    (x : supExtensionOfMaxSingleton i f y) (a : (extensionOfMax i f).domain)
    (r : R) (eq1 : ↑x = ↑a + r • y) :
    ExtensionOfMaxAdjoin.extensionToFun i f h x =
      (extensionOfMax i f).toLinearPMap a + ExtensionOfMaxAdjoin.extendIdealTo i f h y r 
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (i : M →ₗ[R] N) (f : M →ₗ[R] Q) [Fact (Function.Injective ⇑i)] (h : Module.Baer R Q) {y : N} (x : ↥(Module.Baer.supExtensionOfMaxSingleton i f y)) (a : ↥(Module.Baer.extensionOfMax i f).domain) (r : R) (eq1 : ↑x = ↑a + r • y)
Goal: Module.Baer.ExtensionOfMaxAdjoin.extensionToFun i f h x =
  ↑(Module.Baer.extensionOfMax i f).toLinearPMap a + (Module.Baer.ExtensionOfMaxAdjoin.extendIdealTo i f h y) r
-- Module.Baer.extensionOfMax_le
theorem extensionOfMax_le (h : Module.Baer R Q) {y : N} :
    extensionOfMax i f ≤ extensionOfMaxAdjoin i f h y 
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (i : M →ₗ[R] N) (f : M →ₗ[R] Q) [Fact (Function.Injective ⇑i)] (h : Module.Baer R Q) {y : N}
Goal: Module.Baer.extensionOfMax i f ≤ Module.Baer.extensionOfMaxAdjoin i f h y
-- Module.Baer.extensionOfMax_to_submodule_eq_top
theorem extensionOfMax_to_submodule_eq_top (h : Module.Baer R Q) :
    (extensionOfMax i f).domain = ⊤ 
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (i : M →ₗ[R] N) (f : M →ₗ[R] Q) [Fact (Function.Injective ⇑i)] (h : Module.Baer R Q)
Goal: (Module.Baer.extensionOfMax i f).domain = ⊤
-- Module.Baer.extension_property
protected theorem extension_property (h : Module.Baer R Q)
    (f : M →ₗ[R] N) (hf : Function.Injective f) (g : M →ₗ[R] Q) : ∃ h, h ∘ₗ f = g 
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (h : Module.Baer R Q) (f : M →ₗ[R] N) (hf : Function.Injective ⇑f) (g : M →ₗ[R] Q)
Goal: ∃ h, h ∘ₗ f = g
-- Module.Baer.extension_property_addMonoidHom
theorem extension_property_addMonoidHom (h : Module.Baer ℤ Q)
    (f : M →+ N) (hf : Function.Injective f) (g : M →+ Q) : ∃ h : N →+ Q, h.comp f = g 
Arguments: {Q : Type v} [AddCommGroup Q] {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] (h : Module.Baer ℤ Q) (f : M →+ N) (hf : Function.Injective ⇑f) (g : M →+ Q)
Goal: ∃ h, h.comp f = g
-- Module.Baer.injective
protected theorem injective (h : Module.Baer R Q) : Module.Injective R Q 
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] (h : Module.Baer R Q)
Goal: Module.Injective R Q
-- Module.Baer.of_injective
protected theorem of_injective [Small.{v} R] (inj : Module.Injective R Q) : Module.Baer R Q 
Arguments: {R : Type u} [Ring R] {Q : Type v} [AddCommGroup Q] [Module R Q] [Small.{v, u} R] (inj : Module.Injective R Q)
Goal: Module.Baer R Q