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 = let __spread.0 := ⋯; let __spread.1 := ⋯; 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 = let __src := Function.Injective.involutiveNeg f hf neg; let __src_1 := inst✝²; HasDistribNeg.mk ⋯ ⋯
Instances For
Pullback a NonUnitalNonAssocSemiring instance along an injective function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pullback a NonUnitalSemiring instance along an injective function.
Equations
- Function.Injective.nonUnitalSemiring f hf zero add mul nsmul = let __spread.0 := Function.Injective.semigroupWithZero f hf zero mul; NonUnitalSemiring.mk ⋯
Instances For
Pullback a NonAssocSemiring instance along an injective function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pullback a Semiring instance along an injective function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pullback a NonUnitalNonAssocRing instance along an injective function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pullback a NonUnitalRing instance along an injective function.
Equations
- Function.Injective.nonUnitalRing f hf zero add mul neg sub nsmul zsmul = let __spread.0 := Function.Injective.nonUnitalSemiring f hf zero add mul nsmul; NonUnitalRing.mk ⋯
Instances For
Pullback a NonAssocRing instance along an injective function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pullback a Ring instance along an injective function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pullback a NonUnitalNonAssocCommSemiring instance along an injective function.
Equations
- Function.Injective.nonUnitalNonAssocCommSemiring f hf zero add mul nsmul = let __spread.0 := Function.Injective.commMagma f hf mul; NonUnitalNonAssocCommSemiring.mk ⋯
Instances For
Pullback a NonUnitalCommSemiring instance along an injective function.
Equations
- Function.Injective.nonUnitalCommSemiring f hf zero add mul nsmul = let __spread.0 := Function.Injective.commSemigroup f hf mul; 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 = let __spread.0 := Function.Injective.commSemigroup f hf mul; CommSemiring.mk ⋯
Instances For
Pullback a NonUnitalNonAssocCommRing instance along an injective function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pullback a NonUnitalCommRing instance along an injective function.
Equations
- One or more equations did not get rendered due to their size.
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 = let __spread.0 := Function.Injective.commMonoid f hf one mul npow; 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 = let __spread.0 := ⋯; let __spread.1 := ⋯; 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 = let __src := Function.Surjective.involutiveNeg f hf neg; let __src_1 := inst✝²; HasDistribNeg.mk ⋯ ⋯
Instances For
Pushforward a NonUnitalNonAssocSemiring instance along a surjective function.
See note [reducible non-instances].
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pushforward a NonUnitalSemiring instance along a surjective function.
Equations
- Function.Surjective.nonUnitalSemiring f hf zero add mul nsmul = let __spread.0 := Function.Surjective.semigroupWithZero f hf zero mul; NonUnitalSemiring.mk ⋯
Instances For
Pushforward a NonAssocSemiring instance along a surjective function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pushforward a Semiring instance along a surjective function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pushforward a NonUnitalNonAssocRing instance along a surjective function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pushforward a NonUnitalRing instance along a surjective function.
Equations
- Function.Surjective.nonUnitalRing f hf zero add mul neg sub nsmul zsmul = let __spread.0 := Function.Surjective.nonUnitalSemiring f hf zero add mul nsmul; NonUnitalRing.mk ⋯
Instances For
Pushforward a NonAssocRing instance along a surjective function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pushforward a Ring instance along a surjective function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pushforward a NonUnitalNonAssocCommSemiring instance along a surjective function.
Equations
- Function.Surjective.nonUnitalNonAssocCommSemiring f hf zero add mul nsmul = let __spread.0 := Function.Surjective.commMagma f hf mul; NonUnitalNonAssocCommSemiring.mk ⋯
Instances For
Pushforward a NonUnitalCommSemiring instance along a surjective function.
Equations
- Function.Surjective.nonUnitalCommSemiring f hf zero add mul nsmul = let __spread.0 := Function.Surjective.commSemigroup f hf mul; 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 = let __spread.0 := Function.Surjective.commSemigroup f hf mul; CommSemiring.mk ⋯
Instances For
Pushforward a NonUnitalNonAssocCommRing instance along a surjective function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pushforward a NonUnitalCommRing instance along a surjective function.
Equations
- One or more equations did not get rendered due to their size.
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 = let __spread.0 := Function.Surjective.commMonoid f hf one mul npow; CommRing.mk ⋯
Instances For
Equations
- AddOpposite.instHasDistribNeg = Function.Injective.hasDistribNeg AddOpposite.unop ⋯ ⋯ ⋯