Goal:
  
  A : Type
  B : Type
  C : Type
  f : A → B → C
  a : A
  l : list A
  b : B
  l' : list B
  IHl : ∀ l' : list B, #|map2 f l l'| = Init.Nat.min #|l| #|l'|
  cstr : BinInt.Z.le BinNums.Z0 (BinInt.Z.of_nat #|l'|)
  cstr0 : BinInt.Z.le BinNums.Z0 (BinInt.Z.of_nat #|l|)
  z1 : BinNums.Z
  H1 : BinInt.Z.lt (BinInt.Z.of_nat #|l|) (BinInt.Z.of_nat #|l'|)
       ∧ z1 = BinInt.Z.of_nat #|l|
       ∨ BinInt.Z.le (BinInt.Z.of_nat #|l'|) (BinInt.Z.of_nat #|l|)
         ∧ z1 = BinInt.Z.of_nat #|l'|
  ============================
   (BinInt.Z.add z1 (BinNums.Zpos BinNums.xH) =
    BinInt.Z.add z1 (BinNums.Zpos BinNums.xH))


DEBUG:Going to execute:
constr:(false)