mathlib documentation

algebra.​group.​ulift

algebra.​group.​ulift

ulift instances for groups and monoids

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).

@[instance]
def ulift.​has_one {α : Type u} [has_one α] :

Equations
@[instance]
def ulift.​has_zero {α : Type u} [has_zero α] :

@[simp]
theorem ulift.​zero_down {α : Type u} [has_zero α] :
0.down = 0

@[simp]
theorem ulift.​one_down {α : Type u} [has_one α] :
1.down = 1

@[instance]
def ulift.​has_mul {α : Type u} [has_mul α] :

Equations
@[instance]
def ulift.​has_add {α : Type u} [has_add α] :

@[simp]
theorem ulift.​add_down {α : Type u} {x y : ulift α} [has_add α] :
(x + y).down = x.down + y.down

@[simp]
theorem ulift.​mul_down {α : Type u} {x y : ulift α} [has_mul α] :
(x * y).down = x.down * y.down

@[instance]
def ulift.​has_inv {α : Type u} [has_inv α] :

Equations
@[instance]
def ulift.​has_neg {α : Type u} [has_neg α] :

@[simp]
theorem ulift.​inv_down {α : Type u} {x : ulift α} [has_inv α] :

@[simp]
theorem ulift.​neg_down {α : Type u} {x : ulift α} [has_neg α] :
(-x).down = -x.down

@[instance]
def ulift.​add_semigroup {α : Type u} [add_semigroup α] :

@[instance]
def ulift.​semigroup {α : Type u} [semigroup α] :

Equations
def ulift.​add_equiv {α : Type u} [add_semigroup α] :
ulift α ≃+ α

The additive equivalence between ulift α and α.

def ulift.​mul_equiv {α : Type u} [semigroup α] :
ulift α ≃* α

The multiplicative equivalence between ulift α and α.

Equations
@[instance]
def ulift.​monoid {α : Type u} [monoid α] :

Equations
@[instance]
def ulift.​add_monoid {α : Type u} [add_monoid α] :

@[instance]
def ulift.​comm_monoid {α : Type u} [comm_monoid α] :

Equations
@[instance]

@[instance]
def ulift.​group {α : Type u} [group α] :

Equations
@[instance]
def ulift.​add_group {α : Type u} [add_group α] :

@[simp]
theorem ulift.​sub_down {α : Type u} {x y : ulift α} [add_group α] :
(x - y).down = x.down - y.down

@[instance]
def ulift.​comm_group {α : Type u} [comm_group α] :

Equations
@[instance]