ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Function.Antiperiodic.sub_eq'
theorem Antiperiodic.sub_eq' [AddCommGroup α] [Neg β] (h : Antiperiodic f c) :
    f (c - x) = -f (-x) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c x : α} [AddCommGroup α] [Neg β] (h : Function.Antiperiodic f c)
Goal: f (c - x) = -f (-x)
-- Function.Antiperiodic.neg
protected theorem Antiperiodic.neg [AddGroup α] [InvolutiveNeg β] (h : Antiperiodic f c) :
    Antiperiodic f (-c) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c : α} [AddGroup α] [InvolutiveNeg β] (h : Function.Antiperiodic f c)
Goal: Function.Antiperiodic f (-c)
-- Function.Antiperiodic.neg_eq
theorem Antiperiodic.neg_eq [AddGroup α] [InvolutiveNeg β] (h : Antiperiodic f c) :
    f (-c) = -f 0 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c : α} [AddGroup α] [InvolutiveNeg β] (h : Function.Antiperiodic f c)
Goal: f (-c) = -f 0
-- Function.Antiperiodic.nat_mul_eq_of_eq_zero
theorem Antiperiodic.nat_mul_eq_of_eq_zero [Semiring α] [NegZeroClass β] (h : Antiperiodic f c)
    (hi : f 0 = 0) : ∀ n : ℕ, f (n * c) = 0
  
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c : α} [Semiring α] [NegZeroClass β] (h : Function.Antiperiodic f c) (hi : f 0 = 0) (n : ℕ)
Goal: f (↑n * c) = 0
-- Function.Antiperiodic.int_mul_eq_of_eq_zero
theorem Antiperiodic.int_mul_eq_of_eq_zero [Ring α] [SubtractionMonoid β] (h : Antiperiodic f c)
    (hi : f 0 = 0) : ∀ n : ℤ, f (n * c) = 0
  
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c : α} [Ring α] [SubtractionMonoid β] (h : Function.Antiperiodic f c) (hi : f 0 = 0) (n : ℤ)
Goal: f (↑n * c) = 0
-- Function.Antiperiodic.add_zsmul_eq
theorem Antiperiodic.add_zsmul_eq [AddGroup α] [AddGroup β] (h : Antiperiodic f c) (n : ℤ) :
    f (x + n • c) = (n.negOnePow : ℤ) • f x 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c x : α} [AddGroup α] [AddGroup β] (h : Function.Antiperiodic f c) (n : ℤ)
Goal: f (x + n • c) = ↑n.negOnePow • f x
-- Function.Antiperiodic.sub_zsmul_eq
theorem Antiperiodic.sub_zsmul_eq [AddGroup α] [AddGroup β] (h : Antiperiodic f c) (n : ℤ) :
    f (x - n • c) = (n.negOnePow : ℤ) • f x 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c x : α} [AddGroup α] [AddGroup β] (h : Function.Antiperiodic f c) (n : ℤ)
Goal: f (x - n • c) = ↑n.negOnePow • f x
-- Function.Antiperiodic.zsmul_sub_eq
theorem Antiperiodic.zsmul_sub_eq [AddCommGroup α] [AddGroup β] (h : Antiperiodic f c) (n : ℤ) :
    f (n • c - x) = (n.negOnePow : ℤ) • f (-x) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c x : α} [AddCommGroup α] [AddGroup β] (h : Function.Antiperiodic f c) (n : ℤ)
Goal: f (n • c - x) = ↑n.negOnePow • f (-x)
-- Function.Antiperiodic.add_int_mul_eq
theorem Antiperiodic.add_int_mul_eq [Ring α] [Ring β] (h : Antiperiodic f c) (n : ℤ) :
    f (x + n * c) = (n.negOnePow : ℤ) * f x 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c x : α} [Ring α] [Ring β] (h : Function.Antiperiodic f c) (n : ℤ)
Goal: f (x + ↑n * c) = ↑↑n.negOnePow * f x
-- Function.Antiperiodic.sub_int_mul_eq
theorem Antiperiodic.sub_int_mul_eq [Ring α] [Ring β] (h : Antiperiodic f c) (n : ℤ) :
    f (x - n * c) = (n.negOnePow : ℤ) * f x 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c x : α} [Ring α] [Ring β] (h : Function.Antiperiodic f c) (n : ℤ)
Goal: f (x - ↑n * c) = ↑↑n.negOnePow * f x
-- Function.Antiperiodic.int_mul_sub_eq
theorem Antiperiodic.int_mul_sub_eq [Ring α] [Ring β] (h : Antiperiodic f c) (n : ℤ) :
    f (n * c - x) = (n.negOnePow : ℤ) * f (-x) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c x : α} [Ring α] [Ring β] (h : Function.Antiperiodic f c) (n : ℤ)
Goal: f (↑n * c - x) = ↑↑n.negOnePow * f (-x)
-- Function.Antiperiodic.add_nsmul_eq
theorem Antiperiodic.add_nsmul_eq [AddMonoid α] [AddGroup β] (h : Antiperiodic f c) (n : ℕ) :
    f (x + n • c) = (-1) ^ n • f x 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c x : α} [AddMonoid α] [AddGroup β] (h : Function.Antiperiodic f c) (n : ℕ)
Goal: f (x + n • c) = (-1) ^ n • f x
-- Function.Antiperiodic.sub_nsmul_eq
theorem Antiperiodic.sub_nsmul_eq [AddGroup α] [AddGroup β] (h : Antiperiodic f c) (n : ℕ) :
    f (x - n • c) = (-1) ^ n • f x 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c x : α} [AddGroup α] [AddGroup β] (h : Function.Antiperiodic f c) (n : ℕ)
Goal: f (x - n • c) = (-1) ^ n • f x
-- Function.Antiperiodic.nsmul_sub_eq
theorem Antiperiodic.nsmul_sub_eq [AddCommGroup α] [AddGroup β] (h : Antiperiodic f c) (n : ℕ) :
    f (n • c - x) = (-1) ^ n • f (-x) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c x : α} [AddCommGroup α] [AddGroup β] (h : Function.Antiperiodic f c) (n : ℕ)
Goal: f (n • c - x) = (-1) ^ n • f (-x)
-- Function.Antiperiodic.add_nat_mul_eq
theorem Antiperiodic.add_nat_mul_eq [Semiring α] [Ring β] (h : Antiperiodic f c) (n : ℕ) :
    f (x + n * c) = (-1) ^ n * f x 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c x : α} [Semiring α] [Ring β] (h : Function.Antiperiodic f c) (n : ℕ)
Goal: f (x + ↑n * c) = (-1) ^ n * f x
-- Function.Antiperiodic.sub_nat_mul_eq
theorem Antiperiodic.sub_nat_mul_eq [Ring α] [Ring β] (h : Antiperiodic f c) (n : ℕ) :
    f (x - n * c) = (-1) ^ n * f x 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c x : α} [Ring α] [Ring β] (h : Function.Antiperiodic f c) (n : ℕ)
Goal: f (x - ↑n * c) = (-1) ^ n * f x
-- Function.Antiperiodic.nat_mul_sub_eq
theorem Antiperiodic.nat_mul_sub_eq [Ring α] [Ring β] (h : Antiperiodic f c) (n : ℕ) :
    f (n * c - x) = (-1) ^ n * f (-x) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c x : α} [Ring α] [Ring β] (h : Function.Antiperiodic f c) (n : ℕ)
Goal: f (↑n * c - x) = (-1) ^ n * f (-x)
-- Function.Antiperiodic.const_add
theorem Antiperiodic.const_add [AddSemigroup α] [Neg β] (h : Antiperiodic f c) (a : α) :
    Antiperiodic (fun x => f (a + x)) c 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c : α} [AddSemigroup α] [Neg β] (h : Function.Antiperiodic f c) (a : α)
Goal: Function.Antiperiodic (fun x => f (a + x)) c
-- Function.Antiperiodic.add_const
theorem Antiperiodic.add_const [AddCommSemigroup α] [Neg β] (h : Antiperiodic f c) (a : α) :
    Antiperiodic (fun x => f (x + a)) c 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c : α} [AddCommSemigroup α] [Neg β] (h : Function.Antiperiodic f c) (a : α)
Goal: Function.Antiperiodic (fun x => f (x + a)) c
-- Function.Antiperiodic.const_sub
theorem Antiperiodic.const_sub [AddCommGroup α] [InvolutiveNeg β] (h : Antiperiodic f c) (a : α) :
    Antiperiodic (fun x => f (a - x)) c 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c : α} [AddCommGroup α] [InvolutiveNeg β] (h : Function.Antiperiodic f c) (a : α)
Goal: Function.Antiperiodic (fun x => f (a - x)) c
-- Function.Antiperiodic.sub_const
theorem Antiperiodic.sub_const [AddCommGroup α] [Neg β] (h : Antiperiodic f c) (a : α) :
    Antiperiodic (fun x => f (x - a)) c 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c : α} [AddCommGroup α] [Neg β] (h : Function.Antiperiodic f c) (a : α)
Goal: Function.Antiperiodic (fun x => f (x - a)) c
-- Function.Antiperiodic.smul
theorem Antiperiodic.smul [Add α] [Monoid γ] [AddGroup β] [DistribMulAction γ β]
    (h : Antiperiodic f c) (a : γ) : Antiperiodic (a • f) c 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {f : α → β} {c : α} [Add α] [Monoid γ] [AddGroup β] [DistribMulAction γ β] (h : Function.Antiperiodic f c) (a : γ)
Goal: Function.Antiperiodic (a • f) c
-- Function.Antiperiodic.const_smul
theorem Antiperiodic.const_smul [AddMonoid α] [Neg β] [Group γ] [DistribMulAction γ α]
    (h : Antiperiodic f c) (a : γ) : Antiperiodic (fun x => f (a • x)) (a⁻¹ • c) 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {f : α → β} {c : α} [AddMonoid α] [Neg β] [Group γ] [DistribMulAction γ α] (h : Function.Antiperiodic f c) (a : γ)
Goal: Function.Antiperiodic (fun x => f (a • x)) (a⁻¹ • c)
-- Function.Antiperiodic.const_smul₀
theorem Antiperiodic.const_smul₀ [AddCommMonoid α] [Neg β] [DivisionSemiring γ] [Module γ α]
    (h : Antiperiodic f c) {a : γ} (ha : a ≠ 0) : Antiperiodic (fun x => f (a • x)) (a⁻¹ • c) 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {f : α → β} {c : α} [AddCommMonoid α] [Neg β] [DivisionSemiring γ] [Module γ α] (h : Function.Antiperiodic f c) {a : γ} (ha : a ≠ 0)
Goal: Function.Antiperiodic (fun x => f (a • x)) (a⁻¹ • c)
-- Function.Antiperiodic.const_mul
theorem Antiperiodic.const_mul [DivisionSemiring α] [Neg β] (h : Antiperiodic f c) {a : α}
    (ha : a ≠ 0) : Antiperiodic (fun x => f (a * x)) (a⁻¹ * c) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c : α} [DivisionSemiring α] [Neg β] (h : Function.Antiperiodic f c) {a : α} (ha : a ≠ 0)
Goal: Function.Antiperiodic (fun x => f (a * x)) (a⁻¹ * c)
-- Function.Antiperiodic.const_inv_smul
theorem Antiperiodic.const_inv_smul [AddMonoid α] [Neg β] [Group γ] [DistribMulAction γ α]
    (h : Antiperiodic f c) (a : γ) : Antiperiodic (fun x => f (a⁻¹ • x)) (a • c) 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {f : α → β} {c : α} [AddMonoid α] [Neg β] [Group γ] [DistribMulAction γ α] (h : Function.Antiperiodic f c) (a : γ)
Goal: Function.Antiperiodic (fun x => f (a⁻¹ • x)) (a • c)
-- Function.Antiperiodic.const_inv_smul₀
theorem Antiperiodic.const_inv_smul₀ [AddCommMonoid α] [Neg β] [DivisionSemiring γ] [Module γ α]
    (h : Antiperiodic f c) {a : γ} (ha : a ≠ 0) : Antiperiodic (fun x => f (a⁻¹ • x)) (a • c) 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {f : α → β} {c : α} [AddCommMonoid α] [Neg β] [DivisionSemiring γ] [Module γ α] (h : Function.Antiperiodic f c) {a : γ} (ha : a ≠ 0)
Goal: Function.Antiperiodic (fun x => f (a⁻¹ • x)) (a • c)
-- Function.Antiperiodic.const_inv_mul
theorem Antiperiodic.const_inv_mul [DivisionSemiring α] [Neg β] (h : Antiperiodic f c) {a : α}
    (ha : a ≠ 0) : Antiperiodic (fun x => f (a⁻¹ * x)) (a * c) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c : α} [DivisionSemiring α] [Neg β] (h : Function.Antiperiodic f c) {a : α} (ha : a ≠ 0)
Goal: Function.Antiperiodic (fun x => f (a⁻¹ * x)) (a * c)
-- Function.Antiperiodic.mul_const
theorem Antiperiodic.mul_const [DivisionSemiring α] [Neg β] (h : Antiperiodic f c) {a : α}
    (ha : a ≠ 0) : Antiperiodic (fun x => f (x * a)) (c * a⁻¹) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c : α} [DivisionSemiring α] [Neg β] (h : Function.Antiperiodic f c) {a : α} (ha : a ≠ 0)
Goal: Function.Antiperiodic (fun x => f (x * a)) (c * a⁻¹)
-- Function.Antiperiodic.mul_const'
theorem Antiperiodic.mul_const' [DivisionSemiring α] [Neg β] (h : Antiperiodic f c) {a : α}
    (ha : a ≠ 0) : Antiperiodic (fun x => f (x * a)) (c / a) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c : α} [DivisionSemiring α] [Neg β] (h : Function.Antiperiodic f c) {a : α} (ha : a ≠ 0)
Goal: Function.Antiperiodic (fun x => f (x * a)) (c / a)
-- Function.Antiperiodic.mul_const_inv
theorem Antiperiodic.mul_const_inv [DivisionSemiring α] [Neg β] (h : Antiperiodic f c) {a : α}
    (ha : a ≠ 0) : Antiperiodic (fun x => f (x * a⁻¹)) (c * a) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c : α} [DivisionSemiring α] [Neg β] (h : Function.Antiperiodic f c) {a : α} (ha : a ≠ 0)
Goal: Function.Antiperiodic (fun x => f (x * a⁻¹)) (c * a)
-- Function.Antiperiodic.div_inv
theorem Antiperiodic.div_inv [DivisionSemiring α] [Neg β] (h : Antiperiodic f c) {a : α}
    (ha : a ≠ 0) : Antiperiodic (fun x => f (x / a)) (c * a) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c : α} [DivisionSemiring α] [Neg β] (h : Function.Antiperiodic f c) {a : α} (ha : a ≠ 0)
Goal: Function.Antiperiodic (fun x => f (x / a)) (c * a)
-- Function.Antiperiodic.add
theorem Antiperiodic.add [AddGroup α] [InvolutiveNeg β] (h1 : Antiperiodic f c₁)
    (h2 : Antiperiodic f c₂) : Periodic f (c₁ + c₂) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c₁ c₂ : α} [AddGroup α] [InvolutiveNeg β] (h1 : Function.Antiperiodic f c₁) (h2 : Function.Antiperiodic f c₂)
Goal: Function.Periodic f (c₁ + c₂)
-- Function.Antiperiodic.sub
theorem Antiperiodic.sub [AddGroup α] [InvolutiveNeg β] (h1 : Antiperiodic f c₁)
    (h2 : Antiperiodic f c₂) : Periodic f (c₁ - c₂) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c₁ c₂ : α} [AddGroup α] [InvolutiveNeg β] (h1 : Function.Antiperiodic f c₁) (h2 : Function.Antiperiodic f c₂)
Goal: Function.Periodic f (c₁ - c₂)
-- Function.Periodic.add_antiperiod
theorem Periodic.add_antiperiod [AddGroup α] [Neg β] (h1 : Periodic f c₁) (h2 : Antiperiodic f c₂) :
    Antiperiodic f (c₁ + c₂) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c₁ c₂ : α} [AddGroup α] [Neg β] (h1 : Function.Periodic f c₁) (h2 : Function.Antiperiodic f c₂)
Goal: Function.Antiperiodic f (c₁ + c₂)
-- Function.Periodic.sub_antiperiod
theorem Periodic.sub_antiperiod [AddGroup α] [InvolutiveNeg β] (h1 : Periodic f c₁)
    (h2 : Antiperiodic f c₂) : Antiperiodic f (c₁ - c₂) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c₁ c₂ : α} [AddGroup α] [InvolutiveNeg β] (h1 : Function.Periodic f c₁) (h2 : Function.Antiperiodic f c₂)
Goal: Function.Antiperiodic f (c₁ - c₂)
-- Function.Periodic.add_antiperiod_eq
theorem Periodic.add_antiperiod_eq [AddGroup α] [Neg β] (h1 : Periodic f c₁)
    (h2 : Antiperiodic f c₂) : f (c₁ + c₂) = -f 0 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c₁ c₂ : α} [AddGroup α] [Neg β] (h1 : Function.Periodic f c₁) (h2 : Function.Antiperiodic f c₂)
Goal: f (c₁ + c₂) = -f 0
-- Function.Periodic.sub_antiperiod_eq
theorem Periodic.sub_antiperiod_eq [AddGroup α] [InvolutiveNeg β] (h1 : Periodic f c₁)
    (h2 : Antiperiodic f c₂) : f (c₁ - c₂) = -f 0 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {c₁ c₂ : α} [AddGroup α] [InvolutiveNeg β] (h1 : Function.Periodic f c₁) (h2 : Function.Antiperiodic f c₂)
Goal: f (c₁ - c₂) = -f 0
-- Function.Antiperiodic.mul
theorem Antiperiodic.mul [Add α] [Mul β] [HasDistribNeg β] (hf : Antiperiodic f c)
    (hg : Antiperiodic g c) : Periodic (f * g) c 
Arguments: {α : Type u_1} {β : Type u_2} {f g : α → β} {c : α} [Add α] [Mul β] [HasDistribNeg β] (hf : Function.Antiperiodic f c) (hg : Function.Antiperiodic g c)
Goal: Function.Periodic (f * g) c
-- Function.Antiperiodic.div
theorem Antiperiodic.div [Add α] [DivisionMonoid β] [HasDistribNeg β] (hf : Antiperiodic f c)
    (hg : Antiperiodic g c) : Periodic (f / g) c 
Arguments: {α : Type u_1} {β : Type u_2} {f g : α → β} {c : α} [Add α] [DivisionMonoid β] [HasDistribNeg β] (hf : Function.Antiperiodic f c) (hg : Function.Antiperiodic g c)
Goal: Function.Periodic (f / g) c
-- Int.fract_periodic
theorem Int.fract_periodic (α) [LinearOrderedRing α] [FloorRing α] :
    Function.Periodic Int.fract (1 : α) 
Arguments: (α : Type u_4) [LinearOrderedRing α] [FloorRing α]
Goal: Function.Periodic Int.fract 1
-- Submodule.coe_restrictScalars
@[simp]
theorem coe_restrictScalars (V : Submodule R M) : (V.restrictScalars S : Set M) = V 
Arguments: (S : Type u_1) {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [Semiring S] [Module S M] [Module R M] [SMul S R] [IsScalarTower S R M] (V : Submodule R M)
Goal: ↑(Submodule.restrictScalars S V) = ↑V
-- Submodule.toAddSubmonoid_restrictScalars
@[simp]
theorem toAddSubmonoid_restrictScalars (V : Submodule R M) :
    (V.restrictScalars S).toAddSubmonoid = V.toAddSubmonoid 
Arguments: (S : Type u_1) {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [Semiring S] [Module S M] [Module R M] [SMul S R] [IsScalarTower S R M] (V : Submodule R M)
Goal: (Submodule.restrictScalars S V).toAddSubmonoid = V.toAddSubmonoid
-- Submodule.restrictScalars_mem
@[simp]
theorem restrictScalars_mem (V : Submodule R M) (m : M) : m ∈ V.restrictScalars S ↔ m ∈ V 
Arguments: (S : Type u_1) {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [Semiring S] [Module S M] [Module R M] [SMul S R] [IsScalarTower S R M] (V : Submodule R M) (m : M)
Goal: m ∈ Submodule.restrictScalars S V ↔ m ∈ V
-- Submodule.restrictScalars_self
@[simp]
theorem restrictScalars_self (V : Submodule R M) : V.restrictScalars R = V 
Arguments: {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [Module R M] (V : Submodule R M)
Goal: Submodule.restrictScalars R V = V
-- Submodule.restrictScalars_injective
theorem restrictScalars_injective :
    Function.Injective (restrictScalars S : Submodule R M → Submodule S M) 
Arguments: (S : Type u_1) (R : Type u_2) (M : Type u_3) [Semiring R] [AddCommMonoid M] [Semiring S] [Module S M] [Module R M] [SMul S R] [IsScalarTower S R M]
Goal: Function.Injective (Submodule.restrictScalars S)
-- Submodule.restrictScalars_inj
@[simp]
theorem restrictScalars_inj {V₁ V₂ : Submodule R M} :
    restrictScalars S V₁ = restrictScalars S V₂ ↔ V₁ = V₂ 
Arguments: (S : Type u_1) (R : Type u_2) (M : Type u_3) [Semiring R] [AddCommMonoid M] [Semiring S] [Module S M] [Module R M] [SMul S R] [IsScalarTower S R M] {V₁ V₂ : Submodule R M}
Goal: Submodule.restrictScalars S V₁ = Submodule.restrictScalars S V₂ ↔ V₁ = V₂
-- Submodule.restrictScalarsEmbedding_apply
@[simps]
def restrictScalarsEmbedding : Submodule R M ↪o Submodule S M 
Arguments: (S : Type u_1) (R : Type u_2) (M : Type u_3) [Semiring R] [AddCommMonoid M] [Semiring S] [Module S M] [Module R M] [SMul S R] [IsScalarTower S R M] (V : Submodule R M)
Goal: (Submodule.restrictScalarsEmbedding S R M) V = Submodule.restrictScalars S V
-- Submodule.restrictScalarsEquiv_apply
@[simps (config := { simpRhs := true })]
def restrictScalarsEquiv (p : Submodule R M) : p.restrictScalars S ≃ₗ[R] p 
Arguments: (S : Type u_1) (R : Type u_2) (M : Type u_3) [Semiring R] [AddCommMonoid M] [Semiring S] [Module S M] [Module R M] [SMul S R] [IsScalarTower S R M] (p : Submodule R M)
Goal: ∀ (a : ↥p), (Submodule.restrictScalarsEquiv S R M p) a = a
-- Submodule.restrictScalarsEquiv_symm_apply
@[simps (config := { simpRhs := true })]
def restrictScalarsEquiv (p : Submodule R M) : p.restrictScalars S ≃ₗ[R] p 
Arguments: (S : Type u_1) (R : Type u_2) (M : Type u_3) [Semiring R] [AddCommMonoid M] [Semiring S] [Module S M] [Module R M] [SMul S R] [IsScalarTower S R M] (p : Submodule R M)
Goal: ∀ (a : ↥p), (Submodule.restrictScalarsEquiv S R M p).symm a = a
-- Submodule.restrictScalars_bot
@[simp]
theorem restrictScalars_bot : restrictScalars S (⊥ : Submodule R M) = ⊥ 
Arguments: (S : Type u_1) (R : Type u_2) (M : Type u_3) [Semiring R] [AddCommMonoid M] [Semiring S] [Module S M] [Module R M] [SMul S R] [IsScalarTower S R M]
Goal: Submodule.restrictScalars S ⊥ = ⊥
-- Submodule.restrictScalars_eq_bot_iff
@[simp]
theorem restrictScalars_eq_bot_iff {p : Submodule R M} : restrictScalars S p = ⊥ ↔ p = ⊥ 
Arguments: (S : Type u_1) (R : Type u_2) (M : Type u_3) [Semiring R] [AddCommMonoid M] [Semiring S] [Module S M] [Module R M] [SMul S R] [IsScalarTower S R M] {p : Submodule R M}
Goal: Submodule.restrictScalars S p = ⊥ ↔ p = ⊥
-- Submodule.restrictScalars_top
@[simp]
theorem restrictScalars_top : restrictScalars S (⊤ : Submodule R M) = ⊤ 
Arguments: (S : Type u_1) (R : Type u_2) (M : Type u_3) [Semiring R] [AddCommMonoid M] [Semiring S] [Module S M] [Module R M] [SMul S R] [IsScalarTower S R M]
Goal: Submodule.restrictScalars S ⊤ = ⊤
-- Submodule.restrictScalars_eq_top_iff
@[simp]
theorem restrictScalars_eq_top_iff {p : Submodule R M} : restrictScalars S p = ⊤ ↔ p = ⊤ 
Arguments: (S : Type u_1) (R : Type u_2) (M : Type u_3) [Semiring R] [AddCommMonoid M] [Semiring S] [Module S M] [Module R M] [SMul S R] [IsScalarTower S R M] {p : Submodule R M}
Goal: Submodule.restrictScalars S p = ⊤ ↔ p = ⊤
-- Module.Projective.out
class Module.Projective (R : Type*) [Semiring R] (P : Type*) [AddCommMonoid P] [Module R P] :
    Prop where
  out : ∃ s : P →ₗ[R] P →₀ R, Function.LeftInverse (Finsupp.total P P R id) s
Arguments: {R : Type u_1} [Semiring R] {P : Type u_2} [AddCommMonoid P] [Module R P] [self : Module.Projective R P]
Goal: ∃ s, Function.LeftInverse ⇑(Finsupp.total P P R id) ⇑s
-- Module.projective_def
theorem projective_def :
    Projective R P ↔ ∃ s : P →ₗ[R] P →₀ R, Function.LeftInverse (Finsupp.total P P R id) s 
Arguments: {R : Type u_1} [Semiring R] {P : Type u_2} [AddCommMonoid P] [Module R P]
Goal: Module.Projective R P ↔ ∃ s, Function.LeftInverse ⇑(Finsupp.total P P R id) ⇑s
-- Module.projective_def'
theorem projective_def' :
    Projective R P ↔ ∃ s : P →ₗ[R] P →₀ R, Finsupp.total P P R id ∘ₗ s = .id 
Arguments: {R : Type u_1} [Semiring R] {P : Type u_2} [AddCommMonoid P] [Module R P]
Goal: Module.Projective R P ↔ ∃ s, Finsupp.total P P R id ∘ₗ s = LinearMap.id
-- Module.projective_lifting_property
theorem projective_lifting_property [h : Projective R P] (f : M →ₗ[R] N) (g : P →ₗ[R] N)
    (hf : Function.Surjective f) : ∃ h : P →ₗ[R] M, f.comp h = g 
Arguments: {R : Type u_1} [Semiring R] {P : Type u_2} [AddCommMonoid P] [Module R P] {M : Type u_3} [AddCommMonoid M] [Module R M] {N : Type u_4} [AddCommMonoid N] [Module R N] [h : Module.Projective R P] (f : M →ₗ[R] N) (g : P →ₗ[R] N) (hf : Function.Surjective ⇑f)
Goal: ∃ h, f ∘ₗ h = g
-- Module.Projective.of_lifting_property''
theorem Projective.of_lifting_property'' {R : Type u} [Semiring R] {P : Type v} [AddCommMonoid P]
    [Module R P] (huniv : ∀ (f : (P →₀ R) →ₗ[R] P), Function.Surjective f →
      ∃ h : P →ₗ[R] (P →₀ R), f.comp h = .id) :
    Projective R P 
Arguments: {R : Type u} [Semiring R] {P : Type v} [AddCommMonoid P] [Module R P] (huniv : ∀ (f : (P →₀ R) →ₗ[R] P), Function.Surjective ⇑f → ∃ h, f ∘ₗ h = LinearMap.id)
Goal: Module.Projective R P
-- Module.Projective.of_basis
theorem Projective.of_basis {ι : Type*} (b : Basis ι R P) : Projective R P 
Arguments: {R : Type u} [Ring R] {P : Type v} [AddCommGroup P] [Module R P] {ι : Type u_1} (b : Basis ι R P)
Goal: Module.Projective R P
-- Module.Projective.of_split
theorem Projective.of_split [Module.Projective R M]
    (i : P →ₗ[R] M) (s : M →ₗ[R] P) (H : s.comp i = LinearMap.id) : Module.Projective R P 
Arguments: {R : Type u} [Ring R] {P : Type v} [AddCommGroup P] [Module R P] {M : Type u_1} [AddCommGroup M] [Module R M] [Module.Projective R M] (i : P →ₗ[R] M) (s : M →ₗ[R] P) (H : s ∘ₗ i = LinearMap.id)
Goal: Module.Projective R P
-- Module.Projective.of_equiv
theorem Projective.of_equiv [Module.Projective R M]
    (e : M ≃ₗ[R] P) : Module.Projective R P 
Arguments: {R : Type u} [Ring R] {P : Type v} [AddCommGroup P] [Module R P] {M : Type u_1} [AddCommGroup M] [Module R M] [Module.Projective R M] (e : M ≃ₗ[R] P)
Goal: Module.Projective R P
-- Module.Projective.iff_split
theorem Projective.iff_split : Module.Projective R P ↔
    ∃ (M : Type max u v) (_ : AddCommGroup M) (_ : Module R M) (_ : Module.Free R M)
      (i : P →ₗ[R] M) (s : M →ₗ[R] P), s.comp i = LinearMap.id 
Arguments: {R : Type u} [Ring R] {P : Type v} [AddCommGroup P] [Module R P]
Goal: Module.Projective R P ↔ ∃ M x x_1, ∃ (_ : Module.Free R M), ∃ i s, s ∘ₗ i = LinearMap.id
-- Module.Projective.iff_split_of_projective
theorem Projective.iff_split_of_projective [Module.Projective R M] (s : M →ₗ[R] P)
    (hs : Function.Surjective s) :
    Module.Projective R P ↔ ∃ i, s ∘ₗ i = LinearMap.id 
Arguments: {R : Type u} [Ring R] {P : Type v} [AddCommGroup P] [Module R P] {M : Type u_1} [AddCommGroup M] [Module R M] [Module.Projective R M] (s : M →ₗ[R] P) (hs : Function.Surjective ⇑s)
Goal: Module.Projective R P ↔ ∃ i, s ∘ₗ i = LinearMap.id
-- Module.Projective.of_lifting_property'
theorem Projective.of_lifting_property' {R : Type u} [Semiring R] {P : Type max u v}
    [AddCommMonoid P] [Module R P]
    -- If for all surjections of `R`-modules `M →ₗ N`, all maps `P →ₗ N` lift to `P →ₗ M`,
    (huniv : ∀ {M : Type max v u} {N : Type max u v} [AddCommMonoid M] [AddCommMonoid N]
      [Module R M] [Module R N] (f : M →ₗ[R] N) (g : P →ₗ[R] N),
        Function.Surjective f → ∃ h : P →ₗ[R] M, f.comp h = g) :
    -- then `P` is projective.
    Projective R P 
Arguments: {R : Type u} [Semiring R] {P : Type (max u v)} [AddCommMonoid P] [Module R P] (huniv :
  ∀ {M : Type (max v u)} {N : Type (max u v)} [inst : AddCommMonoid M] [inst_1 : AddCommMonoid N] [inst_2 : Module R M]
    [inst_3 : Module R N] (f : M →ₗ[R] N) (g : P →ₗ[R] N), Function.Surjective ⇑f → ∃ h, f ∘ₗ h = g)
Goal: Module.Projective R P