ulift
instances for groups and monoids #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines instances for group, monoid, semigroup and related structures on ulift
types.
(Recall ulift α
is just a "copy" of a type α
in a higher universe.)
We use tactic.pi_instance_derive_field
, even though it wasn't intended for this purpose,
which seems to work fine.
We also provide ulift.mul_equiv : ulift R ≃* R
(and its additive analogue).
The additive equivalence between ulift α
and α
.
Equations
- add_equiv.ulift = {to_fun := equiv.ulift.to_fun, inv_fun := equiv.ulift.inv_fun, left_inv := _, right_inv := _, map_add' := _}
The multiplicative equivalence between ulift α
and α
.
Equations
- mul_equiv.ulift = {to_fun := equiv.ulift.to_fun, inv_fun := equiv.ulift.inv_fun, left_inv := _, right_inv := _, map_mul' := _}
@[protected, instance]
Equations
- ulift.add_semigroup = function.injective.add_semigroup ⇑add_equiv.ulift ulift.add_semigroup._proof_1 ulift.add_semigroup._proof_2
@[protected, instance]
Equations
- ulift.semigroup = function.injective.semigroup ⇑mul_equiv.ulift ulift.semigroup._proof_1 ulift.semigroup._proof_2
@[protected, instance]
Equations
- ulift.add_comm_semigroup = function.injective.add_comm_semigroup ⇑equiv.ulift ulift.add_comm_semigroup._proof_1 ulift.add_comm_semigroup._proof_2
@[protected, instance]
Equations
- ulift.comm_semigroup = function.injective.comm_semigroup ⇑equiv.ulift ulift.comm_semigroup._proof_1 ulift.comm_semigroup._proof_2
@[protected, instance]
Equations
- ulift.mul_one_class = function.injective.mul_one_class ⇑equiv.ulift ulift.mul_one_class._proof_1 ulift.mul_one_class._proof_2 ulift.mul_one_class._proof_3
@[protected, instance]
Equations
- ulift.add_zero_class = function.injective.add_zero_class ⇑equiv.ulift ulift.add_zero_class._proof_1 ulift.add_zero_class._proof_2 ulift.add_zero_class._proof_3
@[protected, instance]
Equations
- ulift.mul_zero_one_class = function.injective.mul_zero_one_class ⇑equiv.ulift ulift.mul_zero_one_class._proof_1 ulift.mul_zero_one_class._proof_2 ulift.mul_zero_one_class._proof_3 ulift.mul_zero_one_class._proof_4
@[protected, instance]
Equations
- ulift.add_monoid = function.injective.add_monoid ⇑equiv.ulift ulift.add_monoid._proof_1 ulift.add_monoid._proof_2 ulift.add_monoid._proof_3 ulift.add_monoid._proof_4
@[protected, instance]
Equations
- ulift.monoid = function.injective.monoid ⇑equiv.ulift ulift.monoid._proof_1 ulift.monoid._proof_2 ulift.monoid._proof_3 ulift.monoid._proof_4
@[protected, instance]
Equations
- ulift.add_comm_monoid = function.injective.add_comm_monoid ⇑equiv.ulift ulift.add_comm_monoid._proof_1 ulift.add_comm_monoid._proof_2 ulift.add_comm_monoid._proof_3 ulift.add_comm_monoid._proof_4
@[protected, instance]
Equations
- ulift.comm_monoid = function.injective.comm_monoid ⇑equiv.ulift ulift.comm_monoid._proof_1 ulift.comm_monoid._proof_2 ulift.comm_monoid._proof_3 ulift.comm_monoid._proof_4
@[protected, instance]
@[protected, instance]
@[simp, norm_cast]
@[simp, norm_cast]
@[simp, norm_cast]
@[simp, norm_cast]
@[protected, instance]
Equations
- ulift.add_monoid_with_one = {nat_cast := has_nat_cast.nat_cast ulift.has_nat_cast, add := add_monoid.add ulift.add_monoid, add_assoc := _, zero := add_monoid.zero ulift.add_monoid, zero_add := _, add_zero := _, nsmul := add_monoid.nsmul ulift.add_monoid, nsmul_zero' := _, nsmul_succ' := _, one := 1, nat_cast_zero := _, nat_cast_succ := _}
@[protected, instance]
Equations
- ulift.add_comm_monoid_with_one = {nat_cast := add_monoid_with_one.nat_cast ulift.add_monoid_with_one, add := add_monoid_with_one.add ulift.add_monoid_with_one, add_assoc := _, zero := add_monoid_with_one.zero ulift.add_monoid_with_one, zero_add := _, add_zero := _, nsmul := add_monoid_with_one.nsmul ulift.add_monoid_with_one, nsmul_zero' := _, nsmul_succ' := _, one := add_monoid_with_one.one ulift.add_monoid_with_one, nat_cast_zero := _, nat_cast_succ := _, add_comm := _}
@[protected, instance]
Equations
- ulift.monoid_with_zero = function.injective.monoid_with_zero ⇑equiv.ulift ulift.monoid_with_zero._proof_1 ulift.monoid_with_zero._proof_2 ulift.monoid_with_zero._proof_3 ulift.monoid_with_zero._proof_4 ulift.monoid_with_zero._proof_5
@[protected, instance]
Equations
- ulift.comm_monoid_with_zero = function.injective.comm_monoid_with_zero ⇑equiv.ulift ulift.comm_monoid_with_zero._proof_1 ulift.comm_monoid_with_zero._proof_2 ulift.comm_monoid_with_zero._proof_3 ulift.comm_monoid_with_zero._proof_4 ulift.comm_monoid_with_zero._proof_5
@[protected, instance]
Equations
- ulift.div_inv_monoid = function.injective.div_inv_monoid ⇑equiv.ulift ulift.div_inv_monoid._proof_1 ulift.div_inv_monoid._proof_2 ulift.div_inv_monoid._proof_3 ulift.div_inv_monoid._proof_4 ulift.div_inv_monoid._proof_5 ulift.div_inv_monoid._proof_6 ulift.div_inv_monoid._proof_7
@[protected, instance]
Equations
- ulift.sub_neg_add_monoid = function.injective.sub_neg_monoid ⇑equiv.ulift ulift.sub_neg_add_monoid._proof_1 ulift.sub_neg_add_monoid._proof_2 ulift.sub_neg_add_monoid._proof_3 ulift.sub_neg_add_monoid._proof_4 ulift.sub_neg_add_monoid._proof_5 ulift.sub_neg_add_monoid._proof_6 ulift.sub_neg_add_monoid._proof_7
@[protected, instance]
Equations
- ulift.add_group = function.injective.add_group ⇑equiv.ulift ulift.add_group._proof_1 ulift.add_group._proof_2 ulift.add_group._proof_3 ulift.add_group._proof_4 ulift.add_group._proof_5 ulift.add_group._proof_6 ulift.add_group._proof_7
@[protected, instance]
Equations
- ulift.group = function.injective.group ⇑equiv.ulift ulift.group._proof_1 ulift.group._proof_2 ulift.group._proof_3 ulift.group._proof_4 ulift.group._proof_5 ulift.group._proof_6 ulift.group._proof_7
@[protected, instance]
Equations
- ulift.comm_group = function.injective.comm_group ⇑equiv.ulift ulift.comm_group._proof_1 ulift.comm_group._proof_2 ulift.comm_group._proof_3 ulift.comm_group._proof_4 ulift.comm_group._proof_5 ulift.comm_group._proof_6 ulift.comm_group._proof_7
@[protected, instance]
Equations
- ulift.add_comm_group = function.injective.add_comm_group ⇑equiv.ulift ulift.add_comm_group._proof_1 ulift.add_comm_group._proof_2 ulift.add_comm_group._proof_3 ulift.add_comm_group._proof_4 ulift.add_comm_group._proof_5 ulift.add_comm_group._proof_6 ulift.add_comm_group._proof_7
@[protected, instance]
Equations
- ulift.add_group_with_one = {int_cast := λ (n : ℤ), {down := ↑n}, add := add_monoid_with_one.add ulift.add_monoid_with_one, add_assoc := _, zero := add_monoid_with_one.zero ulift.add_monoid_with_one, zero_add := _, add_zero := _, nsmul := add_monoid_with_one.nsmul ulift.add_monoid_with_one, nsmul_zero' := _, nsmul_succ' := _, neg := add_group.neg ulift.add_group, sub := add_group.sub ulift.add_group, sub_eq_add_neg := _, zsmul := add_group.zsmul ulift.add_group, zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, nat_cast := add_monoid_with_one.nat_cast ulift.add_monoid_with_one, one := add_monoid_with_one.one ulift.add_monoid_with_one, nat_cast_zero := _, nat_cast_succ := _, int_cast_of_nat := _, int_cast_neg_succ_of_nat := _}
@[protected, instance]
Equations
- ulift.add_comm_group_with_one = {add := add_group_with_one.add ulift.add_group_with_one, add_assoc := _, zero := add_group_with_one.zero ulift.add_group_with_one, zero_add := _, add_zero := _, nsmul := add_group_with_one.nsmul ulift.add_group_with_one, nsmul_zero' := _, nsmul_succ' := _, neg := add_group_with_one.neg ulift.add_group_with_one, sub := add_group_with_one.sub ulift.add_group_with_one, sub_eq_add_neg := _, zsmul := add_group_with_one.zsmul ulift.add_group_with_one, zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _, int_cast := add_group_with_one.int_cast ulift.add_group_with_one, nat_cast := add_group_with_one.nat_cast ulift.add_group_with_one, one := add_group_with_one.one ulift.add_group_with_one, nat_cast_zero := _, nat_cast_succ := _, int_cast_of_nat := _, int_cast_neg_succ_of_nat := _}
@[protected, instance]
Equations
- ulift.group_with_zero = function.injective.group_with_zero ⇑equiv.ulift ulift.group_with_zero._proof_1 ulift.group_with_zero._proof_2 ulift.group_with_zero._proof_3 ulift.group_with_zero._proof_4 ulift.group_with_zero._proof_5 ulift.group_with_zero._proof_6 ulift.group_with_zero._proof_7 ulift.group_with_zero._proof_8
@[protected, instance]
Equations
- ulift.comm_group_with_zero = function.injective.comm_group_with_zero ⇑equiv.ulift ulift.comm_group_with_zero._proof_1 ulift.comm_group_with_zero._proof_2 ulift.comm_group_with_zero._proof_3 ulift.comm_group_with_zero._proof_4 ulift.comm_group_with_zero._proof_5 ulift.comm_group_with_zero._proof_6 ulift.comm_group_with_zero._proof_7 ulift.comm_group_with_zero._proof_8
@[protected, instance]
Equations
- ulift.add_left_cancel_semigroup = function.injective.add_left_cancel_semigroup ⇑equiv.ulift ulift.add_left_cancel_semigroup._proof_1 ulift.add_left_cancel_semigroup._proof_2
@[protected, instance]
Equations
- ulift.left_cancel_semigroup = function.injective.left_cancel_semigroup ⇑equiv.ulift ulift.left_cancel_semigroup._proof_1 ulift.left_cancel_semigroup._proof_2
@[protected, instance]
Equations
- ulift.right_cancel_semigroup = function.injective.right_cancel_semigroup ⇑equiv.ulift ulift.right_cancel_semigroup._proof_1 ulift.right_cancel_semigroup._proof_2
@[protected, instance]
Equations
- ulift.add_right_cancel_semigroup = function.injective.add_right_cancel_semigroup ⇑equiv.ulift ulift.add_right_cancel_semigroup._proof_1 ulift.add_right_cancel_semigroup._proof_2
@[protected, instance]
Equations
- ulift.left_cancel_monoid = function.injective.left_cancel_monoid ⇑equiv.ulift ulift.left_cancel_monoid._proof_1 ulift.left_cancel_monoid._proof_2 ulift.left_cancel_monoid._proof_3 ulift.left_cancel_monoid._proof_4
@[protected, instance]
Equations
- ulift.add_left_cancel_monoid = function.injective.add_left_cancel_monoid ⇑equiv.ulift ulift.add_left_cancel_monoid._proof_1 ulift.add_left_cancel_monoid._proof_2 ulift.add_left_cancel_monoid._proof_3 ulift.add_left_cancel_monoid._proof_4
@[protected, instance]
Equations
- ulift.add_right_cancel_monoid = function.injective.add_right_cancel_monoid ⇑equiv.ulift ulift.add_right_cancel_monoid._proof_1 ulift.add_right_cancel_monoid._proof_2 ulift.add_right_cancel_monoid._proof_3 ulift.add_right_cancel_monoid._proof_4
@[protected, instance]
Equations
- ulift.right_cancel_monoid = function.injective.right_cancel_monoid ⇑equiv.ulift ulift.right_cancel_monoid._proof_1 ulift.right_cancel_monoid._proof_2 ulift.right_cancel_monoid._proof_3 ulift.right_cancel_monoid._proof_4
@[protected, instance]
Equations
- ulift.cancel_monoid = function.injective.cancel_monoid ⇑equiv.ulift ulift.cancel_monoid._proof_1 ulift.cancel_monoid._proof_2 ulift.cancel_monoid._proof_3 ulift.cancel_monoid._proof_4
@[protected, instance]
Equations
- ulift.add_cancel_monoid = function.injective.add_cancel_monoid ⇑equiv.ulift ulift.add_cancel_monoid._proof_1 ulift.add_cancel_monoid._proof_2 ulift.add_cancel_monoid._proof_3 ulift.add_cancel_monoid._proof_4
@[protected, instance]
Equations
- ulift.add_cancel_comm_monoid = function.injective.add_cancel_comm_monoid ⇑equiv.ulift ulift.add_cancel_comm_monoid._proof_1 ulift.add_cancel_comm_monoid._proof_2 ulift.add_cancel_comm_monoid._proof_3 ulift.add_cancel_comm_monoid._proof_4
@[protected, instance]
Equations
- ulift.cancel_comm_monoid = function.injective.cancel_comm_monoid ⇑equiv.ulift ulift.cancel_comm_monoid._proof_1 ulift.cancel_comm_monoid._proof_2 ulift.cancel_comm_monoid._proof_3 ulift.cancel_comm_monoid._proof_4
@[protected, instance]