(* *)
(**************************************************************************)
-include "basic_2/notation/relations/reducible_3.ma".
+include "basic_2/notation/relations/predreducible_3.ma".
include "basic_2/grammar/genv.ma".
-include "basic_2/relocation/ldrop.ma".
+include "basic_2/substitution/drop.ma".
-(* CONTEXT-SENSITIVE REDUCIBLE TERMS ****************************************)
+(* REDUCIBLE TERMS FOR CONTEXT-SENSITIVE REDUCTION **************************)
(* reducible binary items *)
definition ri2: predicate item2 ≝
(* activate genv *)
(* reducible terms *)
inductive crr (G:genv): relation2 lenv term ≝
-| crr_delta : â\88\80L,K,V,i. â\87©[i] L ≡ K.ⓓV → crr G L (#i)
+| crr_delta : â\88\80L,K,V,i. â¬\87[i] L ≡ K.ⓓV → crr G L (#i)
| crr_appl_sn: ∀L,V,T. crr G L V → crr G L (ⓐV.T)
| crr_appl_dx: ∀L,V,T. crr G L T → crr G L (ⓐV.T)
| crr_ri2 : ∀I,L,V,T. ri2 I → crr G L (②{I}V.T)
.
interpretation
- "context-sensitive reducibility (term)"
- 'Reducible G L T = (crr G L T).
+ "reducibility for context-sensitive reduction (term)"
+ 'PRedReducible G L T = (crr G L T).
(* Basic inversion lemmas ***************************************************)
-fact crr_inv_sort_aux: ∀G,L,T,k. ⦃G, L⦄ ⊢ ➡ 𝐑⦃T⦄ → T = ⋆k → ⊥.
-#G #L #T #k0 * -L -T
+fact crr_inv_sort_aux: ∀G,L,T,s. ⦃G, L⦄ ⊢ ➡ 𝐑⦃T⦄ → T = ⋆s → ⊥.
+#G #L #T #s0 * -L -T
[ #L #K #V #i #HLK #H destruct
| #L #V #T #_ #H destruct
| #L #V #T #_ #H destruct
]
qed-.
-lemma crr_inv_sort: ∀G,L,k. ⦃G, L⦄ ⊢ ➡ 𝐑⦃⋆k⦄ → ⊥.
+lemma crr_inv_sort: ∀G,L,s. ⦃G, L⦄ ⊢ ➡ 𝐑⦃⋆s⦄ → ⊥.
/2 width=6 by crr_inv_sort_aux/ qed-.
fact crr_inv_lref_aux: ∀G,L,T,i. ⦃G, L⦄ ⊢ ➡ 𝐑⦃T⦄ → T = #i →
- â\88\83â\88\83K,V. â\87©[i] L ≡ K.ⓓV.
+ â\88\83â\88\83K,V. â¬\87[i] L ≡ K.ⓓV.
#G #L #T #j * -L -T
[ #L #K #V #i #HLK #H destruct /2 width=3 by ex1_2_intro/
| #L #V #T #_ #H destruct
]
qed-.
-lemma crr_inv_lref: â\88\80G,L,i. â¦\83G, Lâ¦\84 â\8a¢ â\9e¡ ð\9d\90\91â¦\83#iâ¦\84 â\86\92 â\88\83â\88\83K,V. â\87©[i] L ≡ K.ⓓV.
+lemma crr_inv_lref: â\88\80G,L,i. â¦\83G, Lâ¦\84 â\8a¢ â\9e¡ ð\9d\90\91â¦\83#iâ¦\84 â\86\92 â\88\83â\88\83K,V. â¬\87[i] L ≡ K.ⓓV.
/2 width=4 by crr_inv_lref_aux/ qed-.
fact crr_inv_gref_aux: ∀G,L,T,p. ⦃G, L⦄ ⊢ ➡ 𝐑⦃T⦄ → T = §p → ⊥.
#G * #i #H
[ elim (crr_inv_sort … H)
| elim (crr_inv_lref … H) -H #L #V #H
- elim (ldrop_inv_atom1 … H) -H #H destruct
+ elim (drop_inv_atom1 … H) -H #H destruct
| elim (crr_inv_gref … H)
]
qed-.