(* *)
(**************************************************************************)
-(*
include "basic_2/static/lfeq.ma".
-*)
include "basic_2/static/lfxs_lfxs.ma".
include "basic_2/i_static/tc_lfxs_fqup.ma".
-include "basic_2/notation/relations/lazyeqsn_3.ma".
-
-definition ceq_ext: relation3 lenv bind bind ≝
- cext2 (λL,T1,T2. T1 = T2).
-
-definition lfeq: relation3 term lenv lenv ≝
- lfxs (λL,T1,T2. T1 = T2).
-
-interpretation
- "syntactic equivalence on referred entries (local environment)"
- 'LazyEqSn T L1 L2 = (lfeq T L1 L2).
-
-axiom lfeq_lfxs_trans: ∀R,L1,L,T. L1 ≡[T] L →
- ∀L2. L ⪤*[R, T] L2 → L1 ⪤*[R, T] L2.
-
-axiom cext2_inv_LTC: ∀R,L,I1,I2. cext2 (LTC … R) L I1 I2 → LTC … (cext2 R) L I1 I2.
(*
+axiom cext2_inv_LTC: ∀R,L,I1,I2. cext2 (LTC … R) L I1 I2 → LTC … (cext2 R) L I1 I2.
+
#R #L #I1 #I2 * -I1 -I2
[ /2 width=1 by ext2_unit, inj/
| #I #V1 #V2 #HV12
[ @step [3:
*)
+(*
axiom lexs_frees_confluent_LTC_sn: ∀RN,RP. lexs_frees_confluent RN RP →
lexs_frees_confluent (LTC … RN) RP.
-(*
+
#RN #RP #HR #f1 #L1 #T #Hf1 #L2 #H
*)
(* ITERATED EXTENSION ON REFERRED ENTRIES OF A CONTEXT-SENSITIVE REALTION ***)
--- /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/relocation/drops.ma".
+
+(* GENERIC SLICING FOR LOCAL ENVIRONMENTS ***********************************)
+
+(* Properties with the extension to binders of a context-sensitive relation *)
+
+lemma cext2_d_liftable2_sn: ∀R. d_liftable2_sn … lifts R →
+ d_liftable2_sn … liftsb (cext2 R).
+#R #HR #K #I1 #I2 * -I1 -I2 #I [| #T1 #T2 #HT12 ]
+#b #f #L #HLK #Z1 #H
+[ lapply (liftsb_inv_unit_sn … H)
+| lapply (liftsb_inv_pair_sn … H) * #U1 #HTU1
+] -H #H destruct /3 width=3 by ext2_unit, ex2_intro/
+elim (HR … HT12 … HLK … HTU1) -HR -b -K -T1 /3 width=3 by ext2_pair, ex2_intro/
+qed-.
+++ /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/syntax/lenv_ext2.ma".
-include "basic_2/relocation/drops.ma".
-
-(* GENERIC SLICING FOR LOCAL ENVIRONMENTS ***********************************)
-
-(* Properties with the extension to binders of a context-sensitive relation *)
-
-lemma cext2_d_liftable2_sn: ∀R. d_liftable2_sn … lifts R →
- d_liftable2_sn … liftsb (cext2 R).
-#R #HR #K #I1 #I2 * -I1 -I2 #I [| #T1 #T2 #HT12 ]
-#b #f #L #HLK #Z1 #H
-[ lapply (liftsb_inv_unit_sn … H)
-| lapply (liftsb_inv_pair_sn … H) * #U1 #HTU1
-] -H #H destruct /3 width=3 by ext2_unit, ex2_intro/
-elim (HR … HT12 … HLK … HTU1) -HR -b -K -T1 /3 width=3 by ext2_pair, ex2_intro/
-qed-.
(**************************************************************************)
include "basic_2/notation/relations/lazyeqsn_3.ma".
-include "basic_2/syntax/lenv_ceq.ma".
+include "basic_2/syntax/ceq_ext.ma".
include "basic_2/relocation/lexs.ma".
(* RANGED EQUIVALENCE FOR LOCAL ENVIRONMENTS ********************************)
(* *)
(**************************************************************************)
-include "basic_2/syntax/lenv_ext2.ma".
+include "basic_2/syntax/cext2.ma".
include "basic_2/rt_transition/cpm.ma".
(* CONTEXT-SENSITIVE PARALLEL R-TRANSITION FOR BINDERS **********************)
(* *)
(**************************************************************************)
-include "basic_2/syntax/lenv_ext2.ma".
+include "basic_2/syntax/cext2.ma".
include "basic_2/rt_transition/cpx.ma".
(* UNCOUNTED CONTEXT-SENSITIVE PARALLEL RT-TRANSITION FOR BINDERS ***********)
lemma lfdeq_fwd_dx: ∀h,o,I2,L1,K2. ∀T:term. L1 ≛[h, o, T] K2.ⓘ{I2} →
∃∃I1,K1. L1 = K1.ⓘ{I1}.
/2 width=5 by lfxs_fwd_dx/ qed-.
-
-(* Basic_2A1: removed theorems 10:
- lleq_ind lleq_fwd_lref
- lleq_fwd_drop_sn lleq_fwd_drop_dx
- lleq_skip lleq_lref lleq_free
- lleq_Y lleq_ge_up lleq_ge
-
-*)
--- /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/notation/relations/lazyeqsn_3.ma".
+include "basic_2/static/lfxs.ma".
+
+(* SYNTACTIC EQUIVALENCE FOR LOCAL ENVIRONMENTS ON REFERRED ENTRIES *********)
+
+(* Basic_2A1: was: lleq *)
+definition lfeq: relation3 term lenv lenv ≝
+ lfxs ceq.
+
+interpretation
+ "syntactic equivalence on referred entries (local environment)"
+ 'LazyEqSn T L1 L2 = (lfeq T L1 L2).
+
+(***************************************************)
+
+axiom lfeq_lfxs_trans: ∀R,L1,L,T. L1 ≡[T] L →
+ ∀L2. L ⪤*[R, T] L2 → L1 ⪤*[R, T] L2.
+
+(* Basic_2A1: removed theorems 10:
+ lleq_ind lleq_fwd_lref
+ lleq_fwd_drop_sn lleq_fwd_drop_dx
+ lleq_skip lleq_lref lleq_free
+ lleq_Y lleq_ge_up lleq_ge
+
+*)
include "ground_2/relocation/rtmap_id.ma".
include "basic_2/notation/relations/relationstar_4.ma".
-include "basic_2/syntax/lenv_ext2.ma".
+include "basic_2/syntax/cext2.ma".
include "basic_2/relocation/lexs.ma".
include "basic_2/static/frees.ma".
(* *)
(**************************************************************************)
+include "basic_2/relocation/drops_cext2.ma".
include "basic_2/relocation/drops_lexs.ma".
-include "basic_2/relocation/drops_ext2.ma".
include "basic_2/static/frees_drops.ma".
include "basic_2/static/lfxs.ma".
--- /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/syntax/cext2.ma".
+
+(* CONTEXT-AWARE SYNTACTIC EQUIVALENCE FOR BINDERS **************************)
+
+definition ceq_ext: lenv → relation bind ≝
+ cext2 ceq.
+
+(* Basic properties *********************************************************)
+
+lemma ceq_ext_refl (L): reflexive … (ceq_ext L).
+/2 width=1 by ext2_refl/ qed.
+
+(* Basic inversion lemmas ***************************************************)
+
+lemma ceq_ext_inv_eq: ∀L,I1,I2. ceq_ext L I1 I2 → I1 = I2.
+#L #I1 #I2 * -I1 -I2 //
+qed-.
(* *)
(**************************************************************************)
-include "basic_2/syntax/lenv_ceq.ma".
+include "basic_2/syntax/ceq_ext.ma".
-(* CONTEXT-DEPENDENT SYNTACTIC EQUIVALENCE FOR BINDERS **********************)
+(* CONTEXT-AWARE SYNTACTIC EQUIVALENCE FOR BINDERS **************************)
(* Main properties **********************************************************)
--- /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/syntax/ext2.ma".
+include "basic_2/syntax/lenv.ma".
+
+(* EXTENSION TO BINDERS OF A CONTEXT-SENSITIVE RELATION FOR TERMS ***********)
+
+definition cext2: (lenv → relation term) → lenv → relation bind ≝
+ λR,L. ext2 (R L).
+
+(* Basic properties *********************************************************)
+
+lemma cext2_sym: ∀R. (∀L1,L2,T1,T2. R L1 T1 T2 → R L2 T2 T1) →
+ ∀L1,L2,I1,I2. cext2 R L1 I1 I2 → cext2 R L2 I2 I1.
+#R #HR #L1 #L2 #I1 #I2 * /3 width=2 by ext2_pair/
+qed-.
+
+lemma cext2_co: ∀R1,R2. (∀L,T1,T2. R1 L T1 T2 → R2 L T1 T2) →
+ ∀L,I1,I2. cext2 R1 L I1 I2 → cext2 R2 L I1 I2.
+#R1 #R2 #HR #L #I1 #I2 * /3 width=2 by ext2_unit, ext2_pair/
+qed-.
+++ /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/syntax/lenv_ext2.ma".
-
-(* EXTENSION TO BINDERS OF A CONTEXT-SENSITIVE RELATION FOR TERMS ***********)
-
-definition ceq_ext: lenv → relation bind ≝
- cext2 ceq.
-
-(* Basic properties *********************************************************)
-
-lemma ceq_ext_refl (L): reflexive … (ceq_ext L).
-/2 width=1 by ext2_refl/ qed.
-
-(* Basic inversion lemmas ***************************************************)
-
-lemma ceq_ext_inv_eq: ∀L,I1,I2. ceq_ext L I1 I2 → I1 = I2.
-#L #I1 #I2 * -I1 -I2 //
-qed-.
+++ /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/syntax/ext2.ma".
-include "basic_2/syntax/lenv.ma".
-
-(* EXTENSION TO BINDERS OF A CONTEXT-SENSITIVE RELATION FOR TERMS ***********)
-
-definition cext2: (lenv → relation term) → lenv → relation bind ≝
- λR,L. ext2 (R L).
-
-(* Basic properties *********************************************************)
-
-lemma cext2_sym: ∀R. (∀L1,L2,T1,T2. R L1 T1 T2 → R L2 T2 T1) →
- ∀L1,L2,I1,I2. cext2 R L1 I1 I2 → cext2 R L2 I2 I1.
-#R #HR #L1 #L2 #I1 #I2 * /3 width=2 by ext2_pair/
-qed-.
-
-lemma cext2_co: ∀R1,R2. (∀L,T1,T2. R1 L T1 T2 → R2 L T1 T2) →
- ∀L,I1,I2. cext2 R1 L I1 I2 → cext2 R2 L I1 I2.
-#R1 #R2 #HR #L #I1 #I2 * /3 width=2 by ext2_unit, ext2_pair/
-qed-.
(**************************************************************************)
include "basic_2/notation/relations/stareq_5.ma".
+include "basic_2/syntax/cext2.ma".
include "basic_2/syntax/tdeq.ma".
-include "basic_2/syntax/lenv_ext2.ma".
(* EXTENDED DEGREE-BASED EQUIVALENCE ****************************************)
[ "lfdeq ( ? ≛[?,?,?] ? )" "lfdeq_length" + "lfdeq_drops" + "lfdeq_fqup" + "lfdeq_fqus" + "lfdeq_lfdeq" * ]
}
]
+ [ { "syntactic equivalence on referred entries" * } {
+ [ "lfeq ( ? ≡[?] ? )" * ]
+ }
[ { "generic extension on referred entries" * } {
[ "lfxs ( ? ⦻*[?,?] ? )" "lfxs_length" + "lfxs_drops" + "lfxs_fqup" + "lfxs_lfxs" * ]
}
[ { "relocation" * } {
[ { "generic slicing for local environments" * } {
[ "drops_vector ( ⬇*[?,?] ? ≡ ? ) ( ⬇*[?] ? ≡ ? )" * ]
- [ "drops ( ⬇*[?,?] ? ≡ ? ) ( ⬇*[?] ? ≡ ? )" "drops_lstar" + "drops_weight" + "drops_length" + "drops_ext2" + "drops_lexs" + "drops_lreq" + "drops_drops" * ]
+ [ "drops ( ⬇*[?,?] ? ≡ ? ) ( ⬇*[?] ? ≡ ? )" "drops_lstar" + "drops_weight" + "drops_length" + "drops_cext2" + "drops_lexs" + "drops_lreq" + "drops_drops" * ]
}
]
[ { "generic relocation" * } {
}
]
[ { "pointwise extension of a relation" * } {
- [ "lpx_sn" "lpx_sn_alt" + "lpx_sn_tc" + "lpx_sn_drop" + "lpx_sn_lpx_sn" * ]
+ [ "lpx_sn" "lpx_sn_alt" + "lpx_sn_drop" + "lpx_sn_lpx_sn" * ]
}
]
[ "cpx_lreq" + "cpr_cir" + "fpb_lift" + "fpbq_lift" ]