Pulling back rings along injective maps, and pushing them forward along surjective maps. #
Pullback a Distrib
instance along an injective function.
See note [reducible non-instances].
Equations
- Function.Injective.distrib f hf add mul = Distrib.mk ⋯ ⋯
Instances For
Pushforward a Distrib
instance along a surjective function.
See note [reducible non-instances].
Equations
- Function.Surjective.distrib f hf add mul = Distrib.mk ⋯ ⋯
Instances For
Semirings #
Pullback a NonUnitalNonAssocSemiring
instance along an injective function.
See note [reducible non-instances].
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pullback a NonUnitalSemiring
instance along an injective function.
See note [reducible non-instances].
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.
See note [reducible non-instances].
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pullback a Semiring
instance along an injective function.
See note [reducible non-instances].
Equations
- One or more equations did not get rendered due to their size.
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.
See note [reducible non-instances].
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.
See note [reducible non-instances].
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pushforward a Semiring
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
Pullback a NonUnitalNonAssocRing
instance along an injective 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
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
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
Pullback a NonAssocRing
instance along an injective function.
Equations
- One or more equations did not get rendered due to their size.
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
Pullback a Ring
instance along an injective 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
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
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
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
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
Pullback a CommSemiring
instance along an injective function.
Equations
- Function.Injective.commSemiring f hf zero one add mul nsmul npow nat_cast = let __spread.0 := Function.Injective.commSemigroup f hf mul; CommSemiring.mk ⋯
Instances For
Pushforward a NonAssocSemiring
instance along a surjective function.
Equations
- Function.Surjective.commSemiring f hf zero one add mul nsmul npow nat_cast = let __spread.0 := Function.Surjective.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
Pushforward a NonUnitalNonAssocCommRing
instance along a surjective function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pullback a NonUnitalCommRing
instance along an injective function.
See note [reducible non-instances].
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pushforward a NonUnitalCommRing
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
Pullback a CommRing
instance along an injective function.
See note [reducible non-instances].
Equations
- Function.Injective.commRing f hf zero one add mul neg sub nsmul zsmul npow nat_cast int_cast = let __spread.0 := Function.Injective.commMonoid f hf one mul npow; CommRing.mk ⋯
Instances For
Pushforward a CommRing
instance along a surjective function.
See note [reducible non-instances].
Equations
- Function.Surjective.commRing f hf zero one add mul neg sub nsmul zsmul npow nat_cast int_cast = let __spread.0 := Function.Surjective.commMonoid f hf one mul npow; CommRing.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
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
Equations
- AddOpposite.instHasDistribNeg = Function.Injective.hasDistribNeg AddOpposite.unop ⋯ ⋯ ⋯