Documentation

Mathlib.Algebra.Ring.ULift

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]
instance ULift.mulZeroClass {M₀ : Type u_1} [MulZeroClass M₀] :
MulZeroClass (ULift.{u_2, u_1} M₀)
@[implicit_reducible]
instance ULift.distrib {R : Type u} [Distrib R] :
Distrib (ULift.{u_1, u} R)
@[implicit_reducible]
instance ULift.instNatCast {R : Type u} [NatCast R] :
NatCast (ULift.{u_1, u} R)
@[implicit_reducible]
instance ULift.instIntCast {R : Type u} [IntCast R] :
IntCast (ULift.{u_1, u} R)
@[simp]
theorem ULift.up_natCast {R : Type u} [NatCast R] (n : ) :
{ down := n } = n
@[simp]
theorem ULift.up_ofNat {R : Type u} [NatCast R] (n : ) [n.AtLeastTwo] :
{ down := OfNat.ofNat n } = OfNat.ofNat n
@[simp]
theorem ULift.up_intCast {R : Type u} [IntCast R] (n : ) :
{ down := n } = n
@[simp]
theorem ULift.down_natCast {R : Type u} [NatCast R] (n : ) :
(↑n).down = n
@[simp]
theorem ULift.down_ofNat {R : Type u} [NatCast R] (n : ) [n.AtLeastTwo] :
(OfNat.ofNat n).down = OfNat.ofNat n
@[simp]
theorem ULift.down_intCast {R : Type u} [IntCast R] (n : ) :
(↑n).down = n
@[implicit_reducible]
instance ULift.addMonoidWithOne {R : Type u} [AddMonoidWithOne R] :
AddMonoidWithOne (ULift.{u_1, u} R)
@[implicit_reducible]
@[implicit_reducible]
instance ULift.addGroupWithOne {R : Type u} [AddGroupWithOne R] :
AddGroupWithOne (ULift.{u_1, u} R)
@[implicit_reducible]
@[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]
instance ULift.semiring {R : Type u} [Semiring R] :
Semiring (ULift.{u_1, u} R)
def ULift.ringEquiv {R : Type u} [NonUnitalNonAssocSemiring R] :
ULift.{u_1, u} R ≃+* R

The ring equivalence between ULift R and R.

Instances For
    @[implicit_reducible]
    @[implicit_reducible]
    instance ULift.commSemiring {R : Type u} [CommSemiring R] :
    CommSemiring (ULift.{u_1, u} R)
    @[implicit_reducible]
    @[implicit_reducible]
    instance ULift.nonUnitalRing {R : Type u} [NonUnitalRing R] :
    NonUnitalRing (ULift.{u_1, u} R)
    @[implicit_reducible]
    instance ULift.nonAssocRing {R : Type u} [NonAssocRing R] :
    NonAssocRing (ULift.{u_1, u} R)
    @[implicit_reducible]
    instance ULift.ring {R : Type u} [Ring R] :
    Ring (ULift.{u_1, u} R)
    @[implicit_reducible]
    instance ULift.nonUnitalCommRing {R : Type u} [NonUnitalCommRing R] :
    NonUnitalCommRing (ULift.{u_1, u} R)
    @[implicit_reducible]
    instance ULift.commRing {R : Type u} [CommRing R] :
    CommRing (ULift.{u_1, u} R)
    def RingHom.ulift {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] (f : R →+* S) :
    ULift.{u₁, u_1} R →+* ULift.{u₂, u_2} S

    ULift is functorial for ring homomorphisms.

    Instances For
      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