(* *)
(**************************************************************************)
-include "ground/notation/functions/downdashedarrow_2.ma".
+include "ground/notation/functions/downharpoonleft_2.ma".
+include "ground/notation/functions/downharpoonright_2.ma".
include "ground/lib/stream.ma".
(* HEAD AND TAIL FOR STREAMS ************************************************)
#A * #a #_ @a
defined.
+interpretation
+ "head (streams)"
+ 'DownHarpoonLeft A t = (stream_hd A t).
+
definition stream_tl (A:Type[0]): stream A → stream A.
#A * #_ #t @t
defined.
interpretation
"tail (streams)"
- 'DownDashedArrow A t = (stream_tl A t).
+ 'DownHarpoonRight A t = (stream_tl A t).
(* Basic constructions ******************************************************)
lemma stream_hd_cons (A) (a) (t):
- a = stream_hd A (a⨮t).
+ a = ⇃{A}(a⨮t).
// qed.
lemma stream_tl_cons (A) (a) (t):
- t = â\87£{A}(a⨮t).
+ t = â\87\82{A}(a⨮t).
// qed.
lemma stream_split_tl (A) (t):
- stream_hd A t ⨮ ⇣t = t.
+ ⇃{A}t ⨮ ⇂t = t.
#A * //
qed.
(* *)
(**************************************************************************)
-include "ground/notation/functions/downdashedarrowstar_3.ma".
+include "ground/notation/functions/downharpoonrightstar_3.ma".
include "ground/lib/stream_hdtl.ma".
include "ground/arith/nat_succ_iter.ma".
interpretation
"iterated tail (strams)"
- 'DownDashedArrowStar A n f = (stream_tls A n f).
+ 'DownHarpoonRightStar A n f = (stream_tls A n f).
(* Basic constructions ******************************************************)
lemma stream_tls_zero (A) (t):
- t = â\87£*{A}[𝟎]t.
+ t = â\87\82*{A}[𝟎]t.
// qed.
lemma stream_tls_tl (A) (n) (t):
- (â\87£â\87£*[n]t) = â\87£*{A}[n]â\87£t.
+ (â\87\82â\87\82*[n]t) = â\87\82*{A}[n]â\87\82t.
#A #n #t
@(niter_appl … (stream_tl …))
qed.
lemma stream_tls_succ (A) (n) (t):
- (â\87£â\87£*[n]t) = â\87£*{A}[↑n]t.
+ (â\87\82â\87\82*[n]t) = â\87\82*{A}[↑n]t.
#A #n #t
@(niter_succ … (stream_tl …))
qed.
lemma stream_tls_swap (A) (n) (t):
- (â\87£*[n]â\87£t) = â\87£*{A}[↑n]t.
+ (â\87\82*[n]â\87\82t) = â\87\82*{A}[↑n]t.
// qed.
(* Constructions with stream_eq *********************************************)
lemma stream_tls_eq_repl (A) (n):
- stream_eq_repl A (λt1,t2. â\87£*[n] t1 â\89\97 â\87£*[n] t2).
+ stream_eq_repl A (λt1,t2. â\87\82*[n] t1 â\89\97 â\87\82*[n] t2).
#A #n @(nat_ind_succ … n) -n //
#n #IH * #n1 #t1 * #n2 #t2 #H
elim (stream_eq_inv_cons_bi … H) /2 width=7 by/
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-(* GROUND NOTATION **********************************************************)
-
-notation < "hvbox( ⇣ term 75 a )"
- non associative with precedence 75
- for @{ 'DownDashedArrow $S $a }.
-
-notation > "hvbox( ⇣ term 75 a )"
- non associative with precedence 75
- for @{ 'DownDashedArrow ? $a }.
-
-notation > "hvbox( ⇣{ term 46 S } break term 75 a )"
- non associative with precedence 75
- for @{ 'DownDashedArrow $S $a }.
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-(* GROUND NOTATION **********************************************************)
-
-notation < "hvbox( ⇣*[ break term 46 n ] break term 75 a )"
- non associative with precedence 75
- for @{ 'DownDashedArrowStar $S $n $a }.
-
-notation > "hvbox( ⇣*[ break term 46 n ] break term 75 a )"
- non associative with precedence 75
- for @{ 'DownDashedArrowStar ? $n $a }.
-
-notation > "hvbox( ⇣*{ term 46 S }[ break term 46 n ] break term 75 a )"
- non associative with precedence 75
- for @{ 'DownDashedArrowStar $S $n $a }.
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+(* GROUND NOTATION **********************************************************)
+
+notation < "hvbox( ⇃ term 75 a )"
+ non associative with precedence 75
+ for @{ 'DownHarpoonLeft $S $a }.
+
+notation > "hvbox( ⇃ term 75 a )"
+ non associative with precedence 75
+ for @{ 'DownHarpoonLeft ? $a }.
+
+notation > "hvbox( ⇃{ term 46 S } break term 75 a )"
+ non associative with precedence 75
+ for @{ 'DownHarpoonLeft $S $a }.
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+(* GROUND NOTATION **********************************************************)
+
+notation < "hvbox( ⇂ term 75 a )"
+ non associative with precedence 75
+ for @{ 'DownHarpoonRight $S $a }.
+
+notation > "hvbox( ⇂ term 75 a )"
+ non associative with precedence 75
+ for @{ 'DownHarpoonRight ? $a }.
+
+notation > "hvbox( ⇂{ term 46 S } break term 75 a )"
+ non associative with precedence 75
+ for @{ 'DownHarpoonRight $S $a }.
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+(* GROUND NOTATION **********************************************************)
+
+notation < "hvbox( ⇂*[ break term 46 n ] break term 75 a )"
+ non associative with precedence 75
+ for @{ 'DownHarpoonRightStar $S $n $a }.
+
+notation > "hvbox( ⇂*[ break term 46 n ] break term 75 a )"
+ non associative with precedence 75
+ for @{ 'DownHarpoonRightStar ? $n $a }.
+
+notation > "hvbox( ⇂*{ term 46 S }[ break term 46 n ] break term 75 a )"
+ non associative with precedence 75
+ for @{ 'DownHarpoonRightStar $S $n $a }.
(* TAIL FOR GENERIC RELOCATION MAPS *****************************************)
(*** tl *)
-definition gr_tl (f): gr_map â\89\9d â\87£f.
+definition gr_tl (f): gr_map â\89\9d â\87\82f.
interpretation
"tail (generic relocation maps)"
(* ITERATED TAIL FOR GENERIC RELOCATION MAPS ********************************)
(*** tls *)
-definition gr_tls (n) (f:gr_map) â\89\9d â\87£*[n]f.
+definition gr_tls (n) (f:gr_map) â\89\9d â\87\82*[n]f.
interpretation
"iterated tail (generic relocation maps)"
class "yellow"
[ { "extensions to the library" * } {
[ { "streams" * } {
- [ "stream_tls ( â\87£*{?}[?]? )" "stream_tls_eq" * ]
- [ "stream_hdtl ( â\87£{?}? )" * ]
+ [ "stream_tls ( â\87\82*{?}[?]? )" "stream_tls_eq" * ]
+ [ "stream_hdtl ( â\87\83{?}? ) ( â\87\82{?}? )" * ]
[ "stream_eq ( ? ≗{?} ? )" "stream_eq_eq" * ]
[ "stream ( ? ⨮{?} ? )" * ]
}
["⇕"; "⇳"; "⬍"; "↕"; ];
["↔"; "⇔"; "⬄"; "⬌"; ] ;
["≤"; "≲"; "≼"; "≰"; "≴"; "⋠"; "⊆"; "⫃"; "⊑"; ] ;
- ["_"; "↓"; "↙"; "⇣"; "⎽"; "⎼"; "⎻"; "⎺"; ];
+ ["_"; "â\86\93"; "â\86\99"; "â\87£"; "â\87\83"; "â\87\82"; "â\8e½"; "â\8e¼"; "â\8e»"; "â\8eº"; ];
["<"; "≺"; "≮"; "⊀"; "〈"; "«"; "❬"; "❮"; "❰"; ] ;
["("; "❨"; "❪"; "❲"; "("; ];
[")"; "❩"; "❫"; "❳"; ")"; ];