Free rings #
The theory of the free ring over a type.
Main definitions #
free_ring α
: the free (not commutative in general) ring over a type.lift (f : α → R)
: the ring homfree_ring α →+* R
induced byf
.map (f : α → β)
: the ring homfree_ring α →+* free_ring β
induced byf
.
Implementation details #
free_ring α
is implemented as the free abelian group over the free monoid on α
.
Tags #
free ring
The free ring over a type α
.
Equations
The canonical map from α to free_ring α
.
Equations
@[protected]
theorem
free_ring.induction_on
{α : Type u}
{C : free_ring α → Prop}
(z : free_ring α)
(hn1 : C (-1))
(hb : ∀ (b : α), C (free_ring.of b))
(ha : ∀ (x y : free_ring α), C x → C y → C (x + y))
(hm : ∀ (x y : free_ring α), C x → C y → C (x * y)) :
C z
The ring homomorphism free_ring α →+* R
induced from a map α → R
.
@[simp]
theorem
free_ring.lift_of
{α : Type u}
{R : Type v}
[ring R]
(f : α → R)
(x : α) :
⇑(⇑free_ring.lift f) (free_ring.of x) = f x
@[simp]
theorem
free_ring.lift_comp_of
{α : Type u}
{R : Type v}
[ring R]
(f : free_ring α →+* R) :
⇑free_ring.lift (⇑f ∘ free_ring.of) = f
@[ext]
theorem
free_ring.hom_ext
{α : Type u}
{R : Type v}
[ring R]
⦃f g : free_ring α →+* R⦄
(h : ∀ (x : α), ⇑f (free_ring.of x) = ⇑g (free_ring.of x)) :
f = g
@[simp]
theorem
free_ring.map_of
{α : Type u}
{β : Type v}
(f : α → β)
(x : α) :
⇑(free_ring.map f) (free_ring.of x) = free_ring.of (f x)