Transfer algebraic structures across Equivs #
In this file we prove theorems of the following form: if β has a
group structure and α ≃ β then α has a group structure, and
similarly for monoids, semigroups, rings, integral domains, fields and
so on.
Note that most of these constructions can also be obtained using the transport tactic.
Implementation details #
When adding new definitions that transfer type-classes across an equivalence, please use
abbrev. See note [reducible non-instances].
Tags #
equiv, group, ring, field, module, algebra
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
- Equiv.instSMulShrink R = (equivShrink α).symm.smul R
Equations
- Equiv.instPowShrink N = (equivShrink α).symm.pow N
An equivalence e : α ≃ β gives a multiplicative equivalence α ≃* β where
the multiplicative structure on α is the one obtained by transporting a multiplicative structure
on β back along e.
Instances For
An equivalence e : α ≃ β gives an additive equivalence α ≃+ β where
the additive structure on α is the one obtained by transporting an additive structure
on β back along e.
Instances For
Shrink α to a smaller universe preserves multiplication.
Equations
Instances For
Shrink α to a smaller universe preserves addition.
Equations
Instances For
Shrink α to a smaller universe preserves ring structure.
Equations
Instances For
Transfer add_semigroup across an Equiv
Equations
- e.addSemigroup = Function.Injective.addSemigroup ⇑e ⋯ ⋯
Instances For
Equations
Equations
Transfer SemigroupWithZero across an Equiv
Equations
Instances For
Equations
Transfer AddCommSemigroup across an Equiv
Equations
Instances For
Equations
Equations
Transfer MulZeroClass across an Equiv
Equations
- e.mulZeroClass = Function.Injective.mulZeroClass ⇑e ⋯ ⋯ ⋯
Instances For
Equations
Transfer MulOneClass across an Equiv
Equations
- e.mulOneClass = Function.Injective.mulOneClass ⇑e ⋯ ⋯ ⋯
Instances For
Transfer AddZeroClass across an Equiv
Equations
- e.addZeroClass = Function.Injective.addZeroClass ⇑e ⋯ ⋯ ⋯
Instances For
Equations
Equations
Transfer MulZeroOneClass across an Equiv
Equations
- e.mulZeroOneClass = Function.Injective.mulZeroOneClass ⇑e ⋯ ⋯ ⋯ ⋯
Instances For
Equations
Equations
Equations
Transfer CommMonoid across an Equiv
Equations
- e.commMonoid = Function.Injective.commMonoid ⇑e ⋯ ⋯ ⋯ ⋯
Instances For
Transfer AddCommMonoid across an Equiv
Equations
- e.addCommMonoid = Function.Injective.addCommMonoid ⇑e ⋯ ⋯ ⋯ ⋯
Instances For
Equations
Equations
Equations
Equations
Transfer AddCommGroup across an Equiv
Equations
- e.addCommGroup = Function.Injective.addCommGroup ⇑e ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Equations
Equations
Transfer NonUnitalNonAssocSemiring across an Equiv
Equations
Instances For
Transfer NonUnitalSemiring across an Equiv
Equations
- e.nonUnitalSemiring = Function.Injective.nonUnitalSemiring ⇑e ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Equations
Transfer AddMonoidWithOne across an Equiv
Equations
Instances For
Equations
Transfer AddGroupWithOne across an Equiv
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Transfer NonAssocSemiring across an Equiv
Equations
- e.nonAssocSemiring = Function.Injective.nonAssocSemiring ⇑e ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Equations
Equations
Transfer NonUnitalCommSemiring across an Equiv
Equations
- e.nonUnitalCommSemiring = Function.Injective.nonUnitalCommSemiring ⇑e ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Transfer CommSemiring across an Equiv
Equations
- e.commSemiring = Function.Injective.commSemiring ⇑e ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Equations
Transfer NonUnitalNonAssocRing across an Equiv
Equations
- e.nonUnitalNonAssocRing = Function.Injective.nonUnitalNonAssocRing ⇑e ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Transfer NonUnitalRing across an Equiv
Equations
- e.nonUnitalRing = Function.Injective.nonUnitalRing ⇑e ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Equations
Transfer NonAssocRing across an Equiv
Equations
- e.nonAssocRing = Function.Injective.nonAssocRing ⇑e ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Equations
Equations
Transfer NonUnitalCommRing across an Equiv
Equations
- e.nonUnitalCommRing = Function.Injective.nonUnitalCommRing ⇑e ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Equations
Equations
Equations
Equations
Transfer DivisionRing across an Equiv
Equations
- e.divisionRing = Function.Injective.divisionRing ⇑e ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Equations
Equations
Equations
Transfer DistribMulAction across an Equiv
Equations
- Equiv.distribMulAction R e = { toMulAction := Equiv.mulAction R e, smul_zero := ⋯, smul_add := ⋯ }
Instances For
Equations
Transfer Module across an Equiv
Equations
- @Equiv.module α β R inst✝¹ e inst✝ = fun [Module R β] => let __src := Equiv.distribMulAction R e; { toDistribMulAction := __src, add_smul := ⋯, zero_smul := ⋯ }
Instances For
Equations
An equivalence e : α ≃ β gives a linear equivalence α ≃ₗ[R] β
where the R-module structure on α is
the one obtained by transporting an R-module structure on β back along e.
Equations
Instances For
Shrink α to a smaller universe preserves module structure.
Equations
- Shrink.linearEquiv α R = Equiv.linearEquiv R (equivShrink α).symm
Instances For
Transfer Algebra across an Equiv
Equations
- @Equiv.algebra α β R inst✝¹ e inst✝ = fun [Algebra R β] => Algebra.ofModule ⋯ ⋯
Instances For
Equations
An equivalence e : α ≃ β gives an algebra equivalence α ≃ₐ[R] β
where the R-algebra structure on α is
the one obtained by transporting an R-algebra structure on β back along e.
Equations
Instances For
Shrink α to a smaller universe preserves algebra structure.
Equations
- Shrink.algEquiv α R = Equiv.algEquiv R (equivShrink α).symm
Instances For
Transport a module instance via an isomorphism of the underlying abelian groups.
This has better definitional properties than Equiv.module since here
the abelian group structure remains unmodified.
Equations
- AddEquiv.module A e = { toSMul := e.smul A, one_smul := ⋯, mul_smul := ⋯, smul_zero := ⋯, smul_add := ⋯, add_smul := ⋯, zero_smul := ⋯ }
Instances For
The module instance from AddEquiv.module is compatible with the R-module structures,
if the AddEquiv is induced by an R-module isomorphism.