Goal:
  
  A : Type
  B : Type
  f : nat → A → bool
  g : nat → B → A
  a : B
  l : list B
  IHl : ∀ n : nat,
          alli f n (mapi_rec g l n) =
          alli (λ (i : nat) (x : B), f i (g i x)) n l
  n : nat
  ============================
   (f n (g n a) && alli (λ (i : nat) (x : B), f i (g i x)) (S n) l =
    f n (g n a) && alli (λ (i : nat) (x : B), f i (g i x)) (S n) l)


DEBUG:Going to execute:
solve [ do_atom | use_hyps; do_ccl ]