@@ -20,67 +20,3 @@ lemma mpow_zero (m : M) [Monoid M] : m ^ 0 = 1 := rfl
2020/-- m ^ (n + 1) = m ^ n * m -/
2121@[simp]
2222lemma mpow_succ_right (m : M) [Monoid M] : m ^ (n+1 ) = (m ^ n) * m := rfl
23-
24-
25- -- Start of Monoid Order Levels
26- /-- m¹ = m -/
27- @[simp]
28- lemma mpow_one (m : M) [Monoid M] : m ^ 1 = m := by
29- rw [mpow_succ_right, mpow_zero, one_mul]
30-
31- /-- m ^ (n + 1) = m * m ^ n-/
32- lemma mpow_succ_left (m : M) [Monoid M] : m ^ (n + 1 ) = m * (m ^ n) := by
33- induction n with
34- | zero =>
35- rw [mpow_zero, mpow_one]
36- rw [mul_one]
37- | succ n ih =>
38- rw [mpow_succ_right]
39- nth_rw 2 [mpow_succ_right]
40- rw [ih, mul_assoc]
41-
42- /-- m ^ (x + y) = m ^ x * m ^ y -/
43- lemma mpow_add (m : M) (x y : ℕ) [Monoid M]: m ^ (x + y) = (m ^ x) * (m ^ y) := by
44- induction y with
45- | zero => rw [mpow_zero, mul_one, Nat.add_zero]
46- | succ y ih =>
47- rw [Nat.add_succ, mpow_succ_right, ih]
48- rw [mpow_succ_right]
49- rw [mul_assoc]
50-
51- /-- m ^ (x * y) = (m ^ x) ^ y-/
52- lemma mpow_mul (m : M) (x y : ℕ) [Monoid M] : m ^ (x * y) = (m ^ x) ^ y := by
53- induction y with
54- | zero =>
55- rw [Nat.mul_zero, mpow_zero, mpow_zero]
56- | succ y ih =>
57- simp only [mpow_succ_right]
58- rw [Nat.mul_succ, mpow_add, ih]
59-
60- /-- 1 ^ x = 1 -/
61- @[simp]
62- lemma mpow_id (x : ℕ) [Monoid M] : 1 ^ x = (1 : M) := by
63- induction x with
64- | zero => rfl
65- | succ x ih => rw [mpow_succ_right, ih, mul_one]
66-
67- /-- m ^ x * m = m * m ^ x -/
68- lemma mpow_comm_mul (m: M) (x : ℕ) [Monoid M] : (m ^ x) * m = m * (m ^ x) := by
69- induction x with
70- | zero => rw [mpow_zero, mul_one, one_mul]
71- | succ x ih =>
72- nth_rw 1 [mpow_succ_left, mpow_succ_right]
73- rw [mul_assoc, ih]
74- done
75-
76- /-- m ^ x * m ^ y = m ^ y * m ^ x -/
77- lemma mpow_comm_mpow (m : M) (x y : ℕ) [Monoid M] : (m ^ x) * (m ^ y) = (m ^ y) * (m ^ x) := by
78- induction y with
79- | zero => rw [mpow_zero, mul_one, one_mul]
80- | succ y ih =>
81- rw [mpow_succ_left]
82- rw [mul_assoc]
83- rw [← ih]
84- rw [← mul_assoc m _ _]
85- rw [← mul_assoc _ m _]
86- rw [mpow_comm_mul]
0 commit comments