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