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 also provide MulEquiv.ulift : ULift R ≃* R
(and its additive analogue).
Equations
- ULift.zero = { zero := { down := 0 } }
Equations
- ULift.add = { add := fun (f g : ULift.{u_2, u} α) => { down := f.down + g.down } }
Equations
- ULift.mul = { mul := fun (f g : ULift.{u_2, u} α) => { down := f.down * g.down } }
@[simp]
@[simp]
Equations
- ULift.sub = { sub := fun (f g : ULift.{u_2, u} α) => { down := f.down - g.down } }
Equations
- ULift.div = { div := fun (f g : ULift.{u_2, u} α) => { down := f.down / g.down } }
@[simp]
@[simp]
Equations
- ULift.neg = { neg := fun (f : ULift.{u_2, u} α) => { down := -f.down } }
Equations
- ULift.inv = { inv := fun (f : ULift.{u_2, u} α) => { down := f.down⁻¹ } }
Equations
- ULift.vadd = { vadd := fun (n : α) (x : ULift.{u_2, u_1} β) => { down := n +ᵥ x.down } }
Equations
- ULift.smul = { smul := fun (n : α) (x : ULift.{u_2, u_1} β) => { down := n • x.down } }
@[simp]
@[simp]
Equations
- ULift.pow = { pow := fun (x : ULift.{u_2, u} α) (n : β) => { down := x.down ^ n } }
@[simp]
theorem
AddEquiv.ulift.proof_1
{α : Type u_2}
[Add α]
:
∀ (x x_1 : ULift.{u_1, u_2} α), Equiv.ulift.toFun (x + x_1) = Equiv.ulift.toFun (x + x_1)
Equations
- ULift.semigroup = Function.Injective.semigroup ⇑MulEquiv.ulift ⋯ ⋯
Equations
- ULift.addSemigroup = Function.Injective.addSemigroup ⇑Equiv.ulift ⋯ ⋯
theorem
ULift.addCommSemigroup.proof_2
{α : Type u_2}
[AddCommSemigroup α]
:
∀ (x x_1 : ULift.{u_1, u_2} α), Equiv.ulift (x + x_1) = Equiv.ulift (x + x_1)
Equations
- ULift.addCommSemigroup = Function.Injective.addCommSemigroup ⇑Equiv.ulift ⋯ ⋯
Equations
- ULift.commSemigroup = Function.Injective.commSemigroup ⇑Equiv.ulift ⋯ ⋯
theorem
ULift.addZeroClass.proof_3
{α : Type u_2}
[AddZeroClass α]
:
∀ (x y : ULift.{u_1, u_2} α), Equiv.ulift (x + y) = Equiv.ulift (x + y)
Equations
- ULift.addZeroClass = Function.Injective.addZeroClass ⇑Equiv.ulift ⋯ ⋯ ⋯
Equations
- ULift.mulOneClass = Function.Injective.mulOneClass ⇑Equiv.ulift ⋯ ⋯ ⋯
Equations
- ULift.mulZeroOneClass = Function.Injective.mulZeroOneClass ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯
Equations
- ULift.addMonoid = Function.Injective.addMonoid ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯
theorem
ULift.addMonoid.proof_4
{α : Type u_2}
[AddMonoid α]
:
∀ (x : ULift.{u_1, u_2} α) (x_1 : ℕ), Equiv.ulift (x_1 • x) = Equiv.ulift (x_1 • x)
theorem
ULift.addMonoid.proof_3
{α : Type u_2}
[AddMonoid α]
:
∀ (x x_1 : ULift.{u_1, u_2} α), Equiv.ulift (x + x_1) = Equiv.ulift (x + x_1)
Equations
- ULift.monoid = Function.Injective.monoid ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯
theorem
ULift.addCommMonoid.proof_3
{α : Type u_2}
[AddCommMonoid α]
:
∀ (x x_1 : ULift.{u_1, u_2} α), Equiv.ulift (x + x_1) = Equiv.ulift (x + x_1)
Equations
- ULift.addCommMonoid = Function.Injective.addCommMonoid ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯
theorem
ULift.addCommMonoid.proof_4
{α : Type u_2}
[AddCommMonoid α]
:
∀ (x : ULift.{u_1, u_2} α) (x_1 : ℕ), Equiv.ulift (x_1 • x) = Equiv.ulift (x_1 • x)
Equations
- ULift.commMonoid = Function.Injective.commMonoid ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯
@[simp]
theorem
ULift.up_ofNat
{α : Type u}
[NatCast α]
(n : ℕ)
[Nat.AtLeastTwo n]
:
{ down := OfNat.ofNat n } = OfNat.ofNat n
@[simp]
theorem
ULift.down_ofNat
{α : Type u}
[NatCast α]
(n : ℕ)
[Nat.AtLeastTwo n]
:
(OfNat.ofNat n).down = OfNat.ofNat n
Equations
- ULift.addMonoidWithOne = let __src := ULift.one; let __src_1 := ULift.addMonoid; AddMonoidWithOne.mk ⋯ ⋯
Equations
- ULift.addCommMonoidWithOne = let __src := ULift.addMonoidWithOne; let __src_1 := ULift.addCommMonoid; AddCommMonoidWithOne.mk ⋯
Equations
- ULift.monoidWithZero = Function.Injective.monoidWithZero ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ULift.commMonoidWithZero = Function.Injective.commMonoidWithZero ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ULift.subNegAddMonoid = Function.Injective.subNegMonoid ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
theorem
ULift.subNegAddMonoid.proof_4
{α : Type u_2}
[SubNegMonoid α]
:
∀ (x : ULift.{u_1, u_2} α), Equiv.ulift (-x) = Equiv.ulift (-x)
theorem
ULift.subNegAddMonoid.proof_3
{α : Type u_2}
[SubNegMonoid α]
:
∀ (x x_1 : ULift.{u_1, u_2} α), Equiv.ulift (x + x_1) = Equiv.ulift (x + x_1)
theorem
ULift.subNegAddMonoid.proof_5
{α : Type u_2}
[SubNegMonoid α]
:
∀ (x x_1 : ULift.{u_1, u_2} α), Equiv.ulift (x - x_1) = Equiv.ulift (x - x_1)
theorem
ULift.subNegAddMonoid.proof_6
{α : Type u_2}
[SubNegMonoid α]
:
∀ (x : ULift.{u_1, u_2} α) (x_1 : ℕ), Equiv.ulift (x_1 • x) = Equiv.ulift (x_1 • x)
theorem
ULift.subNegAddMonoid.proof_7
{α : Type u_2}
[SubNegMonoid α]
:
∀ (x : ULift.{u_1, u_2} α) (x_1 : ℤ), Equiv.ulift (x_1 • x) = Equiv.ulift (x_1 • x)
theorem
ULift.subNegAddMonoid.proof_2
{α : Type u_1}
[SubNegMonoid α]
:
Equiv.ulift 0 = Equiv.ulift 0
Equations
- ULift.divInvMonoid = Function.Injective.divInvMonoid ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
theorem
ULift.addGroup.proof_3
{α : Type u_2}
[AddGroup α]
:
∀ (x x_1 : ULift.{u_1, u_2} α), Equiv.ulift (x + x_1) = Equiv.ulift (x + x_1)
Equations
- ULift.addGroup = Function.Injective.addGroup ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
theorem
ULift.addGroup.proof_5
{α : Type u_2}
[AddGroup α]
:
∀ (x x_1 : ULift.{u_1, u_2} α), Equiv.ulift (x - x_1) = Equiv.ulift (x - x_1)
theorem
ULift.addGroup.proof_4
{α : Type u_2}
[AddGroup α]
:
∀ (x : ULift.{u_1, u_2} α), Equiv.ulift (-x) = Equiv.ulift (-x)
theorem
ULift.addGroup.proof_6
{α : Type u_2}
[AddGroup α]
:
∀ (x : ULift.{u_1, u_2} α) (x_1 : ℕ), Equiv.ulift (x_1 • x) = Equiv.ulift (x_1 • x)
theorem
ULift.addGroup.proof_7
{α : Type u_2}
[AddGroup α]
:
∀ (x : ULift.{u_1, u_2} α) (x_1 : ℤ), Equiv.ulift (x_1 • x) = Equiv.ulift (x_1 • x)
Equations
- ULift.group = Function.Injective.group ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
theorem
ULift.addCommGroup.proof_6
{α : Type u_2}
[AddCommGroup α]
:
∀ (x : ULift.{u_1, u_2} α) (x_1 : ℕ), Equiv.ulift (x_1 • x) = Equiv.ulift (x_1 • x)
theorem
ULift.addCommGroup.proof_5
{α : Type u_2}
[AddCommGroup α]
:
∀ (x x_1 : ULift.{u_1, u_2} α), Equiv.ulift (x - x_1) = Equiv.ulift (x - x_1)
theorem
ULift.addCommGroup.proof_3
{α : Type u_2}
[AddCommGroup α]
:
∀ (x x_1 : ULift.{u_1, u_2} α), Equiv.ulift (x + x_1) = Equiv.ulift (x + x_1)
Equations
- ULift.addCommGroup = Function.Injective.addCommGroup ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
theorem
ULift.addCommGroup.proof_4
{α : Type u_2}
[AddCommGroup α]
:
∀ (x : ULift.{u_1, u_2} α), Equiv.ulift (-x) = Equiv.ulift (-x)
theorem
ULift.addCommGroup.proof_7
{α : Type u_2}
[AddCommGroup α]
:
∀ (x : ULift.{u_1, u_2} α) (x_1 : ℤ), Equiv.ulift (x_1 • x) = Equiv.ulift (x_1 • x)
Equations
- ULift.commGroup = Function.Injective.commGroup ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ULift.addGroupWithOne = let __src := ULift.addMonoidWithOne; let __src_1 := ULift.addGroup; AddGroupWithOne.mk ⋯ SubNegMonoid.zsmul ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ULift.addCommGroupWithOne = let __src := ULift.addGroupWithOne; let __src_1 := ULift.addCommGroup; AddCommGroupWithOne.mk ⋯ ⋯ ⋯ ⋯
Equations
- ULift.groupWithZero = Function.Injective.groupWithZero ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ULift.commGroupWithZero = Function.Injective.commGroupWithZero ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ULift.addLeftCancelSemigroup = Function.Injective.addLeftCancelSemigroup ⇑Equiv.ulift ⋯ ⋯
theorem
ULift.addLeftCancelSemigroup.proof_2
{α : Type u_2}
[AddLeftCancelSemigroup α]
:
∀ (x x_1 : ULift.{u_1, u_2} α), Equiv.ulift (x + x_1) = Equiv.ulift (x + x_1)
Equations
- ULift.leftCancelSemigroup = Function.Injective.leftCancelSemigroup ⇑Equiv.ulift ⋯ ⋯
theorem
ULift.addRightCancelSemigroup.proof_2
{α : Type u_2}
[AddRightCancelSemigroup α]
:
∀ (x x_1 : ULift.{u_1, u_2} α), Equiv.ulift (x + x_1) = Equiv.ulift (x + x_1)
Equations
- ULift.addRightCancelSemigroup = Function.Injective.addRightCancelSemigroup ⇑Equiv.ulift ⋯ ⋯
Equations
- ULift.rightCancelSemigroup = Function.Injective.rightCancelSemigroup ⇑Equiv.ulift ⋯ ⋯
theorem
ULift.addLeftCancelMonoid.proof_2
{α : Type u_1}
[AddLeftCancelMonoid α]
:
Equiv.ulift 0 = Equiv.ulift 0
theorem
ULift.addLeftCancelMonoid.proof_4
{α : Type u_2}
[AddLeftCancelMonoid α]
:
∀ (x : ULift.{u_1, u_2} α) (x_1 : ℕ), Equiv.ulift (x_1 • x) = Equiv.ulift (x_1 • x)
theorem
ULift.addLeftCancelMonoid.proof_3
{α : Type u_2}
[AddLeftCancelMonoid α]
:
∀ (x x_1 : ULift.{u_1, u_2} α), Equiv.ulift (x + x_1) = Equiv.ulift (x + x_1)
Equations
- ULift.addLeftCancelMonoid = Function.Injective.addLeftCancelMonoid ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯
Equations
- ULift.leftCancelMonoid = Function.Injective.leftCancelMonoid ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯
theorem
ULift.addRightCancelMonoid.proof_4
{α : Type u_2}
[AddRightCancelMonoid α]
:
∀ (x : ULift.{u_1, u_2} α) (x_1 : ℕ), Equiv.ulift (x_1 • x) = Equiv.ulift (x_1 • x)
Equations
- ULift.addRightCancelMonoid = Function.Injective.addRightCancelMonoid ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯
theorem
ULift.addRightCancelMonoid.proof_3
{α : Type u_2}
[AddRightCancelMonoid α]
:
∀ (x x_1 : ULift.{u_1, u_2} α), Equiv.ulift (x + x_1) = Equiv.ulift (x + x_1)
theorem
ULift.addRightCancelMonoid.proof_2
{α : Type u_1}
[AddRightCancelMonoid α]
:
Equiv.ulift 0 = Equiv.ulift 0
Equations
- ULift.rightCancelMonoid = Function.Injective.rightCancelMonoid ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯
theorem
ULift.addCancelMonoid.proof_3
{α : Type u_2}
[AddCancelMonoid α]
:
∀ (x x_1 : ULift.{u_1, u_2} α), Equiv.ulift (x + x_1) = Equiv.ulift (x + x_1)
Equations
- ULift.addCancelMonoid = Function.Injective.addCancelMonoid ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯
theorem
ULift.addCancelMonoid.proof_2
{α : Type u_1}
[AddCancelMonoid α]
:
Equiv.ulift 0 = Equiv.ulift 0
theorem
ULift.addCancelMonoid.proof_4
{α : Type u_2}
[AddCancelMonoid α]
:
∀ (x : ULift.{u_1, u_2} α) (x_1 : ℕ), Equiv.ulift (x_1 • x) = Equiv.ulift (x_1 • x)
Equations
- ULift.cancelMonoid = Function.Injective.cancelMonoid ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯
theorem
ULift.addCancelCommMonoid.proof_2
{α : Type u_1}
[AddCancelCommMonoid α]
:
Equiv.ulift 0 = Equiv.ulift 0
Equations
- ULift.addCancelCommMonoid = Function.Injective.addCancelCommMonoid ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯
theorem
ULift.addCancelCommMonoid.proof_4
{α : Type u_2}
[AddCancelCommMonoid α]
:
∀ (x : ULift.{u_1, u_2} α) (x_1 : ℕ), Equiv.ulift (x_1 • x) = Equiv.ulift (x_1 • x)
theorem
ULift.addCancelCommMonoid.proof_3
{α : Type u_2}
[AddCancelCommMonoid α]
:
∀ (x x_1 : ULift.{u_1, u_2} α), Equiv.ulift (x + x_1) = Equiv.ulift (x + x_1)
Equations
- ULift.cancelCommMonoid = Function.Injective.cancelCommMonoid ⇑Equiv.ulift ⋯ ⋯ ⋯ ⋯
Equations
- ⋯ = ⋯