theorem Lean.Grind.IntModule.OfNatModule.instAssociativeHAdd (α : Type u) [NatModule α] :
Std.Associative fun (x1 x2 : α) => x1 + x2
theorem Lean.Grind.IntModule.OfNatModule.instCommutativeHAdd (α : Type u) [NatModule α] :
Std.Commutative fun (x1 x2 : α) => x1 + x2
@[implicit_reducible]
Instances For
Equations
Instances For
Equations
- Lean.Grind.IntModule.OfNatModule.nsmul n q = Quot.liftOn q (fun (x : α × α) => match x with | (a, b) => Lean.Grind.IntModule.OfNatModule.Q.mk (n • a, n • b)) ⋯
Instances For
Equations
- Lean.Grind.IntModule.OfNatModule.neg q = Quot.liftOn q (fun (x : α × α) => match x with | (a, b) => Lean.Grind.IntModule.OfNatModule.Q.mk (b, a)) ⋯
Instances For
Instances For
Instances For
Embedding theorems
Helper definitions and theorems for proving toQ is injective when
CommSemiring has the right_cancel property
theorem Lean.Grind.IntModule.OfNatModule.toQ_inj {α : Type u} [NatModule α] [AddRightCancel α] {a b : α} :
instance Lean.Grind.IntModule.OfNatModule.instNoNatZeroDivisorsQOfAddRightCancel {α : Type u} [NatModule α] [AddRightCancel α] [NoNatZeroDivisors α] :
NoNatZeroDivisors (Q α)
@[instance_reducible]
instance Lean.Grind.IntModule.OfNatModule.instLEQOfOrderedAdd {α : Type u} [NatModule α] [LE α] [Std.IsPreorder α] [OrderedAdd α] :
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance Lean.Grind.IntModule.OfNatModule.instLTQOfOrderedAdd {α : Type u} [NatModule α] [LE α] [Std.IsPreorder α] [OrderedAdd α] :
Equations
- Lean.Grind.IntModule.OfNatModule.instLTQOfOrderedAdd = { lt := fun (a b : Lean.Grind.IntModule.OfNatModule.Q α) => a ≤ b ∧ ¬b ≤ a }
instance Lean.Grind.IntModule.OfNatModule.instIsPreorderQ {α : Type u} [NatModule α] [LE α] [Std.IsPreorder α] [OrderedAdd α] :
Std.IsPreorder (Q α)
instance Lean.Grind.IntModule.OfNatModule.instIsPartialOrderQ {α : Type u} [NatModule α] [LE α] [Std.IsPartialOrder α] [OrderedAdd α] :
Std.IsPartialOrder (Q α)
instance Lean.Grind.IntModule.OfNatModule.instIsLinearPreorderQ {α : Type u} [NatModule α] [LE α] [Std.IsLinearPreorder α] [OrderedAdd α] :
instance Lean.Grind.IntModule.OfNatModule.instIsLinearOrderQ {α : Type u} [NatModule α] [LE α] [Std.IsLinearOrder α] [OrderedAdd α] :
Std.IsLinearOrder (Q α)
theorem Lean.Grind.IntModule.OfNatModule.toQ_le {α : Type u} [NatModule α] [LE α] [Std.IsPreorder α] [OrderedAdd α] {a b : α} :
theorem Lean.Grind.IntModule.OfNatModule.toQ_lt {α : Type u} [NatModule α] [LE α] [LT α] [Std.LawfulOrderLT α] [Std.IsPreorder α] [OrderedAdd α] {a b : α} :
instance Lean.Grind.IntModule.OfNatModule.instOrderedAddQ {α : Type u} [NatModule α] [LE α] [Std.IsPreorder α] [OrderedAdd α] :
OrderedAdd (Q α)