Leaning into the Coding Interview 3: completing our spec with tacticals and metaprogramming

Welcome back! Last time, we got our dependently-typed fizzbuzz implementation to a point where we felt ready to prove our problem specifications: import Mathlib . Data . Nat . Basic -- implementation inductive FB : Type where | Fizz | Buzz | FizzBuzz | Num ( i : Nat ) instance : ToString FB where toString fb := match fb with | . Fizz => "Fizz" | . Buzz => "Buzz" | . FizzBuzz => "Fizzbuzz" | . Num…