+++ /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 *)
-(* *)
-(**************************************************************************)
-
-include "ground_2/ynat/ynat_lt.ma".
-include "basic_2/grammar/lenv.ma".
-
-(* LENGTH OF A LOCAL ENVIRONMENT ********************************************)
-
-let rec length L ≝ match L with
-[ LAtom ⇒ 0
-| LPair L _ _ ⇒ ⫯(length L)
-].
-
-interpretation "length (local environment)" 'card L = (length L).
-
-(* Basic properties *********************************************************)
-
-lemma length_atom: |⋆| = 0.
-// qed.
-
-lemma length_pair: ∀I,L,V. |L.ⓑ{I}V| = ⫯|L|.
-// qed.
-
-lemma length_inj: ∀L. |L| < ∞.
-#L elim L -L /2 width=1 by ylt_succ_Y/
-qed.
-
-(* Basic inversion lemmas ***************************************************)
-
-lemma length_inv_zero_dx: ∀L. |L| = 0 → L = ⋆.
-* // #L #I #V >length_pair
-#H elim (ysucc_inv_O_dx … H)
-qed-.
-
-lemma length_inv_zero_sn: ∀L. yinj 0 = |L| → L = ⋆.
-/2 width=1 by length_inv_zero_dx/ qed-.
-
-lemma length_inv_pos_dx: ∀l,L. |L| = ⫯l →
- ∃∃I,K,V. |K| = l & L = K. ⓑ{I}V.
-#l * /3 width=5 by ysucc_inj, ex2_3_intro/
->length_atom #H elim (ysucc_inv_O_sn … H)
-qed-.
-
-lemma length_inv_pos_sn: ∀l,L. ⫯l = |L| →
- ∃∃I,K,V. l = |K| & L = K. ⓑ{I}V.
-#l #L #H lapply (sym_eq ??? H) -H
-#H elim (length_inv_pos_dx … H) -H /2 width=5 by ex2_3_intro/
-qed-.
#A1 #A2 #B1 #B2 #H destruct /2 width=1 by conj/
qed-.
-lemma discr_apair_xy_x: ∀A,B. ②B. A = B → ⊥.
+lemma discr_apair_xy_x: ∀A,B. ②B.A = B → ⊥.
#A #B elim B -B
[ #H destruct
| #Y #X #IHY #_ #H elim (destruct_apair_apair_aux … H) -H /2 width=1 by/ (**) (* destruct lemma needed *)
(* Basic properties *********************************************************)
(* Basic_1: was: flt_shift *)
-lemma rfw_shift: ∀a,I,K,V,T. ♯{K.ⓑ{I}V, T} < ♯{K, ⓑ{a,I}V.T}.
+lemma rfw_shift: ∀p,I,K,V,T. ♯{K.ⓑ{I}V, T} < ♯{K, ⓑ{p,I}V.T}.
normalize //
qed.
(* Basic properties *********************************************************)
(* Basic_1: was: flt_shift *)
-lemma fw_shift: ∀a,I,G,K,V,T. ♯{G, K.ⓑ{I}V, T} < ♯{G, K, ⓑ{a,I}V.T}.
+lemma fw_shift: ∀p,I,G,K,V,T. ♯{G, K.ⓑ{I}V, T} < ♯{G, K, ⓑ{p,I}V.T}.
normalize //
qed.
(* *)
(**************************************************************************)
-include "ground_2/lib/list.ma".
+include "ground_2/lib/list2.ma".
include "basic_2/notation/constructors/star_0.ma".
include "basic_2/notation/constructors/dxbind2_3.ma".
include "basic_2/notation/constructors/dxabbr_2.ma".
(* Basic inversion lemmas ***************************************************)
-fact destruct_sort_sort_aux: ∀k1,k2. Sort k1 = Sort k2 → k1 = k2.
-#k1 #k2 #H destruct //
+fact destruct_sort_sort_aux: ∀s1,s2. Sort s1 = Sort s2 → s1 = s2.
+#s1 #s2 #H destruct //
qed-.
(* Basic properties *********************************************************)
(* Basic_1: was: kind_dec *)
lemma eq_item2_dec: ∀I1,I2:item2. Decidable (I1 = I2).
-* [ #a1 ] #I1 * [1,3: #a2 ] #I2
+* [ #p1 ] #I1 * [1,3: #p2 ] #I2
[2,3: @or_intror #H destruct
-| elim (eq_bool_dec a1 a2) #Ha
+| elim (eq_bool_dec p1 p2) #Hp
[ elim (eq_bind2_dec I1 I2) /2 width=1 by or_introl/ #HI ]
@or_intror #H destruct /2 width=1 by/
| elim (eq_flat2_dec I1 I2) /2 width=1 by or_introl/ #HI
--- /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 *)
+(* *)
+(**************************************************************************)
+
+include "basic_2/grammar/lenv.ma".
+
+(* LENGTH OF A LOCAL ENVIRONMENT ********************************************)
+
+let rec length L ≝ match L with
+[ LAtom ⇒ 0
+| LPair L _ _ ⇒ ⫯(length L)
+].
+
+interpretation "length (local environment)" 'card L = (length L).
+
+(* Basic properties *********************************************************)
+
+lemma length_atom: |⋆| = 0.
+// qed.
+
+lemma length_pair: ∀I,L,V. |L.ⓑ{I}V| = ⫯|L|.
+// qed.
+
+(* Basic inversion lemmas ***************************************************)
+
+lemma length_inv_zero_dx: ∀L. |L| = 0 → L = ⋆.
+* // #L #I #V >length_pair
+#H destruct
+qed-.
+
+lemma length_inv_zero_sn: ∀L. 0 = |L| → L = ⋆.
+/2 width=1 by length_inv_zero_dx/ qed-.
+
+lemma length_inv_pos_dx: ∀n,L. |L| = ⫯n →
+ ∃∃I,K,V. |K| = n & L = K. ⓑ{I}V.
+#n * /3 width=5 by injective_S, ex2_3_intro/
+>length_atom #H destruct
+qed-.
+
+lemma length_inv_pos_sn: ∀n,L. ⫯n = |L| →
+ ∃∃I,K,V. n = |K| & L = K. ⓑ{I}V.
+#l #L #H lapply (sym_eq ??? H) -H
+#H elim (length_inv_pos_dx … H) -H /2 width=5 by ex2_3_intro/
+qed-.
+
+(* Basic_2A1: removed theorems 1: length_inj *)
'SnItem2 I T1 T2 = (TPair I T1 T2).
interpretation "term binding construction (binary)"
- 'SnBind2 a I T1 T2 = (TPair (Bind2 a I) T1 T2).
+ 'SnBind2 p I T1 T2 = (TPair (Bind2 p I) T1 T2).
interpretation "term positive binding construction (binary)"
'SnBind2Pos I T1 T2 = (TPair (Bind2 true I) T1 T2).
'SnFlat2 I T1 T2 = (TPair (Flat2 I) T1 T2).
interpretation "sort (term)"
- 'Star k = (TAtom (Sort k)).
+ 'Star s = (TAtom (Sort s)).
interpretation "local reference (term)"
'LRef i = (TAtom (LRef i)).
interpretation "global reference (term)"
- 'GRef p = (TAtom (GRef p)).
+ 'GRef l = (TAtom (GRef l)).
interpretation "abbreviation (term)"
- 'SnAbbr a T1 T2 = (TPair (Bind2 a Abbr) T1 T2).
+ 'SnAbbr p T1 T2 = (TPair (Bind2 p Abbr) T1 T2).
interpretation "positive abbreviation (term)"
'SnAbbrPos T1 T2 = (TPair (Bind2 true Abbr) T1 T2).
'SnAbbrNeg T1 T2 = (TPair (Bind2 false Abbr) T1 T2).
interpretation "abstraction (term)"
- 'SnAbst a T1 T2 = (TPair (Bind2 a Abst) T1 T2).
+ 'SnAbst p T1 T2 = (TPair (Bind2 p Abst) T1 T2).
interpretation "positive abstraction (term)"
'SnAbstPos T1 T2 = (TPair (Bind2 true Abst) T1 T2).
#I1 #I2 #T1 #T2 #V1 #V2 #H destruct /2 width=1 by and3_intro/
qed-.
-lemma discr_tpair_xy_x: ∀I,T,V. ②{I} V. T = V → ⊥.
+lemma discr_tpair_xy_x: ∀I,T,V. ②{I}V.T = V → ⊥.
#I #T #V elim V -V
[ #J #H destruct
| #J #W #U #IHW #_ #H elim (destruct_tpair_tpair_aux … H) -H /2 width=1 by/ (**) (* destruct lemma needed *)
qed-.
(* Basic_1: was: thead_x_y_y *)
-lemma discr_tpair_xy_y: ∀I,V,T. ②{I} V. T = T → ⊥.
+lemma discr_tpair_xy_y: ∀I,V,T. ②{I}V.T = T → ⊥.
#I #V #T elim T -T
[ #J #H destruct
| #J #W #U #_ #IHU #H elim (destruct_tpair_tpair_aux … H) -H /2 width=1 by/ (**) (* destruct lemma needed *)
qed-.
lemma eq_false_inv_tpair_sn: ∀I,V1,T1,V2,T2.
- (②{I} V1. T1 = ②{I} V2. T2 → ⊥) →
+ (②{I}V1.T1 = ②{I}V2.T2 → ⊥) →
(V1 = V2 → ⊥) ∨ (V1 = V2 ∧ (T1 = T2 → ⊥)).
#I #V1 #T1 #V2 #T2 #H
elim (eq_term_dec V1 V2) /3 width=1 by or_introl/ #HV12 destruct
qed-.
lemma eq_false_inv_tpair_dx: ∀I,V1,T1,V2,T2.
- (②{I} V1. T1 = ②{I} V2. T2 → ⊥) →
+ (②{I} V1. T1 = ②{I}V2.T2 → ⊥) →
(T1 = T2 → ⊥) ∨ (T1 = T2 ∧ (V1 = V2 → ⊥)).
#I #V1 #T1 #V2 #T2 #H
elim (eq_term_dec T1 T2) /3 width=1 by or_introl/ #HT12 destruct
(* Basic inversion lemmas ***************************************************)
-fact simple_inv_bind_aux: ∀T. 𝐒⦃T⦄ → ∀a,J,W,U. T = ⓑ{a,J} W. U → ⊥.
+fact simple_inv_bind_aux: ∀T. 𝐒⦃T⦄ → ∀p,J,W,U. T = ⓑ{p,J}W.U → ⊥.
#T * -T
-[ #I #a #J #W #U #H destruct
+[ #I #p #J #W #U #H destruct
| #I #V #T #a #J #W #U #H destruct
]
-qed.
+qed-.
-lemma simple_inv_bind: ∀a,I,V,T. 𝐒⦃ⓑ{a,I} V. T⦄ → ⊥.
+lemma simple_inv_bind: ∀p,I,V,T. 𝐒⦃ⓑ{p,I} V. T⦄ → ⊥.
/2 width=7 by simple_inv_bind_aux/ qed-.
lemma simple_inv_pair: ∀I,V,T. 𝐒⦃②{I}V.T⦄ → ∃J. I = Flat2 J.
-* /2 width=2 by ex_intro/ #a #I #V #T #H
-elim (simple_inv_bind … H)
+* /2 width=2 by ex_intro/
+#p #I #V #T #H elim (simple_inv_bind … H)
qed-.
(* Advanced inversion lemmas ************************************************)
(* Basic_1: was only: iso_flats_lref_bind_false iso_flats_flat_bind_false *)
-lemma tsts_inv_bind_applv_simple: ∀a,I,Vs,V2,T1,T2. ⒶVs.T1 ≂ ⓑ{a,I} V2. T2 →
+lemma tsts_inv_bind_applv_simple: ∀p,I,Vs,V2,T1,T2. ⒶVs.T1 ≂ ⓑ{p,I}V2.T2 →
𝐒⦃T1⦄ → ⊥.
-#a #I #Vs #V2 #T1 #T2 #H
-elim (tsts_inv_pair2 … H) -H #V0 #T0
-elim Vs -Vs normalize
+#p #I #Vs #V2 #T1 #T2 #H elim (tsts_inv_pair2 … H) -H
+#V0 #T0 elim Vs -Vs normalize
[ #H destruct #H /2 width=5 by simple_inv_bind/
| #V #Vs #_ #H destruct
]
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( § term 90 p )"
+notation "hvbox( § term 90 l )"
non associative with precedence 55
- for @{ 'GRef $p }.
+ for @{ 'GRef $l }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⓓ { term 46 a } break term 55 T1 . break term 55 T2 )"
+notation "hvbox( ⓓ { term 46 p } break term 55 T1 . break term 55 T2 )"
non associative with precedence 55
- for @{ 'SnAbbr $a $T1 $T2 }.
+ for @{ 'SnAbbr $p $T1 $T2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⓛ { term 46 a } break term 55 T1 . break term 55 T2 )"
+notation "hvbox( ⓛ { term 46 p } break term 55 T1 . break term 55 T2 )"
non associative with precedence 55
- for @{ 'SnAbst $a $T1 $T2 }.
+ for @{ 'SnAbst $p $T1 $T2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⓑ { term 46 a , break term 46 I } break term 55 T1 . break term 55 T )"
+notation "hvbox( ⓑ { term 46 p , break term 46 I } break term 55 T1 . break term 55 T )"
non associative with precedence 55
- for @{ 'SnBind2 $a $I $T1 $T }.
+ for @{ 'SnBind2 $p $I $T1 $T }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⋆ term 90 k )"
+notation "hvbox( ⋆ term 90 s )"
non associative with precedence 55
- for @{ 'Star $k }.
+ for @{ 'Star $s }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ♯ { term 46 x } )"
+notation "hvbox( ♯ { term 46 X } )"
non associative with precedence 90
- for @{ 'Weight $x }.
+ for @{ 'Weight $X }.
notation "hvbox( ⦃G, L⦄ ⊢ break ⌘ ⦃ term 46 T ⦄ ≡ break term 46 k )"
non associative with precedence 45
- for @{ 'ICM $L $T $k }.
+ for @{ 'ICM $L $T $s }.
notation "hvbox( ⦃ term 46 h , break term 46 L ⦄ ⊢ break term 46 T ÷ break term 46 A )"
non associative with precedence 45
- for @{ 'BinaryArity $h $L $T $A }.
+ for @{ 'BinaryArity $o $L $T $A }.
notation "hvbox( h ⊢ break term 46 L1 ÷ ⫃ break term 46 L2 )"
non associative with precedence 45
- for @{ 'LRSubEqB $h $L1 $L2 }.
+ for @{ 'LRSubEqB $o $L1 $L2 }.
notation "hvbox( L1 ⊢ ⬌ break term 46 L2 )"
non associative with precedence 45
notation "hvbox( ⦃ term 46 h , break term 46 L ⦄ ⊢ break term 46 T1 : break term 46 T2 )"
non associative with precedence 45
- for @{ 'NativeType $h $L $T1 $T2 }.
+ for @{ 'NativeType $o $L $T1 $T2 }.
notation "hvbox( ⦃ term 46 h , break term 46 L ⦄ ⊢ break term 46 T1 : : break term 46 T2 )"
non associative with precedence 45
- for @{ 'NativeTypeAlt $h $L $T1 $T2 }.
+ for @{ 'NativeTypeAlt $o $L $T1 $T2 }.
notation "hvbox( ⦃ term 46 h , break term 46 L ⦄ ⊢ break term 46 T1 : * break term 46 T2 )"
non associative with precedence 45
- for @{ 'NativeTypeStar $h $L $T1 $T2 }.
+ for @{ 'NativeTypeStar $o $L $T1 $T2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G1, break term 46 L1, break term 46 T1 ⦄ ≽ break [ term 46 h, break term 46 g ] break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
+notation "hvbox( ⦃ term 46 G1, break term 46 L1, break term 46 T1 ⦄ ≽ break [ term 46 o, break term 46 h ] break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
non associative with precedence 45
- for @{ 'BTPRed $h $g $G1 $L1 $T1 $G2 $L2 $T2 }.
+ for @{ 'BTPRed $o $h $G1 $L1 $T1 $G2 $L2 $T2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G1, break term 46 L1, break term 46 T1 ⦄ ≽ ≽ break [ term 46 h, break term 46 g ] break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
+notation "hvbox( ⦃ term 46 G1, break term 46 L1, break term 46 T1 ⦄ ≽ ≽ break [ term 46 o, break term 46 h ] break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
non associative with precedence 45
- for @{ 'BTPRedAlt $h $g $G1 $L1 $T1 $G2 $L2 $T2 }.
+ for @{ 'BTPRedAlt $o $h $G1 $L1 $T1 $G2 $L2 $T2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G1, break term 46 L1, break term 46 T1 ⦄ ≻ break [ term 46 h, break term 46 g ] break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
+notation "hvbox( ⦃ term 46 G1, break term 46 L1, break term 46 T1 ⦄ ≻ break [ term 46 o, break term 46 h ] break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
non associative with precedence 45
- for @{ 'BTPRedProper $h $g $G1 $L1 $T1 $G2 $L2 $T2 }.
+ for @{ 'BTPRedProper $o $h $G1 $L1 $T1 $G2 $L2 $T2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G1, break term 46 L1, break term 46 T1 ⦄ ≥ break [ term 46 h, break term 46 g ] break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
+notation "hvbox( ⦃ term 46 G1, break term 46 L1, break term 46 T1 ⦄ ≥ break [ term 46 o, break term 46 h ] break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
non associative with precedence 45
- for @{ 'BTPRedStar $h $g $G1 $L1 $T1 $G2 $L2 $T2 }.
+ for @{ 'BTPRedStar $o $h $G1 $L1 $T1 $G2 $L2 $T2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G1, break term 46 L1, break term 46 T1 ⦄ ≥ ≥ break [ term 46 h, break term 46 g ] break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
+notation "hvbox( ⦃ term 46 G1, break term 46 L1, break term 46 T1 ⦄ ≥ ≥ break [ term 46 o, break term 46 h ] break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
non associative with precedence 45
- for @{ 'BTPRedStarAlt $h $g $G1 $L1 $T1 $G2 $L2 $T2 }.
+ for @{ 'BTPRedStarAlt $o $h $G1 $L1 $T1 $G2 $L2 $T2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦥ [ term 46 h, break term 46 g ] break ⦃ term 46 G, break term 46 L, break term 46 T ⦄ )"
+notation "hvbox( ⦥ [ term 46 o, break term 46 h ] break ⦃ term 46 G, break term 46 L, break term 46 T ⦄ )"
non associative with precedence 45
- for @{ 'BTSN $h $g $G $L $T }.
+ for @{ 'BTSN $o $h $G $L $T }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦥ ⦥ [ term 46 h, break term 46 g ] break ⦃ term 46 G, break term 46 L, break term 46 T ⦄ )"
+notation "hvbox( ⦥ ⦥ [ term 46 o, break term 46 h ] break ⦃ term 46 G, break term 46 L, break term 46 T ⦄ )"
non associative with precedence 45
- for @{ 'BTSNAlt $h $g $G $L $T }.
+ for @{ 'BTSNAlt $o $h $G $L $T }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( G ⊢ ~ ⬊ * break [ term 46 h , break term 46 g , break term 46 l ] break term 46 L )"
+notation "hvbox( G ⊢ ~ ⬊ * break [ term 46 o , break term 46 h , break term 46 f ] break term 46 L )"
non associative with precedence 45
- for @{ 'CoSN $h $g $l $G $L }.
+ for @{ 'CoSN $o $h $f $G $L }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G , break term 46 L ⦄ ⊢ break term 46 T ▪ break [ term 46 h , break term 46 g ] break term 46 d )"
+notation "hvbox( ⦃ term 46 G , break term 46 L ⦄ ⊢ break term 46 T ▪ break [ term 46 o , break term 46 h ] break term 46 d )"
non associative with precedence 45
- for @{ 'Degree $h $g $G $L $T $d }.
+ for @{ 'Degree $o $h $G $L $T $d }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G , break term 46 L ⦄ ⊢ break term 46 T1 • * ⬌ * break [ term 46 h , break term 46 g , break term 46 n1 , break term 46 n2 ] break term 46 T2 )"
+notation "hvbox( ⦃ term 46 G , break term 46 L ⦄ ⊢ break term 46 T1 • * ⬌ * break [ term 46 o , break term 46 h , break term 46 n1 , break term 46 n2 ] break term 46 T2 )"
non associative with precedence 45
- for @{ 'DPConvStar $h $g $n1 $n2 $G $L $T1 $T2 }.
+ for @{ 'DPConvStar $o $h $n1 $n2 $G $L $T1 $T2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G , break term 46 L ⦄ ⊢ break term 46 T1 • * ➡ * break [ term 46 h , break term 46 g , break term 46 n ] break term 46 T2 )"
+notation "hvbox( ⦃ term 46 G , break term 46 L ⦄ ⊢ break term 46 T1 • * ➡ * break [ term 46 o , break term 46 h , break term 46 n ] break term 46 T2 )"
non associative with precedence 45
- for @{ 'DPRedStar $h $g $n $G $L $T1 $T2 }.
+ for @{ 'DPRedStar $o $h $n $G $L $T1 $T2 }.
+++ /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 *)
-(* *)
-(**************************************************************************)
-
-(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-
-notation "hvbox( L ⊢ break term 46 i ϵ 𝐅 * [ break term 46 l ] ⦃ break term 46 T ⦄ )"
- non associative with precedence 45
- for @{ 'FreeStar $L $i $l $T }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G1, break term 46 L1, break term 46 T1 ⦄ >≡ break [ term 46 h, break term 46 g ] break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
+notation "hvbox( ⦃ term 46 G1, break term 46 L1, break term 46 T1 ⦄ >≡ break [ term 46 o, break term 46 h ] break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
non associative with precedence 45
- for @{ 'LazyBTPRedStarProper $h $g $G1 $L1 $T1 $G2 $L2 $T2 }.
+ for @{ 'LazyBTPRedStarProper $o $h $G1 $L1 $T1 $G2 $L2 $T2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( L1 ≡ break [ term 46 T , break term 46 l ] break term 46 L2 )"
+notation "hvbox( L1 ≡ break [ term 46 T , break term 46 f ] break term 46 L2 )"
non associative with precedence 45
- for @{ 'LazyEq $T $l $L1 $L2 }.
+ for @{ 'LazyEq $T $f $L1 $L2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G1, break term 46 L1, break term 46 T1 ⦄ ≡ break [ term 46 l ] break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
+notation "hvbox( ⦃ term 46 G1, break term 46 L1, break term 46 T1 ⦄ ≡ break [ term 46 f ] break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
non associative with precedence 45
- for @{ 'LazyEq $l $G1 $L1 $T1 $G2 $L2 $T2 }.
+ for @{ 'LazyEq $f $G1 $L1 $T1 $G2 $L2 $T2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( L1 ⋓ break [ term 46 T , break term 46 l ] break term 46 L2 ≡ break term 46 L )"
+notation "hvbox( L1 ⋓ break [ term 46 T , break term 46 f ] break term 46 L2 ≡ break term 46 L )"
non associative with precedence 45
- for @{ 'LazyOr $L1 $T $l $L2 $L }.
+ for @{ 'LazyOr $L1 $T $f $L2 $L }.
notation "hvbox( L1 break ⊆ [ term 46 l , break term 46 m ] break term 46 L2 )"
non associative with precedence 45
- for @{ 'LRSubEq $L1 $l $m $L2 }.
+ for @{ 'LRSubEq $L1 $l $k $L2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( G ⊢ break term 46 L1 ⫃ ▪ break [ term 46 h, break term 46 g ] break term 46 L2 )"
+notation "hvbox( G ⊢ break term 46 L1 ⫃ ▪ break [ term 46 o, break term 46 h ] break term 46 L2 )"
non associative with precedence 45
- for @{ 'LRSubEqD $h $g $G $L1 $L2 }.
+ for @{ 'LRSubEqD $o $h $G $L1 $L2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( G ⊢ break term 46 L1 ⫃ ¡ break [ term 46 h, break term 46 g ] break term 46 L2 )"
+notation "hvbox( G ⊢ break term 46 L1 ⫃ ¡ break [ term 46 o, break term 46 h ] break term 46 L2 )"
non associative with precedence 45
- for @{ 'LRSubEqV $h $g $G $L1 $L2 }.
+ for @{ 'LRSubEqV $o $h $G $L1 $L2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( L1 ⩬ break [ term 46 l , break term 46 m ] break term 46 L2 )"
+notation "hvbox( L1 ⩬ break [ term 46 f , break term 46 m ] break term 46 L2 )"
non associative with precedence 45
- for @{ 'MidIso $l $m $L1 $L2 }.
+ for @{ 'MidIso $f $k $L1 $L2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G , break term 46 L ⦄ ⊢ break term 46 T ¡ break [ term 46 h, break term 46 g ] )"
+notation "hvbox( ⦃ term 46 G , break term 46 L ⦄ ⊢ break term 46 T ¡ break [ term 46 o, break term 46 h ] )"
non associative with precedence 45
- for @{ 'NativeValid $h $g $G $L $T }.
+ for @{ 'NativeValid $o $h $G $L $T }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G , break term 46 L ⦄ ⊢ break term 46 T ¡ break [ term 46 h , break term 46 g , break term 46 d ] )"
+notation "hvbox( ⦃ term 46 G , break term 46 L ⦄ ⊢ break term 46 T ¡ break [ term 46 o , break term 46 h , break term 46 d ] )"
non associative with precedence 45
- for @{ 'NativeValid $h $g $d $G $L $T }.
+ for @{ 'NativeValid $o $h $d $G $L $T }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G, break term 46 L ⦄ ⊢ break term 46 T1 ➡ break [ term 46 h , break term 46 g ] break term 46 T2 )"
+notation "hvbox( ⦃ term 46 G, break term 46 L ⦄ ⊢ break term 46 T1 ➡ break [ term 46 o , break term 46 h ] break term 46 T2 )"
non associative with precedence 45
- for @{ 'PRed $h $g $G $L $T1 $T2 }.
+ for @{ 'PRed $o $h $G $L $T1 $T2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G, break term 46 L ⦄ ⊢ break term 46 T1 ➡ * break [ term 46 h , break term 46 g ] break 𝐍 ⦃ term 46 T2 ⦄ )"
+notation "hvbox( ⦃ term 46 G, break term 46 L ⦄ ⊢ break term 46 T1 ➡ * break [ term 46 o , break term 46 h ] break 𝐍 ⦃ term 46 T2 ⦄ )"
non associative with precedence 45
- for @{ 'PRedEval $h $g $G $L $T1 $T2 }.
+ for @{ 'PRedEval $o $h $G $L $T1 $T2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G, break term 46 L ⦄ ⊢ ➡ break [ term 46 h , break term 46 g ] 𝐍 break ⦃ term 46 T ⦄ )"
+notation "hvbox( ⦃ term 46 G, break term 46 L ⦄ ⊢ ➡ break [ term 46 o , break term 46 h ] 𝐍 break ⦃ term 46 T ⦄ )"
non associative with precedence 45
- for @{ 'PRedNormal $h $g $G $L $T }.
+ for @{ 'PRedNormal $o $h $G $L $T }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G, break term 46 L ⦄ ⊢ ➡ break [ term 46 h , break term 46 g ] 𝐈 break ⦃ term 46 T ⦄ )"
+notation "hvbox( ⦃ term 46 G, break term 46 L ⦄ ⊢ ➡ break [ term 46 o , break term 46 h ] 𝐈 break ⦃ term 46 T ⦄ )"
non associative with precedence 45
- for @{ 'PRedNotReducible $h $g $G $L $T }.
+ for @{ 'PRedNotReducible $o $h $G $L $T }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G, break term 46 L ⦄ ⊢ ➡ break [ term 46 h , break term 46 g ] 𝐑 break ⦃ term 46 T ⦄ )"
+notation "hvbox( ⦃ term 46 G, break term 46 L ⦄ ⊢ ➡ break [ term 46 o , break term 46 h ] 𝐑 break ⦃ term 46 T ⦄ )"
non associative with precedence 45
- for @{ 'PRedReducible $h $g $G $L $T }.
+ for @{ 'PRedReducible $o $h $G $L $T }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G, break term 46 L1 ⦄ ⊢ ➡ break [ term 46 h , break term 46 g ] break term 46 L2 )"
+notation "hvbox( ⦃ term 46 G, break term 46 L1 ⦄ ⊢ ➡ break [ term 46 o , break term 46 h ] break term 46 L2 )"
non associative with precedence 45
- for @{ 'PRedSn $h $g $G $L1 $L2 }.
+ for @{ 'PRedSn $o $h $G $L1 $L2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G, break term 46 L1 ⦄ ⊢ ➡ * break [ term 46 h , break term 46 g ] break term 46 L2 )"
+notation "hvbox( ⦃ term 46 G, break term 46 L1 ⦄ ⊢ ➡ * break [ term 46 o , break term 46 h ] break term 46 L2 )"
non associative with precedence 45
- for @{ 'PRedSnStar $h $g $G $L1 $L2 }.
+ for @{ 'PRedSnStar $o $h $G $L1 $L2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G, break term 46 L ⦄ ⊢ break term 46 T1 ➡ * break [ term 46 h , break term 46 g ] break term 46 T2 )"
+notation "hvbox( ⦃ term 46 G, break term 46 L ⦄ ⊢ break term 46 T1 ➡ * break [ term 46 o , break term 46 h ] break term 46 T2 )"
non associative with precedence 45
- for @{ 'PRedStar $h $g $G $L $T1 $T2 }.
+ for @{ 'PRedStar $o $h $G $L $T1 $T2 }.
notation "hvbox( ⦃ term 46 G , break term 46 L ⦄ ⊢ break term 46 T1 break ▶ [ term 46 l , break term 46 m ] break term 46 T2 )"
non associative with precedence 45
- for @{ 'PSubst $G $L $T1 $l $m $T2 }.
+ for @{ 'PSubst $G $L $T1 $l $k $T2 }.
notation "hvbox( ⦃ term 46 G , break term 46 L ⦄ ⊢ break term 46 T1 break ▶ * [ term 46 l , break term 46 m ] break term 46 T2 )"
non associative with precedence 45
- for @{ 'PSubstStar $G $L $T1 $l $m $T2 }.
+ for @{ 'PSubstStar $G $L $T1 $l $k $T2 }.
notation "hvbox( ⦃ term 46 G , break term 46 L ⦄ ⊢ break term 46 T1 break ▶ ▶ * [ term 46 l , break term 46 m ] break term 46 T2 )"
non associative with precedence 45
- for @{ 'PSubstStarAlt $G $L $T1 $l $m $T2 }.
+ for @{ 'PSubstStarAlt $G $L $T1 $l $k $T2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⬇ * [ term 46 s , break term 46 m ] break term 46 L1 ≡ break term 46 L2 )"
+notation "hvbox( ⬇ * [ term 46 c , break term 46 f ] break term 46 L1 ≡ break term 46 L2 )"
non associative with precedence 45
- for @{ 'RDropStar $s $m $L1 $L2 }.
+ for @{ 'RDropStar $c $f $L1 $L2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⬆ * [ term 46 m ] break term 46 T1 ≡ break term 46 T2 )"
+notation "hvbox( ⬆ * [ term 46 f ] break term 46 T1 ≡ break term 46 T2 )"
non associative with precedence 45
- for @{ 'RLiftStar $m $T1 $T2 }.
+ for @{ 'RLiftStar $f $T1 $T2 }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G, break term 46 L ⦄ ⊢ ⬊ * break [ term 46 h , break term 46 g ] break term 46 T )"
+notation "hvbox( ⦃ term 46 G, break term 46 L ⦄ ⊢ ⬊ * break [ term 46 o, break term 46 h ] break term 46 T )"
non associative with precedence 45
- for @{ 'SN $h $g $G $L $T }.
+ for @{ 'SN $o $h $G $L $T }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( G ⊢ ⬊ * break [ term 46 h , break term 46 g , break term 46 T , break term 46 l ] break term 46 L )"
+notation "hvbox( G ⊢ ⬊ * break [ term 46 o , break term 46 h , break term 46 T , break term 46 f ] break term 46 L )"
non associative with precedence 45
- for @{ 'SN $h $g $T $l $G $L }.
+ for @{ 'SN $o $h $T $f $G $L }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G, break term 46 L ⦄ ⊢ ⬊ ⬊ * break [ term 46 h , break term 46 g ] break term 46 T )"
+notation "hvbox( ⦃ term 46 G, break term 46 L ⦄ ⊢ ⬊ ⬊ * break [ term 46 o , break term 46 h ] break term 46 T )"
non associative with precedence 45
- for @{ 'SNAlt $h $g $G $L $T }.
+ for @{ 'SNAlt $o $h $G $L $T }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( G ⊢ ⬊ ⬊ * break [ term 46 h , break term 46 g , break term 46 T , break term 46 l ] break term 46 L )"
+notation "hvbox( G ⊢ ⬊ ⬊ * break [ term 46 o , break term 46 h , break term 46 T , break term 46 f ] break term 46 L )"
non associative with precedence 45
- for @{ 'SNAlt $h $g $T $l $G $L }.
+ for @{ 'SNAlt $o $h $T $f $G $L }.
(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-notation "hvbox( ⦃ term 46 G , break term 46 L ⦄ ⊢ break term 46 T1 •* break [ term 46 h , break term 46 n ] break term 46 T2 )"
+notation "hvbox( ⦃ term 46 G , break term 46 L ⦄ ⊢ break term 46 T1 •* break [ term 46 o , break term 46 n ] break term 46 T2 )"
non associative with precedence 45
- for @{ 'StaticTypeStar $h $G $L $n $T1 $T2 }.
+ for @{ 'StaticTypeStar $o $G $L $n $T1 $T2 }.