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 #
FreeCommRing α: the free commutative ring on a type αlift (f : α → R): the ring homFreeCommRing α →+* Rinduced by functoriality fromf.map (f : α → β): the ring homFreeCommRing α →*+ FreeCommRing βinduced by functoriality from f.
Main results #
FreeCommRing has functorial properties (it is an adjoint to the forgetful functor).
In this file we have:
-
of : α → FreeCommRing α -
lift (f : α → R) : FreeCommRing α →+* R -
map (f : α → β) : FreeCommRing α →+* FreeCommRing β -
freeCommRingEquivMvPolynomialInt : FreeCommRing α ≃+* MvPolynomial α ℤ:FreeCommRing αis isomorphic to a polynomial ring.
Implementation notes #
FreeCommRing α is implemented not using MvPolynomial but
directly as the free abelian group on Multiset α, the type
of monomials in this free commutative ring.
Tags #
free commutative ring, free ring
Equations
- FreeCommRing.instCommRing α = id inferInstance
Equations
- FreeCommRing.instInhabited α = id inferInstance
The canonical map from α to the free commutative ring on α.
Equations
- FreeCommRing.of x = FreeAbelianGroup.of (↑Multiplicative.ofAdd {x})
Instances For
Lift a map α → R to an additive group homomorphism FreeCommRing α → R.
Equations
- FreeCommRing.lift = FreeCommRing.liftToMultiset.trans FreeAbelianGroup.liftMonoid
Instances For
A map f : α → β produces a ring homomorphism FreeCommRing α →+* FreeCommRing β.
Equations
- FreeCommRing.map f = ↑FreeCommRing.lift (FreeCommRing.of ∘ f)
Instances For
is_supported x s means that all monomials showing up in x have variables in s.
Equations
- FreeCommRing.IsSupported x s = (x ∈ Subring.closure (FreeCommRing.of '' s))
Instances For
The restriction map from FreeCommRing α to FreeCommRing s where s : Set α, defined
by sending all variables not in s to zero.
Equations
- FreeCommRing.restriction s = ↑FreeCommRing.lift fun a => if H : a ∈ s then FreeCommRing.of { val := a, property := H } else 0
Instances For
The canonical ring homomorphism from the free ring generated by α to the free commutative ring
generated by α.
Equations
- FreeRing.toFreeCommRing = ↑FreeRing.lift FreeCommRing.of
Instances For
The coercion defined by the canonical ring homomorphism from the free ring generated by α to
the free commutative ring generated by α.
Equations
- FreeRing.castFreeCommRing = ↑FreeRing.toFreeCommRing
Instances For
Equations
- FreeRing.FreeCommRing.instCoe α = { coe := FreeRing.castFreeCommRing }
The natural map FreeRing α → FreeCommRing α, as a RingHom.
Equations
- FreeRing.coeRingHom α = FreeRing.toFreeCommRing
Instances For
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
Instances For
Equations
- FreeRing.instCommRing α = let src := inferInstanceAs (Ring (FreeRing α)); CommRing.mk (_ : ∀ (x y : FreeRing α), x * y = y * x)
The free commutative ring on α is isomorphic to the polynomial ring over ℤ with
variables in α
Equations
- One or more equations did not get rendered due to their size.
Instances For
The free commutative ring on the empty type is isomorphic to ℤ.
Equations
Instances For
The free commutative ring on a type with one term is isomorphic to ℤ[X].
Equations
Instances For
The free ring on the empty type is isomorphic to ℤ.
Equations
Instances For
The free ring on a type with one term is isomorphic to ℤ[X].