@@ -70,12 +70,12 @@ theorem ofDigitsBE_rev_eq_ofDigits (f : Fin n → Fin d) :
7070 simp [val_ofDigitsBE_apply, Function.ofDigits_apply]
7171
7272lemma 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
7777lemma 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
8181theorem 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+
90108end Fin
0 commit comments