Free commutative rings #
The theory of the free commutative ring generated by a type α.
It is isomorphic to the polynomial ring over ℤ with variables
in α
Main definitions #
free_comm_ring α: the free commutative ring on a type αlift (f : α → R): the ring homfree_comm_ring α →+* Rinduced by functoriality fromf.map (f : α → β): the ring homfree_comm_ring α →*+ free_comm_ring βinduced by functoriality from f.
Main results #
free_comm_ring has functorial properties (it is an adjoint to the forgetful functor).
In this file we have:
-
of : α → free_comm_ring α -
lift (f : α → R) : free_comm_ring α →+* R -
map (f : α → β) : free_comm_ring α →+* free_comm_ring β -
free_comm_ring_equiv_mv_polynomial_int : free_comm_ring α ≃+* mv_polynomial α ℤ:free_comm_ring αis isomorphic to a polynomial ring.
Implementation notes #
free_comm_ring α is implemented not using mv_polynomial but
directly as the free abelian group on multiset α, the type
of monomials in this free commutative ring.
Tags #
free commutative ring, free ring
The canonical map from α to the free commutative ring on α.
Equations
Lift a map α → R to a additive group homomorphism free_comm_ring α → R.
For a version producing a bundled homomorphism, see lift_hom.
Equations
- free_comm_ring.lift = lift_to_multiset.trans free_abelian_group.lift_monoid
A map f : α → β produces a ring homomorphism free_comm_ring α →+* free_comm_ring β.
Equations
is_supported x s means that all monomials showing up in x have variables in s.
Equations
- x.is_supported s = (x ∈ subring.closure (free_comm_ring.of '' s))
The restriction map from free_comm_ring α to free_comm_ring s where s : set α, defined
by sending all variables not in s to zero.
Equations
- free_comm_ring.restriction s = ⇑free_comm_ring.lift (λ (p : α), dite (p ∈ s) (λ (H : p ∈ s), free_comm_ring.of ⟨p, H⟩) (λ (H : p ∉ s), 0))
The canonical ring homomorphism from the free ring generated by α to the free commutative ring
generated by α.
Equations
The natural map free_ring α → free_comm_ring α, as a ring_hom.
Equations
If α has size at most 1 then the natural map from the free ring on α to the
free commutative ring on α is an isomorphism of rings.
Equations
- free_ring.comm_ring α = {add := ring.add (free_ring.ring α), add_assoc := _, zero := ring.zero (free_ring.ring α), zero_add := _, add_zero := _, nsmul := ring.nsmul (free_ring.ring α), nsmul_zero' := _, nsmul_succ' := _, neg := ring.neg (free_ring.ring α), sub := ring.sub (free_ring.ring α), sub_eq_add_neg := _, zsmul := ring.zsmul (free_ring.ring α), zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _, int_cast := ring.int_cast (free_ring.ring α), nat_cast := ring.nat_cast (free_ring.ring α), one := ring.one (free_ring.ring α), nat_cast_zero := _, nat_cast_succ := _, int_cast_of_nat := _, int_cast_neg_succ_of_nat := _, mul := ring.mul (free_ring.ring α), mul_assoc := _, one_mul := _, mul_one := _, npow := ring.npow (free_ring.ring α), npow_zero' := _, npow_succ' := _, left_distrib := _, right_distrib := _, mul_comm := _}
The free commutative ring on α is isomorphic to the polynomial ring over ℤ with
variables in α
Equations
The free commutative ring on the empty type is isomorphic to ℤ.
The free commutative ring on a type with one term is isomorphic to ℤ[X].
The free ring on the empty type is isomorphic to ℤ.
The free ring on a type with one term is isomorphic to ℤ[X].