Built with doc-gen4, running Lean4. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑Ctrl+↓to navigate, Ctrl+🖱️to focus. On Mac, use Cmdinstead of Ctrl.
import Mathlib.Data.Nat.Basic
import Mathlib.Data.Fin.Basic
import Mathlib.Algebra.Group.Defs
import Mathlib.Algebra.GroupWithZero.Defs
import Mathlib.Algebra.Ring.Basic
import Mathlib.Data.ZMod.Defs

lemma 
UInt8.val_eq_of_lt: ∀ {a : }, a < size(ofNat a).val = a
UInt8.val_eq_of_lt
{
a:
a
:
Nat: Type
Nat
} :
a:
a
<
UInt8.size:
UInt8.size
-> (
ofNat: UInt8
ofNat
a:
a
).
val: UInt8Fin size
val
=
a:
a
:=
Nat.mod_eq_of_lt: ∀ {a b : }, a < ba % b = a
Nat.mod_eq_of_lt
lemma
UInt16.val_eq_of_lt: ∀ {a : }, a < size(ofNat a).val = a
UInt16.val_eq_of_lt
{
a:
a
:
Nat: Type
Nat
} :
a:
a
<
UInt16.size:
UInt16.size
-> (
ofNat: UInt16
ofNat
a:
a
).
val: UInt16Fin size
val
=
a:
a
:=
Nat.mod_eq_of_lt: ∀ {a b : }, a < ba % b = a
Nat.mod_eq_of_lt
lemma
UInt32.val_eq_of_lt: ∀ {a : }, a < size(ofNat a).val = a
UInt32.val_eq_of_lt
{
a:
a
:
Nat: Type
Nat
} :
a:
a
<
UInt32.size:
UInt32.size
-> (
ofNat: UInt32
ofNat
a:
a
).
val: UInt32Fin size
val
=
a:
a
:=
Nat.mod_eq_of_lt: ∀ {a b : }, a < ba % b = a
Nat.mod_eq_of_lt
lemma
UInt64.val_eq_of_lt: ∀ {a : }, a < size(ofNat a).val = a
UInt64.val_eq_of_lt
{
a:
a
:
Nat: Type
Nat
} :
a:
a
<
UInt64.size:
UInt64.size
-> (
ofNat: UInt64
ofNat
a:
a
).
val: UInt64Fin size
val
=
a:
a
:=
Nat.mod_eq_of_lt: ∀ {a b : }, a < ba % b = a
Nat.mod_eq_of_lt
lemma
USize.val_eq_of_lt: ∀ {a : }, a < size(ofNat a).val = a
USize.val_eq_of_lt
{
a:
a
:
Nat: Type
Nat
} :
a:
a
<
USize.size:
USize.size
-> (
ofNat: USize
ofNat
a:
a
).
val: USizeFin size
val
=
a:
a
:=
Nat.mod_eq_of_lt: ∀ {a b : }, a < ba % b = a
Nat.mod_eq_of_lt
instance
UInt8.neZero: NeZero size
UInt8.neZero
:
NeZero: {R : Type ?u.44530} → [inst : Zero R] → RProp
NeZero
UInt8.size:
UInt8.size
:=
: NeZero ?m.44596

Goals accomplished! 🐙

Goals accomplished! 🐙
: NeZero ?m.44596
instance
UInt16.neZero: NeZero size
UInt16.neZero
:
NeZero: {R : Type ?u.44671} → [inst : Zero R] → RProp
NeZero
UInt16.size:
UInt16.size
:=
: NeZero ?m.44737

Goals accomplished! 🐙

Goals accomplished! 🐙
: NeZero ?m.44737
instance
UInt32.neZero: NeZero size
UInt32.neZero
:
NeZero: {R : Type ?u.44812} → [inst : Zero R] → RProp
NeZero
UInt32.size:
UInt32.size
:=
: NeZero ?m.44878

Goals accomplished! 🐙

Goals accomplished! 🐙
: NeZero ?m.44878
instance
UInt64.neZero: NeZero size
UInt64.neZero
:
NeZero: {R : Type ?u.44953} → [inst : Zero R] → RProp
NeZero
UInt64.size:
UInt64.size
:=
: NeZero ?m.45019

Goals accomplished! 🐙

Goals accomplished! 🐙
: NeZero ?m.45019
instance
USize.neZero: NeZero size
USize.neZero
:
NeZero: {R : Type ?u.45094} → [inst : Zero R] → RProp
NeZero
USize.size:
USize.size
:=
NeZero.of_pos: ∀ {M : Type ?u.45153} {x : M} [inst : Preorder M] [inst_1 : Zero M], 0 < xNeZero x
NeZero.of_pos
usize_size_gt_zero: size > 0
usize_size_gt_zero
example: 0 = { val := 0 }
example
: (
0: ?m.45330
0
:
UInt8: Type
UInt8
) = ⟨
0: ?m.45346
0
⟩ :=
rfl: ∀ {α : Sort ?u.45364} {a : α}, a = a
rfl
set_option hygiene false in run_cmd for
typeName: ?m.45541
typeName
in [
`UInt8: Lean.Name
`UInt8
,
`UInt16: Lean.Name
`UInt16
,
`UInt32: Lean.Name
`UInt32
,
`UInt64: Lean.Name
`UInt64
,
`USize: Lean.Name
`USize
].
map: {α : Type ?u.45475} → {β : Type ?u.45474} → (αβ) → List αList β
map
Lean.mkIdent: Lean.NameLean.Ident
Lean.mkIdent
do
Lean.Elab.Command.elabCommand: Lean.SyntaxLean.Elab.Command.CommandElabM Unit
Lean.Elab.Command.elabCommand
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
(← `(
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
namespace
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
$
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
instance
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
: Inhabited $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
where
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
default := 0
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
instance
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
: Neg $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
where
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
neg a := mk (-a.val)
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
instance
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
: Pow $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
where
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
pow a n := mk (a.val ^ n)
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
instance
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
: SMul ℕ $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
where
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
smul n a := mk (n • a.val)
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
instance
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
: SMul ℤ $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
where
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
smul z a := mk (z • a.val)
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
instance
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
: NatCast $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
where
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
natCast n := mk n
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
instance
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
: IntCast $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
where
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
intCast z := mk z
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
lemma
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
zero_def : (0 : $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
) = ⟨0⟩ := rfl
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
lemma
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
one_def : (1 : $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
) = ⟨1⟩ := rfl
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
lemma
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
neg_def (a : $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
) : -a = ⟨-a.val⟩ := rfl
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
lemma
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
sub_def (a b : $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
) : a - b = ⟨a.val - b.val⟩ := rfl
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
lemma
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
mul_def (a b : $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
) : a * b = ⟨a.val * b.val⟩ := rfl
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
lemma
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
mod_def (a b : $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
) : a % b = ⟨a.val % b.val⟩ := rfl
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
lemma
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
add_def (a b : $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
) : a + b = ⟨a.val + b.val⟩ := rfl
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
lemma
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
pow_def (a : $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
lemma
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
nsmul_def (n : ℕ) (a : $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
) : n • a = ⟨n • a.val⟩ := rfl
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
lemma
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
zsmul_def (z : ℤ) (a : $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
) : z • a = ⟨z • a.val⟩ := rfl
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
lemma
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
natCast_def (n : ℕ) : (n : $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
) = ⟨n⟩ := rfl
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
lemma
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
intCast_def (z : ℤ) : (z : $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
) = ⟨z⟩ := rfl
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
lemma
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
eq_of_val_eq : ∀ {a b : $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
lemma
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
val_injective : Function.Injective val := @eq_of_val_eq
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
lemma
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
val_eq_of_eq : ∀ {a b : $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
simp
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
]
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
lemma
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
mk_val_eq : ∀ (a : $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
), mk a.val = a | ⟨_, _⟩ => rfl
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
instance
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
: CommRing $
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
:= Function.Injective.commRing val val_injective rfl rfl (
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
fun
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
_ _ => rfl) (
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
fun
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
_ _ => rfl) (
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
fun
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
_ => rfl) (
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
fun
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
_ _ => rfl) (
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
fun
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
_ _ => rfl) (
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
fun
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
_ _ => rfl) (
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
fun
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
_ _ => rfl) (
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
fun
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
_ => rfl) (
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
fun
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
_ => rfl)
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
end
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
$
typeName: ?m.45541
typeName
(← `( namespace $typeName instance : Inhabited $typeName where default := 0 instance : Neg $typeName where neg a := mk (-a.val) instance : Pow $typeName ℕ where pow a n := mk (a.val ^ n) instance : SMul ℕ $typeName where smul n a := mk (n • a.val) instance : SMul ℤ $typeName where smul z a := mk (z • a.val) instance : NatCast $typeName where natCast n := mk n instance : IntCast $typeName where intCast z := mk z lemma zero_def : (0 : $typeName) = ⟨0⟩ := rfl lemma one_def : (1 : $typeName) = ⟨1⟩ := rfl lemma neg_def (a : $typeName) : -a = ⟨-a.val⟩ := rfl lemma sub_def (a b : $typeName) : a - b = ⟨a.val - b.val⟩ := rfl lemma mul_def (a b : $typeName) : a * b = ⟨a.val * b.val⟩ := rfl lemma mod_def (a b : $typeName) : a % b = ⟨a.val % b.val⟩ := rfl lemma add_def (a b : $typeName) : a + b = ⟨a.val + b.val⟩ := rfl lemma pow_def (a : $typeName) (n : ℕ) : a ^ n = ⟨a.val ^ n⟩ := rfl lemma nsmul_def (n : ℕ) (a : $typeName) : n • a = ⟨n • a.val⟩ := rfl lemma zsmul_def (z : ℤ) (a : $typeName) : z • a = ⟨z • a.val⟩ := rfl lemma natCast_def (n : ℕ) : (n : $typeName) = ⟨n⟩ := rfl lemma intCast_def (z : ℤ) : (z : $typeName) = ⟨z⟩ := rfl lemma eq_of_val_eq : ∀ {a b : $typeName}, a.val = b.val -> a = b | ⟨_⟩, ⟨_⟩, h => congrArg mk h lemma val_injective : Function.Injective val := @eq_of_val_eq lemma val_eq_of_eq : ∀ {a b : $typeName}, a = b -> a.val = b.val | ⟨_⟩, ⟨_⟩, h => congrArg val h @[simp] lemma mk_val_eq : ∀ (a : $typeName), mk a.val = a | ⟨_, _⟩ => rfl instance : CommRing $typeName := Function.Injective.commRing val val_injective rfl rfl (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ => rfl) (fun _ => rfl) end $typeName )): ?m.47217
))
namespace UInt8 /-- Is this an uppercase ASCII letter? -/ def
isUpper: UInt8Bool
isUpper
(c :
UInt8: Type
UInt8
) :
Bool: Type
Bool
:= c
65: ?m.86811
65
&& c
90: ?m.86872
90
/-- Is this a lowercase ASCII letter? -/ def
isLower: UInt8Bool
isLower
(c :
UInt8: Type
UInt8
) :
Bool: Type
Bool
:= c
97: ?m.86984
97
&& c
122: ?m.87045
122
/-- Is this an alphabetic ASCII character? -/ def
isAlpha: UInt8Bool
isAlpha
(c :
UInt8: Type
UInt8
) :
Bool: Type
Bool
:= c.
isUpper: UInt8Bool
isUpper
|| c.
isLower: UInt8Bool
isLower
/-- Is this an ASCII digit character? -/ def
isDigit: UInt8Bool
isDigit
(c :
UInt8: Type
UInt8
) :
Bool: Type
Bool
:= c
48: ?m.87208
48
&& c
57: ?m.87269
57
/-- Is this an alphanumeric ASCII character? -/ def
isAlphanum: UInt8Bool
isAlphanum
(c :
UInt8: Type
UInt8
) :
Bool: Type
Bool
:= c.
isAlpha: UInt8Bool
isAlpha
|| c.
isDigit: UInt8Bool
isDigit
theorem
toChar_aux: ∀ (n : ), n < sizeNat.isValidChar (UInt32.ofNat n).val
toChar_aux
(
n:
n
:
Nat: Type
Nat
) (
h: n < size
h
:
n:
n
<
size:
size
) :
Nat.isValidChar: Prop
Nat.isValidChar
(
UInt32.ofNat: UInt32
UInt32.ofNat
n:
n
).1 :=

Goals accomplished! 🐙

Goals accomplished! 🐙
n:

h: n < size


size < 55296

Goals accomplished! 🐙

Goals accomplished! 🐙

Goals accomplished! 🐙
/-- The numbers from 0 to 256 are all valid UTF-8 characters, so we can embed one in the other. -/ def
toChar: UInt8Char
toChar
(n :
UInt8: Type
UInt8
) :
Char: Type
Char
:= ⟨n.
toUInt32: UInt8UInt32
toUInt32
,
toChar_aux: ∀ (n : ), n < sizeNat.isValidChar (UInt32.ofNat n).val
toChar_aux
n.
1: UInt8Fin size
1
n.
1: UInt8Fin size
1
.
2: ∀ {n : } (self : Fin n), self < n
2
end UInt8