# Documentation

Given a commutative ring R and an ideal I in R, this file constructs the unique topology on R which is compatible with the ring structure and such that a set is a neighborhood of zero if and only if it contains a power of I. This topology is non-archimedean: every neighborhood of zero contains an open subgroup, namely a power of I.

It also studies the predicate IsAdic which states that a given topological ring structure is adic, proving a characterization and showing that raising an ideal to a positive power does not change the associated topology.

Finally, it defines WithIdeal, a class registering an ideal in a ring and providing the corresponding adic topology to the type class inference system.

## Main definitions and results #

• Ideal.adic_basis: the basis of submodules given by powers of an ideal.
• Ideal.adicTopology: the adic topology associated to an ideal. It has the above basis for neighborhoods of zero.
• Ideal.nonarchimedean: the adic topology is non-archimedean
• isAdic_iff: A topological ring is J-adic if and only if it admits the powers of J as a basis of open neighborhoods of zero.
• WithIdeal: a class registering an ideal in a ring.

## Implementation notes #

The I-adic topology on a ring R has a contrived definition using I^n • ⊤ instead of I to make sure it is definitionally equal to the I-topology on R seen as an R-module.

theorem Ideal.adic_basis {R : Type u_1} [] (I : ) :
def Ideal.ringFilterBasis {R : Type u_1} [] (I : ) :

The adic ring filter basis associated to an ideal I is made of powers of I.

Instances For
def Ideal.adicTopology {R : Type u_1} [] (I : ) :

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.

Instances For
theorem Ideal.nonarchimedean {R : Type u_1} [] (I : ) :
theorem Ideal.hasBasis_nhds_zero_adic {R : Type u_1} [] (I : ) :
Filter.HasBasis (nhds 0) (fun _n => True) fun n => ↑(I ^ n)

For the I-adic topology, the neighborhoods of zero has basis given by the powers of I.

theorem Ideal.hasBasis_nhds_adic {R : Type u_1} [] (I : ) (x : R) :
Filter.HasBasis (nhds x) (fun _n => True) fun n => (fun y => x + y) '' ↑(I ^ n)
theorem Ideal.adic_module_basis {R : Type u_1} [] (I : ) (M : Type u_2) [] [Module R M] :
def Ideal.adicModuleTopology {R : Type u_1} [] (I : ) (M : Type u_2) [] [Module R M] :

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.

Instances For
def Ideal.openAddSubgroup {R : Type u_1} [] (I : ) (n : ) :

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.

Instances For
def IsAdic {R : Type u_1} [] [H : ] (J : ) :

Given a topology on a ring R and an ideal J, IsAdic J means the topology is the J-adic one.

Instances For
theorem isAdic_iff {R : Type u_1} [] [top : ] [] {J : } :
(∀ (n : ), IsOpen ↑(J ^ n)) ∀ (s : Set R), s nhds 0n, ↑(J ^ n) s

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 is_ideal_adic_pow {R : Type u_1} [] [] [] {J : } (h : ) {n : } (hn : 0 < n) :
theorem is_bot_adic_iff {A : Type u_2} [] [] [] :
class WithIdeal (R : Type u_2) [] :
Type u_2
• i :

The ring R is equipped with a preferred ideal.

Instances
instance WithIdeal.instTopologicalSpace (R : Type u_1) [] [] :
instance WithIdeal.instUniformSpace (R : Type u_1) [] [] :
def WithIdeal.topologicalSpaceModule (R : Type u_1) [] [] (M : Type u_2) [] [Module R M] :

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.

Instances For