coinduction Equiv2.
- apply (H 0).
- intros n; apply (H (S n)).
Qed.
Section Stream_Properties.
Variable P : Stream -> Prop.
(*i Inductive Exists : Stream -> Prop := | Here    : forall x:Stream, P x -> Exists x | Further : forall x:Stream, ~ P x -> Exists (tl x) -> Exists x. i*)
Inductive Exists ( x: Stream ) : Prop :=
| Here : P x -> Exists x
| Further : Exists (tl x) -> Exists x.
CoInductive ForAll (x: Stream) : Prop :=
HereAndFurther : P x -> ForAll (tl x) -> ForAll x.

(* Specifications: *)
Lemma ForAll_Str_nth_tl : forall m x, ForAll x -> ForAll (Str_nth_tl m x).
Section Co_Induction_ForAll.