# mathlibdocumentation

topology.algebra.continuous_functions

# Algebraic structures over continuous functions

In this file we define instances of algebraic structures over continuous functions. Instances are present both in the case of the subtype of continuous functions and the type of continuous bundled functions. Both implementations have advantages and disadvantages, but many experienced people in Zulip have expressed a preference towards continuous bundled maps, so when there is no particular reason to use the subtype, continuous bundled functions should be used for the sake of uniformity.

@[instance]
def continuous_functions.set_of.has_coe_to_fun {α : Type u_1} {β : Type u_2}  :
has_coe_to_fun {f : α → β |

Equations
@[instance]
def continuous_map.has_mul {α : Type u_1} {β : Type u_2} [has_mul β]  :

Equations
@[instance]
def continuous_map.has_add {α : Type u_1} {β : Type u_2} [has_add β]  :

@[instance]
def continuous_map.has_zero {α : Type u_1} {β : Type u_2} [has_zero β] :

@[instance]
def continuous_map.has_one {α : Type u_1} {β : Type u_2} [has_one β] :

Equations

### Group stucture

In this section we show that continuous functions valued in a topological group inherit the structure of a group.

@[instance]
def continuous_submonoid (α : Type u_1) (β : Type u_2) [monoid β]  :
is_submonoid {f : α → β |

@[instance]
def continuous_add_submonoid (α : Type u_1) (β : Type u_2) [add_monoid β]  :
is_add_submonoid {f : α → β |

@[instance]
def continuous_subgroup (α : Type u_1) (β : Type u_2) [group β]  :
is_subgroup {f : α → β |

@[instance]
def continuous_add_subgroup (α : Type u_1) (β : Type u_2) [add_group β]  :
is_add_subgroup {f : α → β |

@[instance]
def continuous_monoid {α : Type u_1} {β : Type u_2} [monoid β]  :
monoid {f : α → β |

Equations
@[instance]
def continuous_add_monoid {α : Type u_1} {β : Type u_2} [add_monoid β]  :
add_monoid {f : α → β |

@[instance]
def continuous_group {α : Type u_1} {β : Type u_2} [group β]  :
group {f : α → β |

Equations
@[instance]
def continuous_add_group {α : Type u_1} {β : Type u_2} [add_group β]  :
add_group {f : α → β |

@[instance]
def continuous_add_comm_group {α : Type u_1} {β : Type u_2}  :
add_comm_group {f : α → β |

@[instance]
def continuous_comm_group {α : Type u_1} {β : Type u_2} [comm_group β]  :
comm_group {f : α → β |

Equations
@[instance]
def continuous_map_semigroup {α : Type u_1} {β : Type u_2} [semigroup β]  :

Equations
@[instance]
def continuous_map_add_semigroup {α : Type u_1} {β : Type u_2}  :

@[instance]
def continuous_map_add_monoid {α : Type u_1} {β : Type u_2} [add_monoid β]  :

@[instance]
def continuous_map_monoid {α : Type u_1} {β : Type u_2} [monoid β]  :

Equations
@[instance]
def continuous_map_add_comm_monoid {α : Type u_1} {β : Type u_2}  :

@[instance]
def continuous_map_comm_monoid {α : Type u_1} {β : Type u_2} [comm_monoid β]  :

Equations
@[instance]
def continuous_map_group {α : Type u_1} {β : Type u_2} [group β]  :
group C(α, β)

Equations
@[instance]
def continuous_map_add_group {α : Type u_1} {β : Type u_2} [add_group β]  :

@[instance]
def continuous_map_add_comm_group {α : Type u_1} {β : Type u_2}  :

@[instance]
def continuous_map_comm_group {α : Type u_1} {β : Type u_2} [comm_group β]  :

Equations

### Ring stucture

In this section we show that continuous functions valued in a topological ring R inherit the structure of a ring.

@[instance]
def continuous_subring (α : Type u_1) (R : Type u_2) [ring R]  :
is_subring {f : α → R |

@[instance]
def continuous_ring {α : Type u_1} {R : Type u_2} [ring R]  :
ring {f : α → R |

Equations
@[instance]
def continuous_comm_ring {α : Type u_1} {R : Type u_2} [comm_ring R]  :
comm_ring {f : α → R |

Equations
@[instance]
def continuous_map_semiring {α : Type u_1} {β : Type u_2} [semiring β]  :

Equations
@[instance]
def continuous_map_ring {α : Type u_1} {β : Type u_2} [ring β]  :
ring C(α, β)

Equations
@[instance]
def continuous_map_comm_ring {α : Type u_1} {β : Type u_2} [comm_ring β]  :

Equations

### Semiodule stucture

In this section we show that continuous functions valued in a topological semimodule M over a topological semiring R inherit the structure of a semimodule.

@[instance]
def continuous_has_scalar {α : Type u_1} {R : Type u_2} [semiring R] {M : Type u_3} [ M]  :
{f : α → M |

Equations
@[instance]
def continuous_semimodule {α : Type u_1} {R : Type u_2} [semiring R] {M : Type u_3} [ M]  :
{f : α → M |

Equations
@[instance]
def continuous_map_has_scalar {α : Type u_1} {R : Type u_2} [semiring R] {M : Type u_3} [ M]  :
C(α, M)

Equations
@[instance]
def continuous_map_semimodule {α : Type u_1} {R : Type u_2} [semiring R] {M : Type u_3} [ M]  :
C(α, M)

Equations

### Algebra structure

In this section we show that continuous functions valued in a topological algebra A over a ring R inherit the structure of an algebra. Note that the hypothesis that A is a topological algebra is obtained by requiring that A be both a topological_semimodule and a topological_semiring (by now we require topological_ring: see TODO below).

def continuous.C {α : Type u_1} {R : Type u_2} {A : Type u_3} [ring A] [ A]  :
R →+* {f : α → A |

Continuous constant functions as a ring_hom.

Equations
@[instance]
def set_of.algebra {α : Type u_1} {R : Type u_2} {A : Type u_3} [ring A] [ A]  :
{f : α → A |

Equations
def continuous_map.C {α : Type u_1} {R : Type u_2} {A : Type u_3} [semiring A] [ A]  :
R →+* C(α, A)

Continuous constant functions as a ring_hom.

Equations
@[instance]
def continuous_map_algebra {α : Type u_1} {R : Type u_2} {A : Type u_3} [semiring A] [ A]  :
C(α, A)

Equations

### Structure as module over scalar functions

If M is a module over R, then we show that the space of continuous functions from α to M is naturally a module over the ring of continuous functions from α to M.

@[instance]
def continuous_has_scalar' {α : Type u_1} {R : Type u_2} [semiring R] {M : Type u_3} [ M]  :
has_scalar {f : α → R | {f : α → M |

Equations
@[instance]
def continuous_module' {α : Type u_1} (R : Type u_2) [ring R] (M : Type u_3) [ M] [ M] :
module {f : α → R | {f : α → M |

Equations
@[instance]
def continuous_map_has_scalar' {α : Type u_1} {R : Type u_2} [semiring R] {M : Type u_3} [ M]  :
C(α, M)

Equations
@[instance]
def continuous_map_module' {α : Type u_1} (R : Type u_2) [ring R] (M : Type u_3) [ M]  :
C(α, M)

Equations