Pulling back rings along injective maps, and pushing them forward along surjective maps #
Implementation note #
The nsmul and zsmul assumptions on any transfer definition for an algebraic structure involving
both addition and multiplication (e.g. AddMonoidWithOne) is ∀ n x, f (n • x) = n • f x, which is
what we would expect.
However, we cannot do the same for transfer definitions built using to_additive (e.g. AddMonoid)
as we want the multiplicative versions to be ∀ x n, f (x ^ n) = f x ^ n.
As a result, we must use Function.swap when using additivised transfer definitions in
non-additivised ones.
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 = { toMul := inst✝¹, toAdd := inst✝², left_distrib := ⋯, right_distrib := ⋯ }
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 = { toInvolutiveNeg := Function.Injective.involutiveNeg f hf neg, neg_mul := ⋯, mul_neg := ⋯ }
Instances For
A type endowed with 0, 1 and + is an additive monoid with one,
if it admits an injective map that preserves 0, 1 and + to an additive monoid with one.
See note [reducible non-instances].
Equations
- One or more equations did not get rendered due to their size.
Instances For
A type endowed with 0, 1 and + is an additive commutative monoid with one, if it admits an
injective map that preserves 0, 1 and + to an additive commutative monoid with one.
See note [reducible non-instances].
Equations
- Function.Injective.addCommMonoidWithOne f hf zero one add nsmul natCast = { toAddMonoidWithOne := Function.Injective.addMonoidWithOne f hf zero one add nsmul natCast, add_comm := ⋯ }
Instances For
A type endowed with 0, 1 and + is an additive group with one, if it admits an injective
map that preserves 0, 1 and + to an additive group with one. See note
[reducible non-instances].
Equations
- One or more equations did not get rendered due to their size.
Instances For
A type endowed with 0, 1 and + is an additive commutative group with one, if it admits an
injective map that preserves 0, 1 and + to an additive commutative group with one.
See note [reducible non-instances].
Equations
- One or more equations did not get rendered due to their size.
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 = { toNonUnitalNonAssocSemiring := Function.Injective.nonUnitalNonAssocSemiring f hf zero add mul nsmul, mul_assoc := ⋯ }
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
- One or more equations did not get rendered due to their size.
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 = { toNonUnitalNonAssocSemiring := Function.Injective.nonUnitalNonAssocSemiring f hf zero add mul nsmul, mul_comm := ⋯ }
Instances For
Pullback a NonUnitalCommSemiring instance along an injective function.
Equations
- Function.Injective.nonUnitalCommSemiring f hf zero add mul nsmul = { toNonUnitalSemiring := Function.Injective.nonUnitalSemiring f hf zero add mul nsmul, mul_comm := ⋯ }
Instances For
Pullback a CommSemiring instance along an injective function.
Equations
- Function.Injective.commSemiring f hf zero one add mul nsmul npow natCast = { toSemiring := Function.Injective.semiring f hf zero one add mul nsmul npow natCast, mul_comm := ⋯ }
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
- Function.Injective.nonUnitalCommRing f hf zero add mul neg sub nsmul zsmul = { toNonUnitalRing := Function.Injective.nonUnitalRing f hf zero add mul neg sub nsmul zsmul, mul_comm := ⋯ }
Instances For
Pullback a CommRing instance along an injective function.
Equations
- One or more equations did not get rendered due to their size.
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 = { toMul := inst✝¹, toAdd := inst✝², left_distrib := ⋯, right_distrib := ⋯ }
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 = { toInvolutiveNeg := Function.Surjective.involutiveNeg f hf neg, neg_mul := ⋯, mul_neg := ⋯ }
Instances For
A type endowed with 0, 1 and + is an additive monoid with one, if it admits a surjective
map that preserves 0, 1 and * from an additive monoid with one. See note
[reducible non-instances].
Equations
- One or more equations did not get rendered due to their size.
Instances For
A type endowed with 0, 1 and + is an additive monoid with one,
if it admits a surjective map that preserves 0, 1 and * from an additive monoid with one.
See note [reducible non-instances].
Equations
- Function.Surjective.addCommMonoidWithOne f hf zero one add nsmul natCast = { toAddMonoidWithOne := Function.Surjective.addMonoidWithOne f hf zero one add nsmul natCast, add_comm := ⋯ }
Instances For
A type endowed with 0, 1, + is an additive group with one,
if it admits a surjective map that preserves 0, 1, and + to an additive group with one.
See note [reducible non-instances].
Equations
- One or more equations did not get rendered due to their size.
Instances For
A type endowed with 0, 1, + is an additive commutative group with one, if it admits a
surjective map that preserves 0, 1, and + to an additive commutative group with one.
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.
Equations
- Function.Surjective.nonUnitalSemiring f hf zero add mul nsmul = { toNonUnitalNonAssocSemiring := Function.Surjective.nonUnitalNonAssocSemiring f hf zero add mul nsmul, mul_assoc := ⋯ }
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
- 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
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
- One or more equations did not get rendered due to their size.
Instances For
Pushforward a NonUnitalCommSemiring instance along a surjective function.
Equations
- Function.Surjective.nonUnitalCommSemiring f hf zero add mul nsmul = { toNonUnitalSemiring := Function.Surjective.nonUnitalSemiring f hf zero add mul nsmul, mul_comm := ⋯ }
Instances For
Pushforward a CommSemiring instance along a surjective function.
Equations
- Function.Surjective.commSemiring f hf zero one add mul nsmul npow natCast = { toSemiring := Function.Surjective.semiring f hf zero one add mul nsmul npow natCast, mul_comm := ⋯ }
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
- Function.Surjective.nonUnitalCommRing f hf zero add mul neg sub nsmul zsmul = { toNonUnitalRing := Function.Surjective.nonUnitalRing f hf zero add mul neg sub nsmul zsmul, mul_comm := ⋯ }
Instances For
Pushforward a CommRing instance along a surjective function.
Equations
- One or more equations did not get rendered due to their size.