ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Module.FinitePresentation.out
class Module.FinitePresentation : Prop where
  out : ∃ (s : Finset M), Submodule.span R (s : Set M) = ⊤ ∧
    (LinearMap.ker (Finsupp.total s M R Subtype.val)).FG
Arguments: {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] [self : Module.FinitePresentation R M]
Goal: ∃ s, Submodule.span R ↑s = ⊤ ∧ (LinearMap.ker (Finsupp.total { x // x ∈ s } M R Subtype.val)).FG
-- Module.FinitePresentation.equiv_quotient
theorem Module.FinitePresentation.equiv_quotient [fp : Module.FinitePresentation R M] :
    ∃ (L : Type u) (_ : AddCommGroup L) (_ : Module R L) (K : Submodule R L) (_ : M ≃ₗ[R] L ⧸ K),
      Module.Free R L ∧ Module.Finite R L ∧ K.FG 
Arguments: (R M : Type u) [Ring R] [AddCommGroup M] [Module R M] [fp : Module.FinitePresentation R M]
Goal: ∃ L x x_1 K x_2, Module.Free R L ∧ Module.Finite R L ∧ K.FG
-- Module.finitePresentation_of_finite
lemma Module.finitePresentation_of_finite [IsNoetherianRing R] [h : Module.Finite R M] :
    Module.FinitePresentation R M 
Arguments: (R : Type u_1) (M : Type u_2) [Ring R] [AddCommGroup M] [Module R M] [IsNoetherianRing R] [h : Module.Finite R M]
Goal: Module.FinitePresentation R M
-- Module.finitePresentation_iff_finite
lemma Module.finitePresentation_iff_finite [IsNoetherianRing R] :
    Module.FinitePresentation R M ↔ Module.Finite R M 
Arguments: (R : Type u_1) (M : Type u_2) [Ring R] [AddCommGroup M] [Module R M] [IsNoetherianRing R]
Goal: Module.FinitePresentation R M ↔ Module.Finite R M
-- Module.finitePresentation_of_free_of_surjective
lemma Module.finitePresentation_of_free_of_surjective [Module.Free R M] [Module.Finite R M]
    (l : M →ₗ[R] N)
    (hl : Function.Surjective l) (hl' : (LinearMap.ker l).FG) :
    Module.FinitePresentation R N 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} [Ring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] [Module.Free R M] [Module.Finite R M] (l : M →ₗ[R] N) (hl : Function.Surjective ⇑l) (hl' : (LinearMap.ker l).FG)
Goal: Module.FinitePresentation R N
-- Module.finitePresentation_of_free
lemma Module.finitePresentation_of_free [Module.Free R M] [Module.Finite R M] :
    Module.FinitePresentation R M 
Arguments: (R : Type u_1) (M : Type u_2) [Ring R] [AddCommGroup M] [Module R M] [Module.Free R M] [Module.Finite R M]
Goal: Module.FinitePresentation R M
-- Module.finitePresentation_of_surjective
lemma Module.finitePresentation_of_surjective [h : Module.FinitePresentation R M] (l : M →ₗ[R] N)
    (hl : Function.Surjective l) (hl' : (LinearMap.ker l).FG) :
    Module.FinitePresentation R N 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} [Ring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] [h : Module.FinitePresentation R M] (l : M →ₗ[R] N) (hl : Function.Surjective ⇑l) (hl' : (LinearMap.ker l).FG)
Goal: Module.FinitePresentation R N
-- Module.FinitePresentation.fg_ker
lemma Module.FinitePresentation.fg_ker [Module.Finite R M]
    [h : Module.FinitePresentation R N] (l : M →ₗ[R] N) (hl : Function.Surjective l) :
    (LinearMap.ker l).FG 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} [Ring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] [Module.Finite R M] [h : Module.FinitePresentation R N] (l : M →ₗ[R] N) (hl : Function.Surjective ⇑l)
Goal: (LinearMap.ker l).FG
-- Module.FinitePresentation.fg_ker_iff
lemma Module.FinitePresentation.fg_ker_iff [Module.FinitePresentation R M]
    (l : M →ₗ[R] N) (hl : Function.Surjective l) :
    Submodule.FG (LinearMap.ker l) ↔ Module.FinitePresentation R N 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} [Ring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] [Module.FinitePresentation R M] (l : M →ₗ[R] N) (hl : Function.Surjective ⇑l)
Goal: (LinearMap.ker l).FG ↔ Module.FinitePresentation R N
-- Module.finitePresentation_of_ker
lemma Module.finitePresentation_of_ker [Module.FinitePresentation R N]
    (l : M →ₗ[R] N) (hl : Function.Surjective l) [Module.FinitePresentation R (LinearMap.ker l)] :
    Module.FinitePresentation R M 
Arguments: {R : Type u_1} {M : Type u_3} {N : Type u_2} [Ring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] [Module.FinitePresentation R N] (l : M →ₗ[R] N) (hl : Function.Surjective ⇑l) [Module.FinitePresentation R ↥(LinearMap.ker l)]
Goal: Module.FinitePresentation R M
-- Module.FinitePresentation.exists_lift_of_isLocalizedModule
lemma Module.FinitePresentation.exists_lift_of_isLocalizedModule
    [h : Module.FinitePresentation R M] (g : M →ₗ[R] N') :
    ∃ (h : M →ₗ[R] N) (s : S), f ∘ₗ h = s • g 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_4} {N' : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] [AddCommGroup N'] [Module R N'] (S : Submonoid R) (f : N →ₗ[R] N') [IsLocalizedModule S f] [h : Module.FinitePresentation R M] (g : M →ₗ[R] N')
Goal: ∃ h s, f ∘ₗ h = s • g
-- Module.Finite.exists_smul_of_comp_eq_of_isLocalizedModule
lemma Module.Finite.exists_smul_of_comp_eq_of_isLocalizedModule
    [hM : Module.Finite R M] (g₁ g₂ : M →ₗ[R] N) (h : f.comp g₁ = f.comp g₂) :
    ∃ (s : S), s • g₁ = s • g₂ 
Arguments: {R : Type u_1} {M : Type u_2} {N : Type u_3} {N' : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] [AddCommGroup N'] [Module R N'] (S : Submonoid R) (f : N →ₗ[R] N') [IsLocalizedModule S f] [hM : Module.Finite R M] (g₁ g₂ : M →ₗ[R] N) (h : f ∘ₗ g₁ = f ∘ₗ g₂)
Goal: ∃ s, s • g₁ = s • g₂
-- Module.FinitePresentation.isLocalizedModule_map
lemma Module.FinitePresentation.isLocalizedModule_map
    {M' : Type*} [AddCommGroup M'] [Module R M'] (f : M →ₗ[R] M') [IsLocalizedModule S f]
    {N' : Type*} [AddCommGroup N'] [Module R N'] (g : N →ₗ[R] N') [IsLocalizedModule S g]
    [Module.FinitePresentation R M] :
      IsLocalizedModule S (IsLocalizedModule.map S f g) 
Arguments: {R : Type u_3} {M : Type u_4} {N : Type u_5} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (S : Submonoid R) {M' : Type u_1} [AddCommGroup M'] [Module R M'] (f : M →ₗ[R] M') [IsLocalizedModule S f] {N' : Type u_2} [AddCommGroup N'] [Module R N'] (g : N →ₗ[R] N') [IsLocalizedModule S g] [Module.FinitePresentation R M]
Goal: IsLocalizedModule S (IsLocalizedModule.map S f g)
-- AddCommGroup.modEq_refl
@[refl, simp]
theorem modEq_refl (a : α) : a ≡ a [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p : α} (a : α)
Goal: a ≡ a [PMOD p]
-- AddCommGroup.modEq_rfl
theorem modEq_rfl : a ≡ a [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a : α}
Goal: a ≡ a [PMOD p]
-- AddCommGroup.modEq_comm
theorem modEq_comm : a ≡ b [PMOD p] ↔ b ≡ a [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α}
Goal: a ≡ b [PMOD p] ↔ b ≡ a [PMOD p]
-- AddCommGroup.ModEq.trans
@[trans]
theorem ModEq.trans : a ≡ b [PMOD p] → b ≡ c [PMOD p] → a ≡ c [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b c : α}
Goal: a ≡ b [PMOD p] → b ≡ c [PMOD p] → a ≡ c [PMOD p]
-- AddCommGroup.neg_modEq_neg
@[simp]
theorem neg_modEq_neg : -a ≡ -b [PMOD p] ↔ a ≡ b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α}
Goal: -a ≡ -b [PMOD p] ↔ a ≡ b [PMOD p]
-- AddCommGroup.modEq_neg
@[simp]
theorem modEq_neg : a ≡ b [PMOD -p] ↔ a ≡ b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α}
Goal: a ≡ b [PMOD -p] ↔ a ≡ b [PMOD p]
-- AddCommGroup.modEq_sub
theorem modEq_sub (a b : α) : a ≡ b [PMOD b - a] 
Arguments: {α : Type u_1} [AddCommGroup α] (a b : α)
Goal: a ≡ b [PMOD b - a]
-- AddCommGroup.modEq_zero
@[simp]
theorem modEq_zero : a ≡ b [PMOD 0] ↔ a = b 
Arguments: {α : Type u_1} [AddCommGroup α] {a b : α}
Goal: a ≡ b [PMOD 0] ↔ a = b
-- AddCommGroup.self_modEq_zero
@[simp]
theorem self_modEq_zero : p ≡ 0 [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p : α}
Goal: p ≡ 0 [PMOD p]
-- AddCommGroup.zsmul_modEq_zero
@[simp]
theorem zsmul_modEq_zero (z : ℤ) : z • p ≡ 0 [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p : α} (z : ℤ)
Goal: z • p ≡ 0 [PMOD p]
-- AddCommGroup.add_zsmul_modEq
theorem add_zsmul_modEq (z : ℤ) : a + z • p ≡ a [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a : α} (z : ℤ)
Goal: a + z • p ≡ a [PMOD p]
-- AddCommGroup.zsmul_add_modEq
theorem zsmul_add_modEq (z : ℤ) : z • p + a ≡ a [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a : α} (z : ℤ)
Goal: z • p + a ≡ a [PMOD p]
-- AddCommGroup.add_nsmul_modEq
theorem add_nsmul_modEq (n : ℕ) : a + n • p ≡ a [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a : α} (n : ℕ)
Goal: a + n • p ≡ a [PMOD p]
-- AddCommGroup.nsmul_add_modEq
theorem nsmul_add_modEq (n : ℕ) : n • p + a ≡ a [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a : α} (n : ℕ)
Goal: n • p + a ≡ a [PMOD p]
-- AddCommGroup.ModEq.add_zsmul
protected theorem add_zsmul (z : ℤ) : a ≡ b [PMOD p] → a + z • p ≡ b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α} (z : ℤ)
Goal: a ≡ b [PMOD p] → a + z • p ≡ b [PMOD p]
-- AddCommGroup.ModEq.zsmul_add
protected theorem zsmul_add (z : ℤ) : a ≡ b [PMOD p] → z • p + a ≡ b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α} (z : ℤ)
Goal: a ≡ b [PMOD p] → z • p + a ≡ b [PMOD p]
-- AddCommGroup.ModEq.add_nsmul
protected theorem add_nsmul (n : ℕ) : a ≡ b [PMOD p] → a + n • p ≡ b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α} (n : ℕ)
Goal: a ≡ b [PMOD p] → a + n • p ≡ b [PMOD p]
-- AddCommGroup.ModEq.nsmul_add
protected theorem nsmul_add (n : ℕ) : a ≡ b [PMOD p] → n • p + a ≡ b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α} (n : ℕ)
Goal: a ≡ b [PMOD p] → n • p + a ≡ b [PMOD p]
-- AddCommGroup.ModEq.of_zsmul
protected theorem of_zsmul : a ≡ b [PMOD z • p] → a ≡ b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α} {z : ℤ}
Goal: a ≡ b [PMOD z • p] → a ≡ b [PMOD p]
-- AddCommGroup.ModEq.of_nsmul
protected theorem of_nsmul : a ≡ b [PMOD n • p] → a ≡ b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α} {n : ℕ}
Goal: a ≡ b [PMOD n • p] → a ≡ b [PMOD p]
-- AddCommGroup.ModEq.zsmul
protected theorem zsmul : a ≡ b [PMOD p] → z • a ≡ z • b [PMOD z • p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α} {z : ℤ}
Goal: a ≡ b [PMOD p] → z • a ≡ z • b [PMOD z • p]
-- AddCommGroup.ModEq.nsmul
protected theorem nsmul : a ≡ b [PMOD p] → n • a ≡ n • b [PMOD n • p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α} {n : ℕ}
Goal: a ≡ b [PMOD p] → n • a ≡ n • b [PMOD n • p]
-- AddCommGroup.zsmul_modEq_zsmul
@[simp]
theorem zsmul_modEq_zsmul [NoZeroSMulDivisors ℤ α] (hn : z ≠ 0) :
    z • a ≡ z • b [PMOD z • p] ↔ a ≡ b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α} {z : ℤ} [NoZeroSMulDivisors ℤ α] (hn : z ≠ 0)
Goal: z • a ≡ z • b [PMOD z • p] ↔ a ≡ b [PMOD p]
-- AddCommGroup.nsmul_modEq_nsmul
@[simp]
theorem nsmul_modEq_nsmul [NoZeroSMulDivisors ℕ α] (hn : n ≠ 0) :
    n • a ≡ n • b [PMOD n • p] ↔ a ≡ b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α} {n : ℕ} [NoZeroSMulDivisors ℕ α] (hn : n ≠ 0)
Goal: n • a ≡ n • b [PMOD n • p] ↔ a ≡ b [PMOD p]
-- AddCommGroup.ModEq.add_iff_left
@[simp]
protected theorem add_iff_left :
    a₁ ≡ b₁ [PMOD p] → (a₁ + a₂ ≡ b₁ + b₂ [PMOD p] ↔ a₂ ≡ b₂ [PMOD p]) 
Arguments: {α : Type u_1} [AddCommGroup α] {p a₁ a₂ b₁ b₂ : α}
Goal: a₁ ≡ b₁ [PMOD p] → (a₁ + a₂ ≡ b₁ + b₂ [PMOD p] ↔ a₂ ≡ b₂ [PMOD p])
-- AddCommGroup.ModEq.add_iff_right
@[simp]
protected theorem add_iff_right :
    a₂ ≡ b₂ [PMOD p] → (a₁ + a₂ ≡ b₁ + b₂ [PMOD p] ↔ a₁ ≡ b₁ [PMOD p]) 
Arguments: {α : Type u_1} [AddCommGroup α] {p a₁ a₂ b₁ b₂ : α}
Goal: a₂ ≡ b₂ [PMOD p] → (a₁ + a₂ ≡ b₁ + b₂ [PMOD p] ↔ a₁ ≡ b₁ [PMOD p])
-- AddCommGroup.ModEq.sub_iff_left
@[simp]
protected theorem sub_iff_left :
    a₁ ≡ b₁ [PMOD p] → (a₁ - a₂ ≡ b₁ - b₂ [PMOD p] ↔ a₂ ≡ b₂ [PMOD p]) 
Arguments: {α : Type u_1} [AddCommGroup α] {p a₁ a₂ b₁ b₂ : α}
Goal: a₁ ≡ b₁ [PMOD p] → (a₁ - a₂ ≡ b₁ - b₂ [PMOD p] ↔ a₂ ≡ b₂ [PMOD p])
-- AddCommGroup.ModEq.sub_iff_right
@[simp]
protected theorem sub_iff_right :
    a₂ ≡ b₂ [PMOD p] → (a₁ - a₂ ≡ b₁ - b₂ [PMOD p] ↔ a₁ ≡ b₁ [PMOD p]) 
Arguments: {α : Type u_1} [AddCommGroup α] {p a₁ a₂ b₁ b₂ : α}
Goal: a₂ ≡ b₂ [PMOD p] → (a₁ - a₂ ≡ b₁ - b₂ [PMOD p] ↔ a₁ ≡ b₁ [PMOD p])
-- AddCommGroup.ModEq.add_left
protected theorem add_left (c : α) (h : a ≡ b [PMOD p]) : c + a ≡ c + b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α} (c : α) (h : a ≡ b [PMOD p])
Goal: c + a ≡ c + b [PMOD p]
-- AddCommGroup.ModEq.sub_left
protected theorem sub_left (c : α) (h : a ≡ b [PMOD p]) : c - a ≡ c - b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α} (c : α) (h : a ≡ b [PMOD p])
Goal: c - a ≡ c - b [PMOD p]
-- AddCommGroup.ModEq.add_right
protected theorem add_right (c : α) (h : a ≡ b [PMOD p]) : a + c ≡ b + c [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α} (c : α) (h : a ≡ b [PMOD p])
Goal: a + c ≡ b + c [PMOD p]
-- AddCommGroup.ModEq.sub_right
protected theorem sub_right (c : α) (h : a ≡ b [PMOD p]) : a - c ≡ b - c [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α} (c : α) (h : a ≡ b [PMOD p])
Goal: a - c ≡ b - c [PMOD p]
-- AddCommGroup.ModEq.add_left_cancel'
protected theorem add_left_cancel' (c : α) : c + a ≡ c + b [PMOD p] → a ≡ b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α} (c : α)
Goal: c + a ≡ c + b [PMOD p] → a ≡ b [PMOD p]
-- AddCommGroup.ModEq.add_right_cancel'
protected theorem add_right_cancel' (c : α) : a + c ≡ b + c [PMOD p] → a ≡ b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α} (c : α)
Goal: a + c ≡ b + c [PMOD p] → a ≡ b [PMOD p]
-- AddCommGroup.ModEq.sub_left_cancel'
protected theorem sub_left_cancel' (c : α) : c - a ≡ c - b [PMOD p] → a ≡ b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α} (c : α)
Goal: c - a ≡ c - b [PMOD p] → a ≡ b [PMOD p]
-- AddCommGroup.ModEq.sub_right_cancel'
protected theorem sub_right_cancel' (c : α) : a - c ≡ b - c [PMOD p] → a ≡ b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α} (c : α)
Goal: a - c ≡ b - c [PMOD p] → a ≡ b [PMOD p]
-- AddCommGroup.modEq_sub_iff_add_modEq'
theorem modEq_sub_iff_add_modEq' : a ≡ b - c [PMOD p] ↔ c + a ≡ b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b c : α}
Goal: a ≡ b - c [PMOD p] ↔ c + a ≡ b [PMOD p]
-- AddCommGroup.modEq_sub_iff_add_modEq
theorem modEq_sub_iff_add_modEq : a ≡ b - c [PMOD p] ↔ a + c ≡ b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b c : α}
Goal: a ≡ b - c [PMOD p] ↔ a + c ≡ b [PMOD p]
-- AddCommGroup.sub_modEq_iff_modEq_add'
theorem sub_modEq_iff_modEq_add' : a - b ≡ c [PMOD p] ↔ a ≡ b + c [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b c : α}
Goal: a - b ≡ c [PMOD p] ↔ a ≡ b + c [PMOD p]
-- AddCommGroup.sub_modEq_iff_modEq_add
theorem sub_modEq_iff_modEq_add : a - b ≡ c [PMOD p] ↔ a ≡ c + b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b c : α}
Goal: a - b ≡ c [PMOD p] ↔ a ≡ c + b [PMOD p]
-- AddCommGroup.sub_modEq_zero
@[simp]
theorem sub_modEq_zero : a - b ≡ 0 [PMOD p] ↔ a ≡ b [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α}
Goal: a - b ≡ 0 [PMOD p] ↔ a ≡ b [PMOD p]
-- AddCommGroup.add_modEq_left
@[simp]
theorem add_modEq_left : a + b ≡ a [PMOD p] ↔ b ≡ 0 [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α}
Goal: a + b ≡ a [PMOD p] ↔ b ≡ 0 [PMOD p]
-- AddCommGroup.add_modEq_right
@[simp]
theorem add_modEq_right : a + b ≡ b [PMOD p] ↔ a ≡ 0 [PMOD p] 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α}
Goal: a + b ≡ b [PMOD p] ↔ a ≡ 0 [PMOD p]
-- AddCommGroup.modEq_iff_eq_add_zsmul
theorem modEq_iff_eq_add_zsmul : a ≡ b [PMOD p] ↔ ∃ z : ℤ, b = a + z • p 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α}
Goal: a ≡ b [PMOD p] ↔ ∃ z, b = a + z • p
-- AddCommGroup.not_modEq_iff_ne_add_zsmul
theorem not_modEq_iff_ne_add_zsmul : ¬a ≡ b [PMOD p] ↔ ∀ z : ℤ, b ≠ a + z • p 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α}
Goal: ¬a ≡ b [PMOD p] ↔ ∀ (z : ℤ), b ≠ a + z • p
-- AddCommGroup.modEq_iff_eq_mod_zmultiples
theorem modEq_iff_eq_mod_zmultiples : a ≡ b [PMOD p] ↔ (b : α ⧸ AddSubgroup.zmultiples p) = a 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α}
Goal: a ≡ b [PMOD p] ↔ ↑b = ↑a
-- AddCommGroup.not_modEq_iff_ne_mod_zmultiples
theorem not_modEq_iff_ne_mod_zmultiples :
    ¬a ≡ b [PMOD p] ↔ (b : α ⧸ AddSubgroup.zmultiples p) ≠ a 
Arguments: {α : Type u_1} [AddCommGroup α] {p a b : α}
Goal: ¬a ≡ b [PMOD p] ↔ ↑b ≠ ↑a
-- AddCommGroup.modEq_iff_int_modEq
@[simp]
theorem modEq_iff_int_modEq {a b z : ℤ} : a ≡ b [PMOD z] ↔ a ≡ b [ZMOD z] 
Arguments: {a b z : ℤ}
Goal: a ≡ b [PMOD z] ↔ a ≡ b [ZMOD z]
-- AddCommGroup.intCast_modEq_intCast
@[simp, norm_cast]
theorem intCast_modEq_intCast {a b z : ℤ} : a ≡ b [PMOD (z : α)] ↔ a ≡ b [PMOD z] 
Arguments: {α : Type u_1} [AddCommGroupWithOne α] [CharZero α] {a b z : ℤ}
Goal: ↑a ≡ ↑b [PMOD ↑z] ↔ a ≡ b [PMOD z]
-- AddCommGroup.intCast_modEq_intCast'
@[simp, norm_cast]
lemma intCast_modEq_intCast' {a b : ℤ} {n : ℕ} : a ≡ b [PMOD (n : α)] ↔ a ≡ b [PMOD (n : ℤ)] 
Arguments: {α : Type u_1} [AddCommGroupWithOne α] [CharZero α] {a b : ℤ} {n : ℕ}
Goal: ↑a ≡ ↑b [PMOD ↑n] ↔ a ≡ b [PMOD ↑n]
-- AddCommGroup.natCast_modEq_natCast
@[simp, norm_cast]
theorem natCast_modEq_natCast {a b n : ℕ} : a ≡ b [PMOD (n : α)] ↔ a ≡ b [MOD n] 
Arguments: {α : Type u_1} [AddCommGroupWithOne α] [CharZero α] {a b n : ℕ}
Goal: ↑a ≡ ↑b [PMOD ↑n] ↔ a ≡ b [MOD n]
-- AddCommGroup.div_modEq_div
@[simp] lemma div_modEq_div (hc : c ≠ 0) : a / c ≡ b / c [PMOD p] ↔ a ≡ b [PMOD (p * c)] 
Arguments: {α : Type u_1} [DivisionRing α] {a b c p : α} (hc : c ≠ 0)
Goal: a / c ≡ b / c [PMOD p] ↔ a ≡ b [PMOD p * c]
-- MonCat.adjoinOne_map
@[to_additive (attr := simps) "The functor of adjoining a neutral element `zero` to a semigroup"]
def adjoinOne : Semigrp.{u} ⥤ MonCat.{u} 
Goal: ∀ {X Y : Semigrp} (f : ↑X →ₙ* ↑Y), MonCat.adjoinOne.map f = WithOne.map f
-- MonCat.adjoinOne_obj
@[to_additive (attr := simps) "The functor of adjoining a neutral element `zero` to a semigroup"]
def adjoinOne : Semigrp.{u} ⥤ MonCat.{u} 
Arguments: (S : Semigrp)
Goal: MonCat.adjoinOne.obj S = MonCat.of (WithOne ↑S)
-- AddMonCat.adjoinZero_obj
@[to_additive (attr := simps) "The functor of adjoining a neutral element `zero` to a semigroup"]
def adjoinOne : Semigrp.{u} ⥤ MonCat.{u} 
Arguments: (S : AddSemigrp)
Goal: AddMonCat.adjoinZero.obj S = AddMonCat.of (WithZero ↑S)
-- AddMonCat.adjoinZero_map
@[to_additive (attr := simps) "The functor of adjoining a neutral element `zero` to a semigroup"]
def adjoinOne : Semigrp.{u} ⥤ MonCat.{u} 
Goal: ∀ {X Y : AddSemigrp} (f : AddHom ↑X ↑Y), AddMonCat.adjoinZero.map f = WithZero.map f
-- AddMonCat.coe_id
@[to_additive (attr := simp)]
lemma coe_id {X : MonCat} : (𝟙 X : X → X) = id 
Arguments: {X : AddMonCat}
Goal: ⇑(𝟙 X) = id
-- MonCat.coe_id
@[to_additive (attr := simp)]
lemma coe_id {X : MonCat} : (𝟙 X : X → X) = id 
Arguments: {X : MonCat}
Goal: ⇑(𝟙 X) = id
-- MonCat.coe_comp
@[to_additive (attr := simp)]
lemma coe_comp {X Y Z : MonCat} {f : X ⟶ Y} {g : Y ⟶ Z} : (f ≫ g : X → Z) = g ∘ f 
Arguments: {X Y Z : MonCat} {f : X ⟶ Y} {g : Y ⟶ Z}
Goal: ⇑(f ≫ g) = ⇑g ∘ ⇑f
-- AddMonCat.coe_comp
@[to_additive (attr := simp)]
lemma coe_comp {X Y Z : MonCat} {f : X ⟶ Y} {g : Y ⟶ Z} : (f ≫ g : X → Z) = g ∘ f 
Arguments: {X Y Z : AddMonCat} {f : X ⟶ Y} {g : Y ⟶ Z}
Goal: ⇑(f ≫ g) = ⇑g ∘ ⇑f
-- MonCat.forget_map
@[to_additive (attr := simp)] lemma forget_map {X Y : MonCat} (f : X ⟶ Y) :
    (forget MonCat).map f = f 
Arguments: {X Y : MonCat} (f : X ⟶ Y)
Goal: (CategoryTheory.forget MonCat).map f = ⇑f
-- AddMonCat.forget_map
@[to_additive (attr := simp)] lemma forget_map {X Y : MonCat} (f : X ⟶ Y) :
    (forget MonCat).map f = f 
Arguments: {X Y : AddMonCat} (f : X ⟶ Y)
Goal: (CategoryTheory.forget AddMonCat).map f = ⇑f
-- AddMonCat.ext
@[to_additive (attr := ext)]
lemma ext {X Y : MonCat} {f g : X ⟶ Y} (w : ∀ x : X, f x = g x) : f = g 
Arguments: {X Y : AddMonCat} {f g : X ⟶ Y} (w : ∀ (x : ↑X), f x = g x)
Goal: f = g
-- MonCat.ext
@[to_additive (attr := ext)]
lemma ext {X Y : MonCat} {f g : X ⟶ Y} (w : ∀ x : X, f x = g x) : f = g 
Arguments: {X Y : MonCat} {f g : X ⟶ Y} (w : ∀ (x : ↑X), f x = g x)
Goal: f = g
-- MonCat.coe_of
@[to_additive]
theorem coe_of (R : Type u) [Monoid R] : (MonCat.of R : Type u) = R 
Arguments: (R : Type u) [Monoid R]
Goal: ↑(MonCat.of R) = R
-- AddMonCat.coe_of
@[to_additive]
theorem coe_of (R : Type u) [Monoid R] : (MonCat.of R : Type u) = R 
Arguments: (R : Type u) [AddMonoid R]
Goal: ↑(AddMonCat.of R) = R
-- MonCat.ofHom_apply
@[to_additive (attr := simp)]
lemma ofHom_apply {X Y : Type u} [Monoid X] [Monoid Y] (f : X →* Y) (x : X) :
    (ofHom f) x = f x 
Arguments: {X Y : Type u} [Monoid X] [Monoid Y] (f : X →* Y) (x : X)
Goal: (MonCat.ofHom f) x = f x
-- AddMonCat.ofHom_apply
@[to_additive (attr := simp)]
lemma ofHom_apply {X Y : Type u} [Monoid X] [Monoid Y] (f : X →* Y) (x : X) :
    (ofHom f) x = f x 
Arguments: {X Y : Type u} [AddMonoid X] [AddMonoid Y] (f : X →+ Y) (x : X)
Goal: (AddMonCat.ofHom f) x = f x
-- AddMonCat.zeroHom_apply
@[to_additive (attr := simp)]
lemma oneHom_apply (X Y : MonCat.{u}) (x : X) : (1 : X ⟶ Y) x = 1 
Arguments: (X Y : AddMonCat) (x : ↑X)
Goal: 0 x = 0
-- MonCat.oneHom_apply
@[to_additive (attr := simp)]
lemma oneHom_apply (X Y : MonCat.{u}) (x : X) : (1 : X ⟶ Y) x = 1 
Arguments: (X Y : MonCat) (x : ↑X)
Goal: 1 x = 1
-- MonCat.one_of
@[to_additive (attr := simp)]
lemma one_of {A : Type*} [Monoid A] : (1 : MonCat.of A) = (1 : A) 
Arguments: {A : Type u_1} [Monoid A]
Goal: 1 = 1
-- AddMonCat.zero_of
@[to_additive (attr := simp)]
lemma one_of {A : Type*} [Monoid A] : (1 : MonCat.of A) = (1 : A) 
Arguments: {A : Type u_1} [AddMonoid A]
Goal: 0 = 0
-- MonCat.mul_of
@[to_additive (attr := simp)]
lemma mul_of {A : Type*} [Monoid A] (a b : A) :
    @HMul.hMul (MonCat.of A) (MonCat.of A) (MonCat.of A) _ a b = a * b 
Arguments: {A : Type u_1} [Monoid A] (a b : A)
Goal: a * b = a * b
-- AddMonCat.add_of
@[to_additive (attr := simp)]
lemma mul_of {A : Type*} [Monoid A] (a b : A) :
    @HMul.hMul (MonCat.of A) (MonCat.of A) (MonCat.of A) _ a b = a * b 
Arguments: {A : Type u_1} [AddMonoid A] (a b : A)
Goal: a + b = a + b
-- AddMonCat.uliftFunctor_obj
@[to_additive (attr := simps)
  "Universe lift functor for additive monoids."]
def uliftFunctor : MonCat.{u} ⥤ MonCat.{max u v} 
Arguments: (X : AddMonCat)
Goal: AddMonCat.uliftFunctor.obj X = AddMonCat.of (ULift.{v, u} ↑X)
-- AddMonCat.uliftFunctor_map
@[to_additive (attr := simps)
  "Universe lift functor for additive monoids."]
def uliftFunctor : MonCat.{u} ⥤ MonCat.{max u v} 
Arguments: {X Y : AddMonCat} (f : X ⟶ Y)
Goal: AddMonCat.uliftFunctor.map f =
  AddMonCat.ofHom (AddEquiv.ulift.symm.toAddMonoidHom.comp (AddMonoidHom.comp f AddEquiv.ulift.toAddMonoidHom))
-- MonCat.uliftFunctor_obj
@[to_additive (attr := simps)
  "Universe lift functor for additive monoids."]
def uliftFunctor : MonCat.{u} ⥤ MonCat.{max u v} 
Arguments: (X : MonCat)
Goal: MonCat.uliftFunctor.obj X = MonCat.of (ULift.{v, u} ↑X)
-- MonCat.uliftFunctor_map
@[to_additive (attr := simps)
  "Universe lift functor for additive monoids."]
def uliftFunctor : MonCat.{u} ⥤ MonCat.{max u v} 
Arguments: {X Y : MonCat} (f : X ⟶ Y)
Goal: MonCat.uliftFunctor.map f =
  MonCat.ofHom (MulEquiv.ulift.symm.toMonoidHom.comp (MonoidHom.comp f MulEquiv.ulift.toMonoidHom))
-- CommMonCat.coe_id
@[to_additive (attr := simp)]
lemma coe_id {X : CommMonCat} : (𝟙 X : X → X) = id 
Arguments: {X : CommMonCat}
Goal: ⇑(𝟙 X) = id
-- AddCommMonCat.coe_id
@[to_additive (attr := simp)]
lemma coe_id {X : CommMonCat} : (𝟙 X : X → X) = id 
Arguments: {X : AddCommMonCat}
Goal: ⇑(𝟙 X) = id
-- AddCommMonCat.coe_comp
@[to_additive (attr := simp)]
lemma coe_comp {X Y Z : CommMonCat} {f : X ⟶ Y} {g : Y ⟶ Z} : (f ≫ g : X → Z) = g ∘ f 
Arguments: {X Y Z : AddCommMonCat} {f : X ⟶ Y} {g : Y ⟶ Z}
Goal: ⇑(f ≫ g) = ⇑g ∘ ⇑f
-- CommMonCat.coe_comp
@[to_additive (attr := simp)]
lemma coe_comp {X Y Z : CommMonCat} {f : X ⟶ Y} {g : Y ⟶ Z} : (f ≫ g : X → Z) = g ∘ f 
Arguments: {X Y Z : CommMonCat} {f : X ⟶ Y} {g : Y ⟶ Z}
Goal: ⇑(f ≫ g) = ⇑g ∘ ⇑f
-- CommMonCat.forget_map
@[to_additive (attr := simp)]
lemma forget_map {X Y : CommMonCat} (f : X ⟶ Y) :
    (forget CommMonCat).map f = (f : X → Y) 
Arguments: {X Y : CommMonCat} (f : X ⟶ Y)
Goal: (CategoryTheory.forget CommMonCat).map f = ⇑f