proposition: Lemma s2Le: (s + s <= t + 1)%Z.
proof: Proof. unfold s. rewrite inj_minus1; auto with zarith. 2: generalize (Nat.lt_div2 t); auto with zarith. assert (t<= 2*(Nat.div2 t)+1)%Z; auto with zarith. case (Nat.Even_or_Odd t); intros I. apply Z.le_trans with ((Nat.double (Nat.div2 t)+1))%Z. 2:unfold Nat.double; rewrite inj_plus; auto with zarith. rewrite <- Even_double; auto with zarith. apply Z.le_trans with ((S ( Nat.double (Nat.div2 t))))%Z; auto with zarith. 2: rewrite inj_S; unfold Z.succ; auto with zarith. 2: unfold Nat.double; rewrite inj_plus; auto with zarith. rewrite <- Odd_double; auto with zarith. Qed.
imports: Reals ZArith List PeanoNat Psatz