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 (S (max - S 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 + 1))%Z /\
       z1 = (Z.of_nat max - (Z.of_nat n + 1))%Z \/
       (Z.of_nat max - (Z.of_nat n + 1) <= 0)%Z /\ z1 = 0%Z
  ============================
   (z1 < Z.of_nat max)%Z


DEBUG:Going to execute:
constr:(false)