1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 include "basic_2/rt_computation/rsx_csx.ma".
16 include "basic_2/rt_computation/jsx_drops.ma".
17 include "basic_2/rt_computation/jsx_lsubr.ma".
19 (* COMPATIBILITY OF STRONG NORMALIZATION FOR EXTENDED RT-TRANSITION *********)
21 (* Properties with strongly rt-normalizing terms ****************************)
23 lemma jsx_csx_conf (G):
25 ∀T. ❨G,L1❩ ⊢ ⬈*𝐒 T → ❨G,L2❩ ⊢ ⬈*𝐒 T.
26 /3 width=5 by jsx_fwd_lsubr, csx_lsubr_conf/ qed-.
28 (* Properties with strongly rt-normalizing referred local environments ******)
30 (* Note: Try by induction on the 2nd premise by generalizing V with f *)
31 lemma rsx_jsx_trans (G):
32 ∀L1,V. G ⊢ ⬈*𝐒[V] L1 →
33 ∀L2. G ⊢ L1 ⊒ L2 → G ⊢ ⬈*𝐒[V] L2.
34 #G #L1 #V @(fqup_wf_ind_eq (Ⓕ) … G L1 V) -G -L1 -V
35 #G0 #L0 #V0 #IH #G #L1 * *
37 | #i #HG #HL #HV #H #L2 #HL12 destruct
38 elim (rsx_inv_lref_drops … H) -H [|*: * ]
40 lapply (jsx_fwd_drops_atom_sn … HL12 … HL1) -L1
41 /2 width=1 by rsx_lref_atom_drops/
43 elim (jsx_fwd_drops_unit_sn … HL12 … HLK1) -L1 [| // ] #K2 #HK12 #HLK2
44 /2 width=3 by rsx_lref_unit_drops/
45 | #I #K1 #V1 #HLK1 #HV1 #HK1
46 elim (jsx_fwd_drops_pair_sn … HL12 … HLK1) -HL12 [3: // |*: * ]
48 /4 width=6 by rsx_lref_pair_drops, jsx_csx_conf, fqup_lref/
50 /2 width=3 by rsx_lref_unit_drops/
54 | #p #I #V #T #HG #HL #HV #H #L2 #HL12 destruct
55 elim (rsx_inv_bind_void … H) -H #HV #HT
56 /4 width=4 by jsx_bind, rsx_bind_void/
57 | #I #V #T #HG #HL #HV #H #L2 #HL12 destruct
58 elim (rsx_inv_flat … H) -H #HV #HT
59 /3 width=4 by rsx_flat/