Goal:
    A : Type  B : Type  f : ∀ x : A, In x [] → B  f0 : A → B  l : list A
  ============================
   (∀ g : ∀ x : A, In x l → B,
      g = (λ (x : A) (_ : In x l), f0 x)
      → {| pr1 := []; pr2 := f |} = {| pr1 := l; pr2 := g |}
        → [] = map_InP l g
          → let H := CoreTactics.block in map_InP l g = map f0 l)


DEBUG:Going to execute:
simplify * || simplify ?; cbv beta