# mathlibdocumentation

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 is_adic 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 with_ideal, 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.adic_topology: the adic topology associated to an ideal. It has the above basis for neighborhoods of zero.
• ideal.nonarchimedean: the adic topology is non-archimedean
• is_ideal_adic_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.
• with_ideal: 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 a R-module.

theorem ideal.adic_basis {R : Type u_1} [comm_ring R] (I : ideal R) :
def ideal.ring_filter_basis {R : Type u_1} [comm_ring R] (I : ideal R) :

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

Equations
def ideal.adic_topology {R : Type u_1} [comm_ring R] (I : ideal R) :

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.

Equations
theorem ideal.nonarchimedean {R : Type u_1} [comm_ring R] (I : ideal R) :
theorem ideal.has_basis_nhds_zero_adic {R : Type u_1} [comm_ring R] (I : ideal R) :
(nhds 0).has_basis (λ (n : ), true) (λ (n : ), (I ^ n))

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

theorem ideal.has_basis_nhds_adic {R : Type u_1} [comm_ring R] (I : ideal R) (x : R) :
(nhds x).has_basis (λ (n : ), true) (λ (n : ), (λ (y : R), x + y) '' (I ^ n))
theorem ideal.adic_module_basis {R : Type u_1} [comm_ring R] (I : ideal R) (M : Type u_2) [ M] :
def ideal.adic_module_topology {R : Type u_1} [comm_ring R] (I : ideal R) (M : Type u_2) [ M] :

The topology on a R-module M associated to an ideal M. Submodules $I^n M$, written I^n • ⊤ form a basis of neighborhoods of zero.

Equations
def ideal.open_add_subgroup {R : Type u_1} [comm_ring R] (I : ideal R) (n : ) :

The elements of the basis of neighborhoods of zero for the I-adic topology on a R-module M, seen as open additive subgroups of M.

Equations
def is_adic {R : Type u_1} [comm_ring R] [H : topological_space R] (J : ideal R) :
Prop

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

Equations
theorem is_adic_iff {R : Type u_1} [comm_ring R] [top : topological_space R] {J : ideal R} :
(∀ (n : ), is_open (J ^ n)) ∀ (s : set R), s nhds 0(∃ (n : ), (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} [comm_ring R] {J : ideal R} (h : is_adic J) {n : } (hn : 0 < n) :
theorem is_bot_adic_iff {A : Type u_1} [comm_ring A]  :
@[class]
structure with_ideal (R : Type u_2) [comm_ring R] :
Type u_2
• I :

The ring R is equipped with a preferred ideal.

Instances for with_ideal
• with_ideal.has_sizeof_inst
@[protected, instance]
def with_ideal.topological_space (R : Type u_1) [comm_ring R] [with_ideal R] :
Equations
@[protected, instance]
def with_ideal.nonarchimedean_ring (R : Type u_1) [comm_ring R] [with_ideal R] :
@[protected, instance]
def with_ideal.uniform_space (R : Type u_1) [comm_ring R] [with_ideal R] :
Equations
@[protected, instance]
def with_ideal.uniform_add_group (R : Type u_1) [comm_ring R] [with_ideal R] :
def with_ideal.topological_space_module (R : Type u_1) [comm_ring R] [with_ideal R] (M : Type u_2) [ M] :

The adic topology on a R module coming from the ideal with_ideal.I. This cannot be an instance because R cannot be inferred from M.

Equations