File: Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean

full_name: Ideal.adic_basis
code: theorem adic_basis (I : Ideal R) : SubmodulesRingBasis fun n : ℕ => (I ^ n • ⊤ : Ideal R) 
goal: SubmodulesRingBasis fun n => I ^ n • ⊤

full_name: Ideal.ringFilterBasis
code: /-- The adic ring filter basis associated to an ideal `I` is made of powers of `I`. -/
def ringFilterBasis (I : Ideal R) 
goal: RingFilterBasis R

full_name: Ideal.adicTopology
code: /-- The adic topology associated to an ideal `I`. This topology admits powers of `I` as a basis of
neighborhoods of zero. It is compatible with the ring structure and is non-archimedean. -/
def adicTopology (I : Ideal R) : TopologicalSpace R 
goal: TopologicalSpace R

full_name: Ideal.nonarchimedean
code: theorem nonarchimedean (I : Ideal R) : @NonarchimedeanRing R _ I.adicTopology 
goal: NonarchimedeanRing R

full_name: Ideal.hasBasis_nhds_zero_adic
code: /-- For the `I`-adic topology, the neighborhoods of zero has basis given by the powers of `I`. -/
theorem hasBasis_nhds_zero_adic (I : Ideal R) :
    HasBasis (@nhds R I.adicTopology (0 : R)) (fun _n : ℕ => True) fun n =>
      ((I ^ n : Ideal R) : Set R) 
goal: (𝓝 0).HasBasis (fun _n => True) fun n => ↑(I ^ n)

full_name: Ideal.hasBasis_nhds_adic
code: theorem hasBasis_nhds_adic (I : Ideal R) (x : R) :
    HasBasis (@nhds R I.adicTopology x) (fun _n : ℕ => True) fun n =>
      (fun y => x + y) '' (I ^ n : Ideal R) 
goal: (𝓝 x).HasBasis (fun _n => True) fun n => (fun y => x + y) '' ↑(I ^ n)

full_name: Ideal.adic_module_basis
code: theorem adic_module_basis :
    I.ringFilterBasis.SubmodulesBasis fun n : ℕ => I ^ n • (⊤ : Submodule R M) 
goal: I.ringFilterBasis.SubmodulesBasis fun n => I ^ n • ⊤

full_name: Ideal.adicModuleTopology
code: /-- The topology on an `R`-module `M` associated to an ideal `M`. Submodules $I^n M$,
written `I^n • ⊤` form a basis of neighborhoods of zero. -/
def adicModuleTopology : TopologicalSpace M 
goal: TopologicalSpace M

full_name: Ideal.openAddSubgroup
code: /-- The elements of the basis of neighborhoods of zero for the `I`-adic topology
on an `R`-module `M`, seen as open additive subgroups of `M`. -/
def openAddSubgroup (n : ℕ) : @OpenAddSubgroup R _ I.adicTopology 
goal: OpenAddSubgroup R

full_name: IsAdic
code: /-- Given a topology on a ring `R` and an ideal `J`, `IsAdic J` means the topology is the
`J`-adic one. -/
def IsAdic [H : TopologicalSpace R] (J : Ideal R) : Prop 
goal: Prop

full_name: isAdic_iff
code: /-- A topological ring is `J`-adic if and only if it admits the powers of `J` as a basis of
open neighborhoods of zero. -/
theorem isAdic_iff [top : TopologicalSpace R] [TopologicalRing R] {J : Ideal R} :
    IsAdic J ↔
      (∀ n : ℕ, IsOpen ((J ^ n : Ideal R) : Set R)) ∧
        ∀ s ∈ 𝓝 (0 : R), ∃ n : ℕ, ((J ^ n : Ideal R) : Set R) ⊆ s 
goal: IsAdic J ↔ (∀ (n : ℕ), IsOpen ↑(J ^ n)) ∧ ∀ s ∈ 𝓝 0, ∃ n, ↑(J ^ n) ⊆ s

full_name: is_ideal_adic_pow
code: theorem is_ideal_adic_pow {J : Ideal R} (h : IsAdic J) {n : ℕ} (hn : 0 < n) : IsAdic (J ^ n) 
goal: IsAdic (J ^ n)

full_name: is_bot_adic_iff
code: theorem is_bot_adic_iff {A : Type*} [CommRing A] [TopologicalSpace A] [TopologicalRing A] :
    IsAdic (⊥ : Ideal A) ↔ DiscreteTopology A 
goal: IsAdic ⊥ ↔ DiscreteTopology A

full_name: WithIdeal
code: /-- The ring `R` is equipped with a preferred ideal. -/
class WithIdeal (R : Type*) [CommRing R] where
  i : Ideal R
goal: Type u_2

full_name: WithIdeal.i
code: /-- The ring `R` is equipped with a preferred ideal. -/
class WithIdeal (R : Type*) [CommRing R] where
  i : Ideal R
goal: Ideal R

full_name: WithIdeal.instTopologicalSpace
code: instance (priority := 100) : TopologicalSpace R 
goal: TopologicalSpace R

full_name: WithIdeal.instNonarchimedeanRing
code: instance (priority := 100) : NonarchimedeanRing R 
goal: NonarchimedeanRing R

full_name: WithIdeal.instUniformSpace
code: instance (priority := 100) : UniformSpace R 
goal: UniformSpace R

full_name: WithIdeal.instUniformAddGroup
code: instance (priority := 100) : UniformAddGroup R 
goal: UniformAddGroup R

full_name: WithIdeal.topologicalSpaceModule
code: /-- The adic topology on an `R` module coming from the ideal `WithIdeal.I`.
This cannot be an instance because `R` cannot be inferred from `M`. -/
def topologicalSpaceModule (M : Type*) [AddCommGroup M] [Module R M] : TopologicalSpace M 
goal: TopologicalSpace M