Goal:
    A : Type  H : ReflectEq A  l1 : list A  l2 : list A  l : list A
  ============================
   (is_prefix l l1
    → is_prefix l l2 → is_prefix l (fst (fst (split_prefix l1 l2))))


DEBUG:Going to execute:
let call := fresh "call" in
           set (call := p);
            lazymatch goal with
            | call:=?fp:_ |- _ => subst call; Init.funelim_constr fp
            end