Skip to content

Commit a69a10f

Browse files
committed
ofDigits_ofDigitsBE_rec
1 parent 6b9cdca commit a69a10f

1 file changed

Lines changed: 21 additions & 3 deletions

File tree

QCLib/Data/Fin/Digits.lean

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,12 @@ theorem ofDigitsBE_rev_eq_ofDigits (f : Fin n → Fin d) :
7070
simp [val_ofDigitsBE_apply, Function.ofDigits_apply]
7171

7272
lemma val_ofDigits_rec (g : Fin (n + 1) → Fin d) :
73-
(g.ofDigits : ℕ) = (g 0 : ℕ) + (Fin.tail g).ofDigits * d := by
74-
simp [Function.ofDigits_apply, Fin.sum_univ_succ, Fin.tail, Finset.sum_mul]
73+
(g.ofDigits : ℕ) = (g 0 : ℕ) + (tail g).ofDigits * d := by
74+
simp [Function.ofDigits_apply, Fin.sum_univ_succ, tail, Finset.sum_mul]
7575
grind
7676

7777
lemma val_ofDigitsBE_rec (f : Fin (n + 1) → Fin d) :
78-
f.ofDigitsBE = (f 0 : ℕ) * d ^ n + (Fin.tail f).ofDigitsBE := by
78+
f.ofDigitsBE = (f 0 : ℕ) * d ^ n + (tail f).ofDigitsBE := by
7979
simp [val_ofDigitsBE_apply, Fin.sum_univ_castSucc, add_comm, rev_castSucc, Fin.tail]
8080

8181
theorem ofDigitsBE_ofDigits_rec (f g : Fin (n + 1) → Fin d) :
@@ -87,4 +87,22 @@ theorem ofDigitsBE_ofDigits_rec (f g : Fin (n + 1) → Fin d) :
8787
simp [val_ofDigits_rec, val_ofDigitsBE_rec]
8888
ring
8989

90+
lemma val_ofDigits_rec' (g : Fin (n + 1) → Fin d) :
91+
(g.ofDigits : ℕ) = (init g).ofDigits + g (last n) * d ^ n := by
92+
simp [Function.ofDigits_apply, Fin.sum_univ_castSucc, Fin.init]
93+
94+
lemma val_ofDigitsBE_rec' (f : Fin (n + 1) → Fin d) :
95+
(f.ofDigitsBE : ℕ) = d * (init f).ofDigitsBE + f (last n) := by
96+
simp [val_ofDigitsBE_apply, Fin.sum_univ_succ, add_comm,
97+
Finset.mul_sum, Fin.init, rev_succ]
98+
grind
99+
100+
theorem ofDigits_ofDigitsBE_rec (f g : Fin (n + 1) → Fin d) :
101+
(g.ofDigits : ℕ) * f.ofDigitsBE =
102+
d * (init g).ofDigits* (init f).ofDigitsBE
103+
+ f (last n) * g.ofDigits
104+
+ g (last n) * (init f).ofDigitsBE * d ^ (n + 1) := by
105+
rw [val_ofDigits_rec' g, val_ofDigitsBE_rec' f]
106+
ring
107+
90108
end Fin

0 commit comments

Comments
 (0)