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/syntax/ext2_tc.ma".
16 include "basic_2/relocation/lexs_tc.ma".
17 include "basic_2/relocation/lex.ma".
19 alias symbol "subseteq" = "relation inclusion".
21 (* GENERIC EXTENSION OF A CONTEXT-SENSITIVE REALTION FOR TERMS **************)
23 (* Inversion lemmas with transitive closure *********************************)
25 (* Basic_2A1: was: lpx_sn_LTC_TC_lpx_sn *)
26 lemma lex_inv_ltc: ∀R. c_reflexive … R →
27 lex (LTC … R) ⊆ TC … (lex R).
29 /5 width=11 by lexs_inv_tc_dx, lexs_co, ext2_inv_tc, ext2_refl, monotonic_TC, ex2_intro/
32 lemma s_rs_transitive_lex_inv_isid: ∀R. s_rs_transitive … R (λ_.lex R) →
33 s_rs_transitive_isid cfull (cext2 R).
34 #R #HR #f #Hf #L2 #T1 #T2 #H #L1 #HL12
36 [ /3 width=1 by ext2_inv_tc, ext2_unit/
38 @ext2_inv_tc @ext2_pair
39 @(HR … HV12) -HV12 /2 width=3 by ex2_intro/ (**) (* auto fails *)
43 (* Properties with transitive closure ***************************************)
45 (* Basic_2A1: was: TC_lpx_sn_inv_lpx_sn_LTC *)
46 lemma lex_ltc: ∀R. s_rs_transitive … R (λ_. lex R) →
47 TC … (lex R) ⊆ lex (LTC … R).
49 lapply (monotonic_TC … (lexs cfull (cext2 R) 𝐈𝐝) … HL12) -HL12
50 [ #L1 #L2 * /3 width=3 by lexs_eq_repl_fwd, eq_id_inv_isid/
51 | /5 width=9 by s_rs_transitive_lex_inv_isid, lexs_tc_dx, lexs_co, ext2_tc, ex2_intro/