Transfer algebraic structures across Equivs #
In this file we prove lemmas of the following form: if β has a group structure and α ≃ β
then α has a group structure, and similarly for monoids, semigroups and so on.
Implementation details #
When adding new definitions that transfer type-classes across an equivalence, please use
abbrev. See note [reducible non-instances].
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
Transfer add_semigroup across an Equiv
Equations
- e.addSemigroup = Function.Injective.addSemigroup ⇑e ⋯ ⋯
Instances For
Transfer CommSemigroup across an Equiv
Equations
Instances For
Transfer AddCommSemigroup across an Equiv
Equations
Instances For
Transfer IsLeftCancelMul across an Equiv
Transfer IsLeftCancelAdd across an Equiv
Transfer IsRightCancelMul across an Equiv
Transfer IsRightCancelAdd across an Equiv
Transfer IsCancelMul across an Equiv
Transfer IsCancelAdd across an Equiv
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
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
Transfer AddCommGroup across an Equiv
Equations
- e.addCommGroup = Function.Injective.addCommGroup ⇑e ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯