Section Parks_Principle.
Variable A : Set.
Variable    R      : Stream A -> Stream A -> Prop.
Hypothesis  bisim1 : forall s1 s2:Stream A, R s1 s2 ->
head s1 = head s2.
Hypothesis  bisim2 : forall s1 s2:Stream A, R s1 s2 ->
R (tail s1) (tail s2).
CoFixpoint park_ppl     : forall s1 s2:Stream A, R s1 s2 ->
EqSt s1 s2 :=
fun s1 s2 (p : R s1 s2) =>
eqst s1 s2 (bisim1  p)
(park_ppl  (bisim2  p)).
End Parks_Principle.
Ltac infiniteproof f :=
cofix f; constructor; [clear f| simpl; try (apply f; clear f)].
infiniteproof map_iterate'.
reflexivity.
Qed.
Arguments LNil [A].

Lemma Lnil_not_Lcons : forall (A:Set)(a:A)(l:LList A),
LNil <> (LCons a l).