Pulling back rings along injective maps, and pushing them forward along surjective maps #
Pullback a LeftDistribClass
instance along an injective function.
Pullback a RightDistribClass
instance along an injective function.
Pullback a Distrib
instance along an injective function.
Equations
- Function.Injective.distrib f hf add mul = Distrib.mk ⋯ ⋯
Instances For
A type endowed with -
and *
has distributive negation, if it admits an injective map that
preserves -
and *
to a type which has distributive negation.
Equations
- Function.Injective.hasDistribNeg f hf neg mul = HasDistribNeg.mk ⋯ ⋯
Instances For
Pullback a NonUnitalNonAssocSemiring
instance along an injective function.
Equations
- Function.Injective.nonUnitalNonAssocSemiring f hf zero add mul nsmul = NonUnitalNonAssocSemiring.mk ⋯ ⋯ ⋯ ⋯
Instances For
Pullback a NonUnitalSemiring
instance along an injective function.
Equations
- Function.Injective.nonUnitalSemiring f hf zero add mul nsmul = NonUnitalSemiring.mk ⋯
Instances For
Pullback a NonAssocSemiring
instance along an injective function.
Equations
- Function.Injective.nonAssocSemiring f hf zero one add mul nsmul natCast = NonAssocSemiring.mk ⋯ ⋯ ⋯ ⋯
Instances For
Pullback a Semiring
instance along an injective function.
Equations
- Function.Injective.semiring f hf zero one add mul nsmul npow natCast = Semiring.mk ⋯ ⋯ ⋯ ⋯ Monoid.npow ⋯ ⋯
Instances For
Pullback a NonUnitalNonAssocRing
instance along an injective function.
Equations
- Function.Injective.nonUnitalNonAssocRing f hf zero add mul neg sub nsmul zsmul = NonUnitalNonAssocRing.mk ⋯ ⋯ ⋯ ⋯
Instances For
Pullback a NonUnitalRing
instance along an injective function.
Equations
- Function.Injective.nonUnitalRing f hf zero add mul neg sub nsmul zsmul = NonUnitalRing.mk ⋯
Instances For
Pullback a NonAssocRing
instance along an injective function.
Equations
- Function.Injective.nonAssocRing f hf zero one add mul neg sub nsmul zsmul natCast intCast = NonAssocRing.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Pullback a Ring
instance along an injective function.
Equations
- Function.Injective.ring f hf zero one add mul neg sub nsmul zsmul npow natCast intCast = Ring.mk ⋯ AddGroupWithOne.zsmul ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Pullback a NonUnitalNonAssocCommSemiring
instance along an injective function.
Equations
- Function.Injective.nonUnitalNonAssocCommSemiring f hf zero add mul nsmul = NonUnitalNonAssocCommSemiring.mk ⋯
Instances For
Pullback a NonUnitalCommSemiring
instance along an injective function.
Equations
- Function.Injective.nonUnitalCommSemiring f hf zero add mul nsmul = NonUnitalCommSemiring.mk ⋯
Instances For
Pullback a CommSemiring
instance along an injective function.
Equations
- Function.Injective.commSemiring f hf zero one add mul nsmul npow natCast = CommSemiring.mk ⋯
Instances For
Pullback a NonUnitalNonAssocCommRing
instance along an injective function.
Equations
- Function.Injective.nonUnitalNonAssocCommRing f hf zero add mul neg sub nsmul zsmul = NonUnitalNonAssocCommRing.mk ⋯
Instances For
Pullback a NonUnitalCommRing
instance along an injective function.
Equations
- Function.Injective.nonUnitalCommRing f hf zero add mul neg sub nsmul zsmul = NonUnitalCommRing.mk ⋯
Instances For
Pullback a CommRing
instance along an injective function.
Equations
- Function.Injective.commRing f hf zero one add mul neg sub nsmul zsmul npow natCast intCast = CommRing.mk ⋯
Instances For
Pushforward a LeftDistribClass
instance along a surjective function.
Pushforward a RightDistribClass
instance along a surjective function.
Pushforward a Distrib
instance along a surjective function.
Equations
- Function.Surjective.distrib f hf add mul = Distrib.mk ⋯ ⋯
Instances For
A type endowed with -
and *
has distributive negation, if it admits a surjective map that
preserves -
and *
from a type which has distributive negation.
Equations
- Function.Surjective.hasDistribNeg f hf neg mul = HasDistribNeg.mk ⋯ ⋯
Instances For
Pushforward a NonUnitalNonAssocSemiring
instance along a surjective function.
See note [reducible non-instances].
Equations
- Function.Surjective.nonUnitalNonAssocSemiring f hf zero add mul nsmul = NonUnitalNonAssocSemiring.mk ⋯ ⋯ ⋯ ⋯
Instances For
Pushforward a NonUnitalSemiring
instance along a surjective function.
Equations
- Function.Surjective.nonUnitalSemiring f hf zero add mul nsmul = NonUnitalSemiring.mk ⋯
Instances For
Pushforward a NonAssocSemiring
instance along a surjective function.
Equations
- Function.Surjective.nonAssocSemiring f hf zero one add mul nsmul natCast = NonAssocSemiring.mk ⋯ ⋯ ⋯ ⋯
Instances For
Pushforward a Semiring
instance along a surjective function.
Equations
- Function.Surjective.semiring f hf zero one add mul nsmul npow natCast = Semiring.mk ⋯ ⋯ ⋯ ⋯ Monoid.npow ⋯ ⋯
Instances For
Pushforward a NonUnitalNonAssocRing
instance along a surjective function.
Equations
- Function.Surjective.nonUnitalNonAssocRing f hf zero add mul neg sub nsmul zsmul = NonUnitalNonAssocRing.mk ⋯ ⋯ ⋯ ⋯
Instances For
Pushforward a NonUnitalRing
instance along a surjective function.
Equations
- Function.Surjective.nonUnitalRing f hf zero add mul neg sub nsmul zsmul = NonUnitalRing.mk ⋯
Instances For
Pushforward a NonAssocRing
instance along a surjective function.
Equations
- Function.Surjective.nonAssocRing f hf zero one add mul neg sub nsmul zsmul natCast intCast = NonAssocRing.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Pushforward a Ring
instance along a surjective function.
Equations
- Function.Surjective.ring f hf zero one add mul neg sub nsmul zsmul npow natCast intCast = Ring.mk ⋯ AddGroupWithOne.zsmul ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Pushforward a NonUnitalNonAssocCommSemiring
instance along a surjective function.
Equations
- Function.Surjective.nonUnitalNonAssocCommSemiring f hf zero add mul nsmul = NonUnitalNonAssocCommSemiring.mk ⋯
Instances For
Pushforward a NonUnitalCommSemiring
instance along a surjective function.
Equations
- Function.Surjective.nonUnitalCommSemiring f hf zero add mul nsmul = NonUnitalCommSemiring.mk ⋯
Instances For
Pushforward a CommSemiring
instance along a surjective function.
Equations
- Function.Surjective.commSemiring f hf zero one add mul nsmul npow natCast = CommSemiring.mk ⋯
Instances For
Pushforward a NonUnitalNonAssocCommRing
instance along a surjective function.
Equations
- Function.Surjective.nonUnitalNonAssocCommRing f hf zero add mul neg sub nsmul zsmul = NonUnitalNonAssocCommRing.mk ⋯
Instances For
Pushforward a NonUnitalCommRing
instance along a surjective function.
Equations
- Function.Surjective.nonUnitalCommRing f hf zero add mul neg sub nsmul zsmul = NonUnitalCommRing.mk ⋯
Instances For
Pushforward a CommRing
instance along a surjective function.
Equations
- Function.Surjective.commRing f hf zero one add mul neg sub nsmul zsmul npow natCast intCast = CommRing.mk ⋯
Instances For
Equations
- AddOpposite.instHasDistribNeg = Function.Injective.hasDistribNeg AddOpposite.unop ⋯ ⋯ ⋯