1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 (* This file was automatically generated: do not edit *********************)
19 (*#***********************************************************************)
21 (* v * The Coq Proof Assistant / The Coq Development Team *)
23 (* <O___,, * CNRS-Ecole Polytechnique-INRIA Futurs-Universite Paris Sud *)
25 (* \VV/ **************************************************************)
27 (* // * This file is distributed under the terms of the *)
29 (* * GNU Lesser General Public License Version 2.1 *)
31 (*#***********************************************************************)
33 (*i $Id: Streams.v,v 1.15.2.1 2004/07/16 19:31:05 herbelin Exp $ i*)
36 Set Implicit Arguments.
46 cic:/Coq/Lists/Streams/Streams/A.var
49 inline procedural "cic:/Coq/Lists/Streams/Stream.ind".
51 inline procedural "cic:/Coq/Lists/Streams/hd.con" as definition.
53 inline procedural "cic:/Coq/Lists/Streams/tl.con" as definition.
55 inline procedural "cic:/Coq/Lists/Streams/Str_nth_tl.con" as definition.
57 inline procedural "cic:/Coq/Lists/Streams/Str_nth.con" as definition.
59 inline procedural "cic:/Coq/Lists/Streams/unfold_Stream.con" as lemma.
61 inline procedural "cic:/Coq/Lists/Streams/tl_nth_tl.con" as lemma.
64 Hint Resolve tl_nth_tl: datatypes v62.
67 inline procedural "cic:/Coq/Lists/Streams/Str_nth_tl_plus.con" as lemma.
69 inline procedural "cic:/Coq/Lists/Streams/Str_nth_plus.con" as lemma.
71 (*#* Extensional Equality between two streams *)
73 inline procedural "cic:/Coq/Lists/Streams/EqSt.ind".
75 (*#* A coinduction principle *)
78 Ltac coinduction proof :=
79 cofix proof; intros; constructor;
80 [ clear proof | try (apply proof; clear proof) ].
83 (*#* Extensional equality is an equivalence relation *)
85 inline procedural "cic:/Coq/Lists/Streams/EqSt_reflex.con" as theorem.
87 inline procedural "cic:/Coq/Lists/Streams/sym_EqSt.con" as theorem.
89 inline procedural "cic:/Coq/Lists/Streams/trans_EqSt.con" as theorem.
91 (*#* The definition given is equivalent to require the elements at each
92 position to be equal *)
94 inline procedural "cic:/Coq/Lists/Streams/eqst_ntheq.con" as theorem.
96 inline procedural "cic:/Coq/Lists/Streams/ntheq_eqst.con" as theorem.
99 Section Stream_Properties
103 cic:/Coq/Lists/Streams/Streams/Stream_Properties/P.var
107 Inductive Exists : Stream -> Prop :=
108 | Here : forall x:Stream, P x -> Exists x
109 | Further : forall x:Stream, ~ P x -> Exists (tl x) -> Exists x.
112 inline procedural "cic:/Coq/Lists/Streams/Exists.ind".
114 inline procedural "cic:/Coq/Lists/Streams/ForAll.ind".
117 Section Co_Induction_ForAll
121 cic:/Coq/Lists/Streams/Streams/Stream_Properties/Co_Induction_ForAll/Inv.var
125 cic:/Coq/Lists/Streams/Streams/Stream_Properties/Co_Induction_ForAll/InvThenP.var
129 cic:/Coq/Lists/Streams/Streams/Stream_Properties/Co_Induction_ForAll/InvIsStable.var
132 inline procedural "cic:/Coq/Lists/Streams/ForAll_coind.con" as theorem.
135 End Co_Induction_ForAll
139 End Stream_Properties
151 cic:/Coq/Lists/Streams/Map/A.var
155 cic:/Coq/Lists/Streams/Map/B.var
159 cic:/Coq/Lists/Streams/Map/f.var
162 inline procedural "cic:/Coq/Lists/Streams/map.con" as definition.
169 Section Constant_Stream
173 cic:/Coq/Lists/Streams/Constant_Stream/A.var
177 cic:/Coq/Lists/Streams/Constant_Stream/a.var
180 inline procedural "cic:/Coq/Lists/Streams/const.con" as definition.
187 Unset Implicit Arguments.