ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Polynomial.IsEisensteinAt.not_mem
@[mk_iff]
structure IsEisensteinAt [CommSemiring R] (f : R[X]) (𝓟 : Ideal R) : Prop where
  leading : f.leadingCoeff ∉ 𝓟
  mem : ∀ {n}, n < f.natDegree → f.coeff n ∈ 𝓟
  not_mem : f.coeff 0 ∉ 𝓟 ^ 2
Arguments: {R : Type u} [CommSemiring R] {f : R[X]} {𝓟 : Ideal R} (self : f.IsEisensteinAt 𝓟)
Goal: f.coeff 0 ∉ 𝓟 ^ 2
-- Polynomial.IsWeaklyEisensteinAt.map
theorem map {A : Type v} [CommRing A] (φ : R →+* A) : (f.map φ).IsWeaklyEisensteinAt (𝓟.map φ) 
Arguments: {R : Type u} [CommSemiring R] {𝓟 : Ideal R} {f : R[X]} (hf : f.IsWeaklyEisensteinAt 𝓟) {A : Type v} [CommRing A] (φ : R →+* A)
Goal: (Polynomial.map φ f).IsWeaklyEisensteinAt (Ideal.map φ 𝓟)
-- Polynomial.IsWeaklyEisensteinAt.exists_mem_adjoin_mul_eq_pow_natDegree
theorem exists_mem_adjoin_mul_eq_pow_natDegree {x : S} (hx : aeval x f = 0) (hmo : f.Monic)
    (hf : f.IsWeaklyEisensteinAt (Submodule.span R {p})) : ∃ y ∈ adjoin R ({x} : Set S),
    (algebraMap R S) p * y = x ^ (f.map (algebraMap R S)).natDegree 
Arguments: {R : Type u} [CommRing R] {f : R[X]} {S : Type v} [CommRing S] [Algebra R S] {p : R} {x : S} (hx : (Polynomial.aeval x) f = 0) (hmo : f.Monic) (hf : f.IsWeaklyEisensteinAt (Submodule.span R {p}))
Goal: ∃ y ∈ Algebra.adjoin R {x}, (algebraMap R S) p * y = x ^ (Polynomial.map (algebraMap R S) f).natDegree
-- Polynomial.IsWeaklyEisensteinAt.exists_mem_adjoin_mul_eq_pow_natDegree_le
theorem exists_mem_adjoin_mul_eq_pow_natDegree_le {x : S} (hx : aeval x f = 0) (hmo : f.Monic)
    (hf : f.IsWeaklyEisensteinAt (Submodule.span R {p})) :
    ∀ i, (f.map (algebraMap R S)).natDegree ≤ i →
        ∃ y ∈ adjoin R ({x} : Set S), (algebraMap R S) p * y = x ^ i 
Arguments: {R : Type u} [CommRing R] {f : R[X]} {S : Type v} [CommRing S] [Algebra R S] {p : R} {x : S} (hx : (Polynomial.aeval x) f = 0) (hmo : f.Monic) (hf : f.IsWeaklyEisensteinAt (Submodule.span R {p})) (i : ℕ)
Goal: (Polynomial.map (algebraMap R S) f).natDegree ≤ i → ∃ y ∈ Algebra.adjoin R {x}, (algebraMap R S) p * y = x ^ i
-- Polynomial.IsWeaklyEisensteinAt.pow_natDegree_le_of_root_of_monic_mem
theorem pow_natDegree_le_of_root_of_monic_mem {x : R} (hroot : IsRoot f x) (hmo : f.Monic) :
    ∀ i, f.natDegree ≤ i → x ^ i ∈ 𝓟 
Arguments: {R : Type u} [CommRing R] {𝓟 : Ideal R} {f : R[X]} (hf : f.IsWeaklyEisensteinAt 𝓟) {x : R} (hroot : f.IsRoot x) (hmo : f.Monic) (i : ℕ)
Goal: f.natDegree ≤ i → x ^ i ∈ 𝓟
-- Polynomial.IsWeaklyEisensteinAt.pow_natDegree_le_of_aeval_zero_of_monic_mem_map
theorem pow_natDegree_le_of_aeval_zero_of_monic_mem_map {x : S} (hx : aeval x f = 0)
    (hmo : f.Monic) :
    ∀ i, (f.map (algebraMap R S)).natDegree ≤ i → x ^ i ∈ 𝓟.map (algebraMap R S) 
Arguments: {R : Type u} [CommRing R] {𝓟 : Ideal R} {f : R[X]} (hf : f.IsWeaklyEisensteinAt 𝓟) {S : Type v} [CommRing S] [Algebra R S] {x : S} (hx : (Polynomial.aeval x) f = 0) (hmo : f.Monic) (i : ℕ)
Goal: (Polynomial.map (algebraMap R S) f).natDegree ≤ i → x ^ i ∈ Ideal.map (algebraMap R S) 𝓟
-- Polynomial.scaleRoots.isWeaklyEisensteinAt
theorem scaleRoots.isWeaklyEisensteinAt (p : R[X]) {x : R} {P : Ideal R} (hP : x ∈ P) :
    (scaleRoots p x).IsWeaklyEisensteinAt P 
Arguments: {R : Type u} [CommRing R] (p : R[X]) {x : R} {P : Ideal R} (hP : x ∈ P)
Goal: (p.scaleRoots x).IsWeaklyEisensteinAt P
-- Polynomial.dvd_pow_natDegree_of_eval₂_eq_zero
theorem dvd_pow_natDegree_of_eval₂_eq_zero {f : R →+* A} (hf : Function.Injective f) {p : R[X]}
    (hp : p.Monic) (x y : R) (z : A) (h : p.eval₂ f z = 0) (hz : f x * z = f y) :
    x ∣ y ^ p.natDegree 
Arguments: {R : Type u} {A : Type u_1} [CommRing R] [CommRing A] {f : R →+* A} (hf : Function.Injective ⇑f) {p : R[X]} (hp : p.Monic) (x y : R) (z : A) (h : Polynomial.eval₂ f z p = 0) (hz : f x * z = f y)
Goal: x ∣ y ^ p.natDegree
-- Polynomial.dvd_pow_natDegree_of_aeval_eq_zero
theorem dvd_pow_natDegree_of_aeval_eq_zero [Algebra R A] [Nontrivial A] [NoZeroSMulDivisors R A]
    {p : R[X]} (hp : p.Monic) (x y : R) (z : A) (h : Polynomial.aeval z p = 0)
    (hz : z * algebraMap R A x = algebraMap R A y) : x ∣ y ^ p.natDegree 
Arguments: {R : Type u} {A : Type u_1} [CommRing R] [CommRing A] [Algebra R A] [Nontrivial A] [NoZeroSMulDivisors R A] {p : R[X]} (hp : p.Monic) (x y : R) (z : A) (h : (Polynomial.aeval z) p = 0) (hz : z * (algebraMap R A) x = (algebraMap R A) y)
Goal: x ∣ y ^ p.natDegree
-- Polynomial.Monic.leadingCoeff_not_mem
theorem _root_.Polynomial.Monic.leadingCoeff_not_mem (hf : f.Monic) (h : 𝓟 ≠ ⊤) :
    ¬f.leadingCoeff ∈ 𝓟 
Arguments: {R : Type u} [CommSemiring R] {𝓟 : Ideal R} {f : R[X]} (hf : f.Monic) (h : 𝓟 ≠ ⊤)
Goal: f.leadingCoeff ∉ 𝓟
-- Polynomial.Monic.isEisensteinAt_of_mem_of_not_mem
theorem _root_.Polynomial.Monic.isEisensteinAt_of_mem_of_not_mem (hf : f.Monic) (h : 𝓟 ≠ ⊤)
    (hmem : ∀ {n}, n < f.natDegree → f.coeff n ∈ 𝓟) (hnot_mem : f.coeff 0 ∉ 𝓟 ^ 2) :
    f.IsEisensteinAt 𝓟 
Arguments: {R : Type u} [CommSemiring R] {𝓟 : Ideal R} {f : R[X]} (hf : f.Monic) (h : 𝓟 ≠ ⊤) (hmem : ∀ {n : ℕ}, n < f.natDegree → f.coeff n ∈ 𝓟) (hnot_mem : f.coeff 0 ∉ 𝓟 ^ 2)
Goal: f.IsEisensteinAt 𝓟
-- Polynomial.IsEisensteinAt.isWeaklyEisensteinAt
theorem isWeaklyEisensteinAt : IsWeaklyEisensteinAt f 𝓟 
Arguments: {R : Type u} [CommSemiring R] {𝓟 : Ideal R} {f : R[X]} (hf : f.IsEisensteinAt 𝓟)
Goal: f.IsWeaklyEisensteinAt 𝓟
-- Polynomial.IsEisensteinAt.coeff_mem
theorem coeff_mem {n : ℕ} (hn : n ≠ f.natDegree) : f.coeff n ∈ 𝓟 
Arguments: {R : Type u} [CommSemiring R] {𝓟 : Ideal R} {f : R[X]} (hf : f.IsEisensteinAt 𝓟) {n : ℕ} (hn : n ≠ f.natDegree)
Goal: f.coeff n ∈ 𝓟
-- Polynomial.IsEisensteinAt.irreducible
theorem irreducible (hprime : 𝓟.IsPrime) (hu : f.IsPrimitive) (hfd0 : 0 < f.natDegree) :
    Irreducible f 
Arguments: {R : Type u} [CommRing R] [IsDomain R] {𝓟 : Ideal R} {f : R[X]} (hf : f.IsEisensteinAt 𝓟) (hprime : 𝓟.IsPrime) (hu : f.IsPrimitive) (hfd0 : 0 < f.natDegree)
Goal: Irreducible f
-- RingHom.isIntegral_stableUnderComposition
theorem isIntegral_stableUnderComposition : StableUnderComposition fun f => f.IsIntegral 
Goal: RingHom.StableUnderComposition fun {R S} [CommRing R] [CommRing S] f => f.IsIntegral
-- RingHom.isIntegral_respectsIso
theorem isIntegral_respectsIso : RespectsIso fun f => f.IsIntegral 
Goal: RingHom.RespectsIso fun {R S} [CommRing R] [CommRing S] f => f.IsIntegral
-- RingHom.isIntegral_stableUnderBaseChange
theorem isIntegral_stableUnderBaseChange : StableUnderBaseChange fun f => f.IsIntegral 
Goal: RingHom.StableUnderBaseChange fun {R S} [CommRing R] [CommRing S] f => f.IsIntegral
-- Polynomial.cyclotomic_expand_eq_cyclotomic_mul
@[simp]
theorem cyclotomic_expand_eq_cyclotomic_mul {p n : ℕ} (hp : Nat.Prime p) (hdiv : ¬p ∣ n)
    (R : Type*) [CommRing R] :
    expand R p (cyclotomic n R) = cyclotomic (n * p) R * cyclotomic n R 
Arguments: {p n : ℕ} (hp : Nat.Prime p) (hdiv : ¬p ∣ n) (R : Type u_1) [CommRing R]
Goal: (Polynomial.expand R p) (Polynomial.cyclotomic n R) = Polynomial.cyclotomic (n * p) R * Polynomial.cyclotomic n R
-- Polynomial.cyclotomic_expand_eq_cyclotomic
@[simp]
theorem cyclotomic_expand_eq_cyclotomic {p n : ℕ} (hp : Nat.Prime p) (hdiv : p ∣ n) (R : Type*)
    [CommRing R] : expand R p (cyclotomic n R) = cyclotomic (n * p) R 
Arguments: {p n : ℕ} (hp : Nat.Prime p) (hdiv : p ∣ n) (R : Type u_1) [CommRing R]
Goal: (Polynomial.expand R p) (Polynomial.cyclotomic n R) = Polynomial.cyclotomic (n * p) R
-- Polynomial.cyclotomic_irreducible_pow_of_irreducible_pow
theorem cyclotomic_irreducible_pow_of_irreducible_pow {p : ℕ} (hp : Nat.Prime p) {R} [CommRing R]
    [IsDomain R] {n m : ℕ} (hmn : m ≤ n) (h : Irreducible (cyclotomic (p ^ n) R)) :
    Irreducible (cyclotomic (p ^ m) R) 
Arguments: {p : ℕ} (hp : Nat.Prime p) {R : Type u_1} [CommRing R] [IsDomain R] {n m : ℕ} (hmn : m ≤ n) (h : Irreducible (Polynomial.cyclotomic (p ^ n) R))
Goal: Irreducible (Polynomial.cyclotomic (p ^ m) R)
-- Polynomial.cyclotomic_irreducible_of_irreducible_pow
theorem cyclotomic_irreducible_of_irreducible_pow {p : ℕ} (hp : Nat.Prime p) {R} [CommRing R]
    [IsDomain R] {n : ℕ} (hn : n ≠ 0) (h : Irreducible (cyclotomic (p ^ n) R)) :
    Irreducible (cyclotomic p R) 
Arguments: {p : ℕ} (hp : Nat.Prime p) {R : Type u_1} [CommRing R] [IsDomain R] {n : ℕ} (hn : n ≠ 0) (h : Irreducible (Polynomial.cyclotomic (p ^ n) R))
Goal: Irreducible (Polynomial.cyclotomic p R)
-- Polynomial.cyclotomic_mul_prime_eq_pow_of_not_dvd
theorem cyclotomic_mul_prime_eq_pow_of_not_dvd (R : Type*) {p n : ℕ} [hp : Fact (Nat.Prime p)]
    [Ring R] [CharP R p] (hn : ¬p ∣ n) : cyclotomic (n * p) R = cyclotomic n R ^ (p - 1) 
Arguments: (R : Type u_1) {p n : ℕ} [hp : Fact (Nat.Prime p)] [Ring R] [CharP R p] (hn : ¬p ∣ n)
Goal: Polynomial.cyclotomic (n * p) R = Polynomial.cyclotomic n R ^ (p - 1)
-- Polynomial.cyclotomic_mul_prime_dvd_eq_pow
theorem cyclotomic_mul_prime_dvd_eq_pow (R : Type*) {p n : ℕ} [hp : Fact (Nat.Prime p)] [Ring R]
    [CharP R p] (hn : p ∣ n) : cyclotomic (n * p) R = cyclotomic n R ^ p 
Arguments: (R : Type u_1) {p n : ℕ} [hp : Fact (Nat.Prime p)] [Ring R] [CharP R p] (hn : p ∣ n)
Goal: Polynomial.cyclotomic (n * p) R = Polynomial.cyclotomic n R ^ p
-- Polynomial.cyclotomic_mul_prime_pow_eq
theorem cyclotomic_mul_prime_pow_eq (R : Type*) {p m : ℕ} [Fact (Nat.Prime p)] [Ring R] [CharP R p]
    (hm : ¬p ∣ m) : ∀ {k}, 0 < k → cyclotomic (p ^ k * m) R = cyclotomic m R ^ (p ^ k - p ^ (k - 1))
  
Arguments: (R : Type u_1) {p m : ℕ} [Fact (Nat.Prime p)] [Ring R] [CharP R p] (hm : ¬p ∣ m) {k : ℕ}
Goal: 0 < k → Polynomial.cyclotomic (p ^ k * m) R = Polynomial.cyclotomic m R ^ (p ^ k - p ^ (k - 1))
-- Polynomial.isRoot_cyclotomic_prime_pow_mul_iff_of_charP
theorem isRoot_cyclotomic_prime_pow_mul_iff_of_charP {m k p : ℕ} {R : Type*} [CommRing R]
    [IsDomain R] [hp : Fact (Nat.Prime p)] [hchar : CharP R p] {μ : R} [NeZero (m : R)] :
    (Polynomial.cyclotomic (p ^ k * m) R).IsRoot μ ↔ IsPrimitiveRoot μ m 
Arguments: {m k p : ℕ} {R : Type u_1} [CommRing R] [IsDomain R] [hp : Fact (Nat.Prime p)] [hchar : CharP R p] {μ : R} [NeZero ↑m]
Goal: (Polynomial.cyclotomic (p ^ k * m) R).IsRoot μ ↔ IsPrimitiveRoot μ m
-- RingHom.finite_stableUnderComposition
theorem finite_stableUnderComposition : StableUnderComposition @Finite 
Goal: RingHom.StableUnderComposition @RingHom.Finite
-- RingHom.finite_respectsIso
theorem finite_respectsIso : RespectsIso @Finite 
Goal: RingHom.RespectsIso @RingHom.Finite
-- RingHom.finite_stableUnderBaseChange
theorem finite_stableUnderBaseChange : StableUnderBaseChange @Finite 
Goal: RingHom.StableUnderBaseChange @RingHom.Finite
-- IsHausdorff.haus'
class IsHausdorff : Prop where
  haus' : ∀ x : M, (∀ n : ℕ, x ≡ 0 [SMOD (I ^ n • ⊤ : Submodule R M)]) → x = 0
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] [self : IsHausdorff I M] (x : M)
Goal: (∀ (n : ℕ), x ≡ 0 [SMOD I ^ n • ⊤]) → x = 0
-- IsPrecomplete.prec'
class IsPrecomplete : Prop where
  prec' : ∀ f : ℕ → M, (∀ {m n}, m ≤ n → f m ≡ f n [SMOD (I ^ m • ⊤ : Submodule R M)]) →
    ∃ L : M, ∀ n, f n ≡ L [SMOD (I ^ n • ⊤ : Submodule R M)]
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] [self : IsPrecomplete I M] (f : ℕ → M)
Goal: (∀ {m n : ℕ}, m ≤ n → f m ≡ f n [SMOD I ^ m • ⊤]) → ∃ L, ∀ (n : ℕ), f n ≡ L [SMOD I ^ n • ⊤]
-- IsHausdorff.haus
theorem IsHausdorff.haus (_ : IsHausdorff I M) :
    ∀ x : M, (∀ n : ℕ, x ≡ 0 [SMOD (I ^ n • ⊤ : Submodule R M)]) → x = 0 
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M]
Goal: IsHausdorff I M → ∀ (x : M), (∀ (n : ℕ), x ≡ 0 [SMOD I ^ n • ⊤]) → x = 0
-- isHausdorff_iff
theorem isHausdorff_iff :
    IsHausdorff I M ↔ ∀ x : M, (∀ n : ℕ, x ≡ 0 [SMOD (I ^ n • ⊤ : Submodule R M)]) → x = 0 
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M]
Goal: IsHausdorff I M ↔ ∀ (x : M), (∀ (n : ℕ), x ≡ 0 [SMOD I ^ n • ⊤]) → x = 0
-- IsPrecomplete.prec
theorem IsPrecomplete.prec (_ : IsPrecomplete I M) {f : ℕ → M} :
    (∀ {m n}, m ≤ n → f m ≡ f n [SMOD (I ^ m • ⊤ : Submodule R M)]) →
      ∃ L : M, ∀ n, f n ≡ L [SMOD (I ^ n • ⊤ : Submodule R M)] 
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M]
Goal: IsPrecomplete I M →
  ∀ {f : ℕ → M}, (∀ {m n : ℕ}, m ≤ n → f m ≡ f n [SMOD I ^ m • ⊤]) → ∃ L, ∀ (n : ℕ), f n ≡ L [SMOD I ^ n • ⊤]
-- isPrecomplete_iff
theorem isPrecomplete_iff :
    IsPrecomplete I M ↔
      ∀ f : ℕ → M,
        (∀ {m n}, m ≤ n → f m ≡ f n [SMOD (I ^ m • ⊤ : Submodule R M)]) →
          ∃ L : M, ∀ n, f n ≡ L [SMOD (I ^ n • ⊤ : Submodule R M)] 
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M]
Goal: IsPrecomplete I M ↔
  ∀ (f : ℕ → M), (∀ {m n : ℕ}, m ≤ n → f m ≡ f n [SMOD I ^ m • ⊤]) → ∃ L, ∀ (n : ℕ), f n ≡ L [SMOD I ^ n • ⊤]
-- IsHausdorff.subsingleton
protected theorem subsingleton (h : IsHausdorff (⊤ : Ideal R) M) : Subsingleton M 
Arguments: {R : Type u_1} [CommRing R] {M : Type u_2} [AddCommGroup M] [Module R M] (h : IsHausdorff ⊤ M)
Goal: Subsingleton M
-- IsHausdorff.iInf_pow_smul
theorem iInf_pow_smul (h : IsHausdorff I M) : (⨅ n : ℕ, I ^ n • ⊤ : Submodule R M) = ⊥ 
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] (h : IsHausdorff I M)
Goal: ⨅ n, I ^ n • ⊤ = ⊥
-- Hausdorffification.induction_on
@[elab_as_elim]
theorem induction_on {C : Hausdorffification I M → Prop} (x : Hausdorffification I M)
    (ih : ∀ x, C (of I M x)) : C x 
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] {C : Hausdorffification I M → Prop} (x : Hausdorffification I M) (ih : ∀ (x : M), C ((Hausdorffification.of I M) x))
Goal: C x
-- Hausdorffification.lift_of
theorem lift_of (f : M →ₗ[R] N) (x : M) : lift I f (of I M x) = f x 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] [h : IsHausdorff I N] (f : M →ₗ[R] N) (x : M)
Goal: (Hausdorffification.lift I f) ((Hausdorffification.of I M) x) = f x
-- Hausdorffification.lift_comp_of
theorem lift_comp_of (f : M →ₗ[R] N) : (lift I f).comp (of I M) = f 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] [h : IsHausdorff I N] (f : M →ₗ[R] N)
Goal: Hausdorffification.lift I f ∘ₗ Hausdorffification.of I M = f
-- Hausdorffification.lift_eq
theorem lift_eq (f : M →ₗ[R] N) (g : Hausdorffification I M →ₗ[R] N) (hg : g.comp (of I M) = f) :
    g = lift I f 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] [h : IsHausdorff I N] (f : M →ₗ[R] N) (g : Hausdorffification I M →ₗ[R] N) (hg : g ∘ₗ Hausdorffification.of I M = f)
Goal: g = Hausdorffification.lift I f
-- AdicCompletion.incl_apply
@[simps]
def incl : AdicCompletion I M →ₗ[R] (∀ n, M ⧸ (I ^ n • ⊤ : Submodule R M)) 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (x : AdicCompletion I M) (n : ℕ)
Goal: (AdicCompletion.incl I M) x n = ↑x n
-- AdicCompletion.of_apply
@[simp]
theorem of_apply (x : M) (n : ℕ) : (of I M x).1 n = mkQ (I ^ n • ⊤ : Submodule R M) x 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (x : M) (n : ℕ)
Goal: ↑((AdicCompletion.of I M) x) n = (I ^ n • ⊤).mkQ x
-- AdicCompletion.coe_eval
@[simp]
theorem coe_eval (n : ℕ) :
    (eval I M n : AdicCompletion I M → M ⧸ (I ^ n • ⊤ : Submodule R M)) = fun f => f.1 n 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (n : ℕ)
Goal: ⇑(AdicCompletion.eval I M n) = fun f => ↑f n
-- AdicCompletion.eval_apply
theorem eval_apply (n : ℕ) (f : AdicCompletion I M) : eval I M n f = f.1 n 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (n : ℕ) (f : AdicCompletion I M)
Goal: (AdicCompletion.eval I M n) f = ↑f n
-- AdicCompletion.eval_of
theorem eval_of (n : ℕ) (x : M) : eval I M n (of I M x) = mkQ (I ^ n • ⊤ : Submodule R M) x 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (n : ℕ) (x : M)
Goal: (AdicCompletion.eval I M n) ((AdicCompletion.of I M) x) = (I ^ n • ⊤).mkQ x
-- AdicCompletion.eval_comp_of
@[simp]
theorem eval_comp_of (n : ℕ) : (eval I M n).comp (of I M) = mkQ _ 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (n : ℕ)
Goal: AdicCompletion.eval I M n ∘ₗ AdicCompletion.of I M = (I ^ n • ⊤).mkQ
-- AdicCompletion.eval_surjective
theorem eval_surjective (n : ℕ) : Function.Surjective (eval I M n) 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (n : ℕ)
Goal: Function.Surjective ⇑(AdicCompletion.eval I M n)
-- AdicCompletion.range_eval
@[simp]
theorem range_eval (n : ℕ) : LinearMap.range (eval I M n) = ⊤ 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (n : ℕ)
Goal: LinearMap.range (AdicCompletion.eval I M n) = ⊤
-- AdicCompletion.val_zero
@[simp]
theorem val_zero (n : ℕ) : (0 : AdicCompletion I M).val n = 0 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (n : ℕ)
Goal: ↑0 n = 0
-- AdicCompletion.val_add
@[simp]
theorem val_add (n : ℕ) (f g : AdicCompletion I M) : (f + g).val n = f.val n + g.val n 
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] (n : ℕ) (f g : AdicCompletion I M)
Goal: ↑(f + g) n = ↑f n + ↑g n
-- AdicCompletion.val_sub
@[simp]
theorem val_sub (n : ℕ) (f g : AdicCompletion I M) : (f - g).val n = f.val n - g.val n 
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] (n : ℕ) (f g : AdicCompletion I M)
Goal: ↑(f - g) n = ↑f n - ↑g n
-- AdicCompletion.val_sum
@[simp]
theorem val_sum {α : Type*} (s : Finset α) (f : α → AdicCompletion I M) (n : ℕ) :
    (Finset.sum s f).val n = Finset.sum s (fun a ↦ (f a).val n) 
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] {α : Type u_4} (s : Finset α) (f : α → AdicCompletion I M) (n : ℕ)
Goal: ↑(s.sum f) n = ∑ a ∈ s, ↑(f a) n
-- AdicCompletion.val_smul
theorem val_smul (n : ℕ) (r : R) (f : AdicCompletion I M) : (r • f).val n = r • f.val n 
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] (n : ℕ) (r : R) (f : AdicCompletion I M)
Goal: ↑(r • f) n = r • ↑f n
-- AdicCompletion.ext
@[ext]
theorem ext {x y : AdicCompletion I M} (h : ∀ n, x.val n = y.val n) : x = y 
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] {x y : AdicCompletion I M} (h : ∀ (n : ℕ), ↑x n = ↑y n)
Goal: x = y
-- AdicCompletion.ext_iff
theorem ext_iff {x y : AdicCompletion I M} : x = y ↔ ∀ n, x.val n = y.val n 
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] {x y : AdicCompletion I M}
Goal: x = y ↔ ∀ (n : ℕ), ↑x n = ↑y n
-- AdicCompletion.transitionMap_mk
@[simp]
theorem transitionMap_mk {m n : ℕ} (hmn : m ≤ n) (x : M) :
    transitionMap I M hmn
      (Submodule.Quotient.mk (p := (I ^ n • ⊤ : Submodule R M)) x) =
      Submodule.Quotient.mk (p := (I ^ m • ⊤ : Submodule R M)) x 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] {m n : ℕ} (hmn : m ≤ n) (x : M)
Goal: (AdicCompletion.transitionMap I M hmn) (Submodule.Quotient.mk x) = Submodule.Quotient.mk x
-- AdicCompletion.transitionMap_eq
@[simp]
theorem transitionMap_eq (n : ℕ) : transitionMap I M (Nat.le_refl n) = LinearMap.id 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (n : ℕ)
Goal: AdicCompletion.transitionMap I M ⋯ = LinearMap.id
-- AdicCompletion.transitionMap_comp
@[simp]
theorem transitionMap_comp {m n k : ℕ} (hmn : m ≤ n) (hnk : n ≤ k) :
    transitionMap I M hmn ∘ₗ transitionMap I M hnk = transitionMap I M (hmn.trans hnk) 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] {m n k : ℕ} (hmn : m ≤ n) (hnk : n ≤ k)
Goal: AdicCompletion.transitionMap I M hmn ∘ₗ AdicCompletion.transitionMap I M hnk = AdicCompletion.transitionMap I M ⋯
-- AdicCompletion.transitionMap_comp_apply
@[simp]
theorem transitionMap_comp_apply {m n k : ℕ} (hmn : m ≤ n) (hnk : n ≤ k)
    (x : M ⧸ (I ^ k • ⊤ : Submodule R M)) :
    transitionMap I M hmn (transitionMap I M hnk x) = transitionMap I M (hmn.trans hnk) x 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] {m n k : ℕ} (hmn : m ≤ n) (hnk : n ≤ k) (x : M ⧸ I ^ k • ⊤)
Goal: (AdicCompletion.transitionMap I M hmn) ((AdicCompletion.transitionMap I M hnk) x) =
  (AdicCompletion.transitionMap I M ⋯) x
-- AdicCompletion.transitionMap_comp_eval_apply
@[simp]
theorem transitionMap_comp_eval_apply {m n : ℕ} (hmn : m ≤ n) (x : AdicCompletion I M) :
    transitionMap I M hmn (x.val n) = x.val m 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] {m n : ℕ} (hmn : m ≤ n) (x : AdicCompletion I M)
Goal: (AdicCompletion.transitionMap I M hmn) (↑x n) = ↑x m
-- AdicCompletion.transitionMap_comp_eval
@[simp]
theorem transitionMap_comp_eval {m n : ℕ} (hmn : m ≤ n) :
    transitionMap I M hmn ∘ₗ eval I M n = eval I M m 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] {m n : ℕ} (hmn : m ≤ n)
Goal: AdicCompletion.transitionMap I M hmn ∘ₗ AdicCompletion.eval I M n = AdicCompletion.eval I M m
-- AdicCompletion.AdicCauchySequence.zero_apply
@[simp]
theorem zero_apply (n : ℕ) : (0 : AdicCauchySequence I M) n = 0 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (n : ℕ)
Goal: ↑0 n = 0
-- AdicCompletion.AdicCauchySequence.add_apply
@[simp]
theorem add_apply (n : ℕ) (f g : AdicCauchySequence I M) : (f + g) n = f n + g n 
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] (n : ℕ) (f g : AdicCompletion.AdicCauchySequence I M)
Goal: ↑(f + g) n = ↑f n + ↑g n
-- AdicCompletion.AdicCauchySequence.sub_apply
@[simp]
theorem sub_apply (n : ℕ) (f g : AdicCauchySequence I M) : (f - g) n = f n - g n 
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] (n : ℕ) (f g : AdicCompletion.AdicCauchySequence I M)
Goal: ↑(f - g) n = ↑f n - ↑g n
-- AdicCompletion.AdicCauchySequence.smul_apply
@[simp]
theorem smul_apply (n : ℕ) (r : R) (f : AdicCauchySequence I M) : (r • f) n = r • f n 
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] (n : ℕ) (r : R) (f : AdicCompletion.AdicCauchySequence I M)
Goal: ↑(r • f) n = r • ↑f n
-- AdicCompletion.AdicCauchySequence.ext
@[ext]
theorem ext {x y : AdicCauchySequence I M} (h : ∀ n, x n = y n) : x = y 
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] {x y : AdicCompletion.AdicCauchySequence I M} (h : ∀ (n : ℕ), ↑x n = ↑y n)
Goal: x = y
-- AdicCompletion.AdicCauchySequence.ext_iff
theorem ext_iff {x y : AdicCauchySequence I M} : x = y ↔ ∀ n, x n = y n 
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] {x y : AdicCompletion.AdicCauchySequence I M}
Goal: x = y ↔ ∀ (n : ℕ), ↑x n = ↑y n
-- AdicCompletion.AdicCauchySequence.mk_eq_mk
theorem mk_eq_mk {m n : ℕ} (hmn : m ≤ n) (f : AdicCauchySequence I M) :
    Submodule.Quotient.mk (p := (I ^ m • ⊤ : Submodule R M)) (f n) =
      Submodule.Quotient.mk (p := (I ^ m • ⊤ : Submodule R M)) (f m) 
Arguments: {R : Type u_1} [CommRing R] {I : Ideal R} {M : Type u_2} [AddCommGroup M] [Module R M] {m n : ℕ} (hmn : m ≤ n) (f : AdicCompletion.AdicCauchySequence I M)
Goal: Submodule.Quotient.mk (↑f n) = Submodule.Quotient.mk (↑f m)
-- AdicCompletion.isAdicCauchy_iff
theorem isAdicCauchy_iff (f : ℕ → M) :
    IsAdicCauchy I M f ↔ ∀ n, f n ≡ f (n + 1) [SMOD (I ^ n • ⊤ : Submodule R M)] 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R) (M : Type u_2) [AddCommGroup M] [Module R M] (f : ℕ → M)
Goal: AdicCompletion.IsAdicCauchy I M f ↔ ∀ (n : ℕ), f n ≡ f (n + 1) [SMOD I ^ n • ⊤]