(* *)
(**************************************************************************)
-include "ground_2/lib/streams.ma".
+include "ground_2/notation/functions/drop_1.ma".
+include "ground_2/lib/streams_eq.ma".
include "ground_2/lib/arith.ma".
(* STREAMS ******************************************************************)
definition tl (A:Type[0]): stream A → stream A ≝
λt. match t with [ seq _ t ⇒ t ].
-let rec tln (A:Type[0]) (i:nat) on i: stream A → stream A ≝ ?.
-cases i -i [ #t @t | #i * #_ #t @(tln … i t) ]
-qed.
+interpretation "tail (streams)" 'Drop t = (tl ? t).
(* basic properties *********************************************************)
-lemma eq_stream_split (A) (t): (hd … t) @ (tl … t) ≐⦋A⦌ t.
+lemma hd_rew (A) (a) (t): a = hd A (a@t).
+// qed.
+
+lemma tl_rew (A) (a) (t): t = tl A (a@t).
+// qed.
+
+lemma eq_stream_split (A) (t): (hd … t) @ ↓t ≐⦋A⦌ t.
#A * //
qed.