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 "static_2/relocation/scl.ma".
16 include "basic_2/rt_computation/rdsx_drops.ma".
17 include "basic_2/rt_computation/rdsx_lpxs.ma".
18 include "basic_2/rt_computation/sdsx.ma".
20 axiom pippo (h) (f) (G) (V:term):
21 āL1. G ā¢ ā¬*[h,V] šā¦L1ā¦ ā
22 āL2. L1 āā§[f] L2 ā G ā¢ ā¬*[h,V] šā¦L2ā¦.
25 (* STRONGLY NORMALIZING SELECTED LOCAL ENV.S FOR UNBOUND RT-TRANSITION ******)
27 (* Properties with strongly normalizing referred local environments *********)
29 (* Basic_2A1: uses: lsx_cpx_trans_lcosx *)
30 lemma rdsx_cpx_trans_sdsx (h):
31 āG,L0,T1,T2. ā¦G,L0ā¦ ā¢ T1 ā¬[h] T2 ā
32 āf. G ā¢ ā¬*[h,f] šā¦L0ā¦ ā āL. L0 āā§[f] L ā
33 G ā¢ ā¬*[h,T1] šā¦Lā¦ ā G ā¢ ā¬*[h,T2] šā¦Lā¦.
34 #h #G #L0 #T1 #T2 #H @(cpx_ind ā¦ H) -G -L0 -T1 -T2
37 | #I #G #K0 #V1 #V2 #W2 #_ #IH #HVW2 #g #H1 #Y #H2 #H3
38 elim (sdsx_inv_pair_gen ā¦ H1) -H1 *
40 elim (scl_inv_push_sn ā¦ H2) -H2 #K #HK #H destruct
41 /4 width=8 by rdsx_lifts, rdsx_fwd_pair, drops_refl, drops_drop/
42 | #f #HV1 #HK0 #H destruct
43 elim (scl_inv_next_sn ā¦ H2) -H2 #K #HK #H destruct
44 /4 width=8 by pippo, rdsx_lifts, drops_refl, drops_drop/
46 | #I0 #G #K0 #T #U #i #_ #IH #HTU #g #H1 #Y #H2 #H3
47 lapply (sdsx_fwd_bind ā¦ H1) -H1 #HK0
48 elim (scl_fwd_bind_sn ā¦ H2) -H2 #I #K #HK #H destruct
49 /6 width=8 by rdsx_inv_lifts, rdsx_lifts, drops_refl, drops_drop/
50 | #p #I #G #L0 #V1 #V2 #T1 #T2 #_ #_ #IHV12 #IHT12 #f #H1 #L #H2 #H3
51 elim (rdsx_inv_bind_void ā¦ H3) -H3 #HV1 #HT1
54 | @(IHT12 (āf) ā¦ HT1)
56 | /2 width=1 by scl_next/
58 /4 width=2 by lsubsx_pair, rdsx_bind_void/
59 | #I0 #G #L0 #V1 #V2 #T1 #T2 #_ #_ #IHV12 #IHT12 #f #L #HL0 #HL
60 elim (rdsx_inv_flat ā¦ HL) -HL /3 width=2 by rdsx_flat/
61 | #G #L0 #V #U1 #T1 #T2 #HTU1 #_ #IHT12 #f #L #HL0 #HL
62 elim (rdsx_inv_bind ā¦ HL) -HL #HV #HU1
63 /5 width=8 by rdsx_inv_lifts, drops_refl, drops_drop/
64 | #G #L0 #V #T1 #T2 #_ #IHT12 #f #L #HL0 #HL
65 elim (rdsx_inv_flat ā¦ HL) -HL /2 width=2 by/
66 | #G #L0 #V1 #V2 #T #_ #IHV12 #f #L #HL0 #HL
67 elim (rdsx_inv_flat ā¦ HL) -HL /2 width=2 by/
68 | #p #G #L0 #V1 #V2 #W1 #W2 #T1 #T2 #_ #_ #_ #IHV12 #IHW12 #IHT12 #f #L #HL0 #HL
69 elim (rdsx_inv_flat ā¦ HL) -HL #HV1 #HL
70 elim (rdsx_inv_bind ā¦ HL) -HL #HW1 #HT1
71 /4 width=2 by lsubsx_pair, rdsx_bind_void, rdsx_flat/
72 | #p #G #L0 #V1 #V2 #U2 #W1 #W2 #T1 #T2 #_ #_ #_ #IHV12 #IHW12 #IHT12 #HVU2 #f #L #HL0 #HL
73 elim (rdsx_inv_flat ā¦ HL) -HL #HV1 #HL
74 elim (rdsx_inv_bind ā¦ HL) -HL #HW1 #HT1
75 /6 width=8 by lsubsx_pair, rdsx_lifts, rdsx_bind_void, rdsx_flat, drops_refl, drops_drop/
79 (* Advanced properties of strongly normalizing referred local environments **)
81 (* Basic_2A1: uses: lsx_cpx_trans_O *)
82 lemma rdsx_cpx_trans (h):
83 āG,L,T1,T2. ā¦G,Lā¦ ā¢ T1 ā¬[h] T2 ā
84 G ā¢ ā¬*[h,T1] šā¦Lā¦ ā G ā¢ ā¬*[h,T2] šā¦Lā¦.
85 /3 width=6 by rdsx_cpx_trans_lsubsx, lsubsx_refl/ qed-.
87 lemma rdsx_cpxs_trans (h):
88 āG,L,T1,T2. ā¦G,Lā¦ ā¢ T1 ā¬*[h] T2 ā
89 G ā¢ ā¬*[h,T1] šā¦Lā¦ ā G ā¢ ā¬*[h,T2] šā¦Lā¦.
91 @(cpxs_ind_dx ???????? H) -T1 //
92 /3 width=3 by rdsx_cpx_trans/