--- /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 *)
+(* *)
+(**************************************************************************)
+
+universe constraint Type[0] < Type[1].
+
+notation "hvbox(a break \to b)"
+ right associative with precedence 20
+for @{ \forall $_:$a.$b }.
+
+notation "hvbox( * )"
+ non associative with precedence 90
+ for @{ 'B }.
+
+inductive l: Type[0] ≝ L: l.
+
+inductive g: Type[0] ≝ G: g.
+
+axiom f: l → Prop.
+
+interpretation "b" 'B = L.
+
+interpretation "b" 'B = G.
+
+(* FG: two interpretations of the same notation and with the same description
+ override eachother, so the description is not just informative
+*)
+
+axiom s: f *.
include "basic_2/notation/relations/ineint_5.ma".
include "basic_2/grammar/aarity.ma".
-include "basic_2/grammar/genv.ma". (**) (* not needed, disambiguation error *)
include "basic_2/substitution/gr2_gr2.ma".
include "basic_2/substitution/lifts_lift_vector.ma".
include "basic_2/substitution/ldrops_ldrop.ma".
(* *)
(**************************************************************************)
+include "basic_2/reduction/lpx_ldrop.ma".
include "basic_2/computation/cpxs_lift.ma".
-include "basic_2/reduction/lpx_ldrop.ma". (**) (* disambiguation error *)
(* CONTEXT-SENSITIVE EXTENDED PARALLEL COMPUTATION ON TERMS *****************)
(* *)
(**************************************************************************)
-include "basic_2/computation/csn.ma". (**) (* disambiguation error *)
include "basic_2/reduction/cnx_lift.ma".
include "basic_2/computation/acp.ma".
+include "basic_2/computation/csn.ma".
(* CONTEXT-SENSITIVE EXTENDED STRONGLY NORMALIZING TERMS ********************)
(**************************************************************************)
include "basic_2/notation/relations/predsnstar_3.ma".
-include "basic_2/reduction/lpr.ma". (**) (* disambiguation error *)
include "basic_2/grammar/lpx_sn_tc.ma".
+include "basic_2/reduction/lpr.ma".
(* SN PARALLEL COMPUTATION ON LOCAL ENVIRONMENTS ****************************)
(**************************************************************************)
include "basic_2/notation/functions/weight_3.ma".
-include "basic_2/grammar/genv.ma". (**) (* including genv after lenv shows a disambiguation bug: only the last interpretation is considered *)
include "basic_2/grammar/lenv_weight.ma".
+include "basic_2/grammar/genv.ma".
(* WEIGHT OF A CLOSURE ******************************************************)
interpretation "sort (global environment)"
'Star = (nil2 bind2 term).
-interpretation "environment binding construction (binary)"
+interpretation "global environment binding construction (binary)"
'DxBind2 L I T = (cons2 bind2 term I T L).
interpretation "abbreviation (global environment)"
interpretation "sort (local environment)"
'Star = LAtom.
-interpretation "environment binding construction (binary)"
+interpretation "local environment binding construction (binary)"
'DxBind2 L I T = (LPair L I T).
interpretation "abbreviation (local environment)"
+++ /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 *)
-(* *)
-(**************************************************************************)
-
-universe constraint Type[0] < Type[1].
-
-notation "hvbox(a break \to b)"
- right associative with precedence 20
-for @{ \forall $_:$a.$b }.
-
-notation "hvbox( * )"
- non associative with precedence 90
- for @{ 'B }.
-
-inductive l: Type[0] ≝ L: l.
-
-inductive g: Type[0] ≝ G: g.
-
-axiom f: l → Prop.
-
-interpretation "b" 'B = L.
-
-interpretation "b" 'B = G.
-
-(* FG: two interpretations of the same notation and with the same description
- override eachother, so the description is not just informative
-*)
-
-axiom s: f *.
(**************************************************************************)
include "basic_2/notation/relations/predsn_3.ma".
+include "basic_2/grammar/lpx_sn.ma".
include "basic_2/reduction/cpr.ma".
-include "basic_2/grammar/lpx_sn.ma". (**) (* disambiguation error *)
(* SN PARALLEL REDUCTION FOR LOCAL ENVIRONMENTS *****************************)
(* *)
(**************************************************************************)
-include "basic_2/reduction/lpr_ldrop.ma". (**) (* disambiguation error *)
include "basic_2/grammar/lpx_sn_lpx_sn.ma".
include "basic_2/substitution/fsupp.ma".
+include "basic_2/reduction/lpr_ldrop.ma".
(* SN PARALLEL REDUCTION FOR LOCAL ENVIRONMENTS *****************************)
(* LOCAL ENVIRONMENT SLICING ************************************************)
(* Basic_1: includes: drop_skip_bind *)
-inductive ldrop: nat → nat → relation lenv ≝
+inductive ldrop: relation4 nat nat lenv lenv ≝
| ldrop_atom : ∀d. ldrop d 0 (⋆) (⋆)
| ldrop_pair : ∀L,I,V. ldrop 0 0 (L. ⓑ{I} V) (L. ⓑ{I} V)
| ldrop_ldrop: ∀L1,L2,I,V,e. ldrop 0 e L1 L2 → ldrop 0 (e + 1) (L1. ⓑ{I} V) L2
(* Basic_1: includes:
lift_sort lift_lref_lt lift_lref_ge lift_bind lift_flat
*)
-inductive lift: nat → nat → relation term ≝
+inductive lift: relation4 nat nat term term ≝
| lift_sort : ∀k,d,e. lift d e (⋆k) (⋆k)
| lift_lref_lt: ∀i,d,e. i < d → lift d e (#i) (#i)
| lift_lref_ge: ∀i,d,e. d ≤ i → lift d e (#i) (#(i + e))
(**************************************************************************)
include "basic_2/notation/relations/lrsubeqa_3.ma".
-include "basic_2/static/aaa.ma". (**) (* disambiguation error *)
include "basic_2/substitution/lsubr.ma".
+include "basic_2/static/aaa.ma".
(* LOCAL ENVIRONMENT REFINEMENT FOR ATOMIC ARITY ASSIGNMENT *****************)
(**************************************************************************)
include "basic_2/notation/relations/statictype_7.ma".
-include "basic_2/grammar/genv.ma". (**) (* disambiguation error *)
+include "basic_2/grammar/genv.ma".
include "basic_2/relocation/ldrop.ma".
include "basic_2/static/sd.ma".
(* STRATIFIED STATIC TYPE ASSIGNMENT ON TERMS *******************************)
(* activate genv *)
-inductive ssta (h:sh) (g:sd h): nat → genv → lenv → relation term ≝
+inductive ssta (h:sh) (g:sd h): nat → relation4 genv lenv term term ≝
| ssta_sort: ∀G,L,k,l. deg h g k l → ssta h g l G L (⋆k) (⋆(next h k))
| ssta_ldef: ∀G,L,K,V,W,U,i,l. ⇩[0, i] L ≡ K. ⓓV → ssta h g l G K V W →
⇧[0, i + 1] W ≡ U → ssta h g l G L (#i) U
interpretation "stratified static type assignment (term)"
'StaticType h g G L T U l = (ssta h g l G L T U).
-definition ssta_step: ∀h. sd h → genv → lenv → relation term ≝ λh,g,G,L,T,U.
- ∃l. ⦃G, L⦄ ⊢ T •[h, g] ⦃l+1, U⦄.
+definition ssta_step: ∀h. sd h → relation4 genv lenv term term ≝
+ λh,g,G,L,T,U. ∃l. ⦃G, L⦄ ⊢ T •[h, g] ⦃l+1, U⦄.
(* Basic inversion lemmas ************************************************)
(* *)
(**************************************************************************)
-include "basic_2/static/ssta.ma". (**) (* disambiguation error *)
include "basic_2/relocation/ldrop_ldrop.ma".
+include "basic_2/static/ssta.ma".
(* STRATIFIED STATIC TYPE ASSIGNMENT ON TERMS *******************************)
(* ITERATED STRATIFIED STATIC TYPE ASSIGNMENT FOR TERMS *********************)
(* Note: includes: stass_refl *)
-definition sstas: ∀h. sd h → genv → lenv → relation term ≝
+definition sstas: ∀h. sd h → relation4 genv lenv term term ≝
λh,g,G,L. star … (ssta_step h g G L).
interpretation "iterated stratified static type assignment (term)"
(**************************************************************************)
include "basic_2/notation/relations/unfold_4.ma".
-include "basic_2/grammar/genv.ma". (**) (* disambiguation error *)
include "basic_2/grammar/lenv_append.ma".
+include "basic_2/grammar/genv.ma".
include "basic_2/relocation/ldrop.ma".
(* CONTEXT-SENSITIVE UNFOLD FOR TERMS ***************************************)