ULift instances for ring #
This file defines instances for ring, semiring and related structures on ULift types.
(Recall ULift R is just a "copy" of a type R in a higher universe.)
We also provide ULift.ringEquiv : ULift R ≃+* R.
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[simp]
@[simp]
theorem
ULift.up_ofNat
{R : Type u}
[NatCast R]
(n : ℕ)
[n.AtLeastTwo]
:
{ down := OfNat.ofNat n } = OfNat.ofNat n
@[simp]
@[simp]
@[simp]
theorem
ULift.down_ofNat
{R : Type u}
[NatCast R]
(n : ℕ)
[n.AtLeastTwo]
:
(OfNat.ofNat n).down = OfNat.ofNat n
@[simp]
@[implicit_reducible]
instance
ULift.addMonoidWithOne
{R : Type u}
[AddMonoidWithOne R]
:
AddMonoidWithOne (ULift.{u_1, u} R)
@[implicit_reducible]
instance
ULift.addCommMonoidWithOne
{R : Type u}
[AddCommMonoidWithOne R]
:
AddCommMonoidWithOne (ULift.{u_1, u} R)
@[implicit_reducible]
@[implicit_reducible]
instance
ULift.addCommGroupWithOne
{R : Type u}
[AddCommGroupWithOne R]
:
AddCommGroupWithOne (ULift.{u_1, u} R)
@[implicit_reducible]
instance
ULift.nonUnitalNonAssocSemiring
{R : Type u}
[NonUnitalNonAssocSemiring R]
:
NonUnitalNonAssocSemiring (ULift.{u_1, u} R)
@[implicit_reducible]
instance
ULift.nonAssocSemiring
{R : Type u}
[NonAssocSemiring R]
:
NonAssocSemiring (ULift.{u_1, u} R)
@[implicit_reducible]
instance
ULift.nonUnitalSemiring
{R : Type u}
[NonUnitalSemiring R]
:
NonUnitalSemiring (ULift.{u_1, u} R)
@[implicit_reducible]
The ring equivalence between ULift R and R.
Instances For
@[implicit_reducible]
instance
ULift.nonUnitalCommSemiring
{R : Type u}
[NonUnitalCommSemiring R]
:
NonUnitalCommSemiring (ULift.{u_1, u} R)
@[implicit_reducible]
@[implicit_reducible]
instance
ULift.nonUnitalNonAssocRing
{R : Type u}
[NonUnitalNonAssocRing R]
:
NonUnitalNonAssocRing (ULift.{u_1, u} R)
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
instance
ULift.nonUnitalCommRing
{R : Type u}
[NonUnitalCommRing R]
:
NonUnitalCommRing (ULift.{u_1, u} R)
@[implicit_reducible]
theorem
RingHom.ulift_apply
{R : Type u_1}
{S : Type u_2}
[CommRing R]
[CommRing S]
(f : R →+* S)
(x : ULift.{u₁, u_1} R)
:
(ulift.{u₁, u_3, u_1, u_2} f) x = { down := f x.down }
@[simp]
theorem
RingHom.down_ulift_apply
{R : Type u_1}
{S : Type u_2}
[CommRing R]
[CommRing S]
(f : R →+* S)
(x : ULift.{u₁, u_1} R)
:
((ulift.{u₁, u_3, u_1, u_2} f) x).down = f x.down