Goal:
  
  max : nat
  P : nat -> Prop
  hmax : forall n : nat, n >= max -> P n
  hS : forall n : nat, n < max -> P (S n) -> P n
  n : nat
  IHn : P (max - n)
  n0 : ~ (Z.of_nat max <= Z.of_nat n)%Z
  cstr : (0 <= Z.of_nat n)%Z
  cstr0 : (0 <= Z.of_nat max)%Z
  z1 : Z
  H1 : (0 < Z.of_nat max - Z.of_nat n)%Z /\
       z1 = (Z.of_nat max - Z.of_nat n)%Z \/
       (Z.of_nat max - Z.of_nat n <= 0)%Z /\ z1 = 0%Z
  z2 : Z
  H2 : (0 < Z.of_nat max - (Z.of_nat n + 1))%Z /\
       z2 = (Z.of_nat max - (Z.of_nat n + 1))%Z \/
       (Z.of_nat max - (Z.of_nat n + 1) <= 0)%Z /\ z2 = 0%Z
  ============================
   ((z2 + 1)%Z = z1)


DEBUG:Going to execute:
constr:(false)