(* CONTEXT-SENSITIVE EXCLUSION FROM FREE VARIABLES **************************)
+(* Advanced inversion lemmas ************************************************)
+
+lemma cofrees_inv_lref_be: āL,d,i,j. L ā¢ i ~Ļµ š
*[d]ā¦#jā¦ ā d ā¤ yinj j ā j < i ā
+ āI,K,W. ā©[j]L ā” K.ā{I}W ā K ā¢ i-j-1 ~Ļµ š
*[yinj 0]ā¦Wā¦.
+#L #d #i #j #Hj #Hdj #Hji #I #K #W1 #HLK #W2 #HW12 elim (lift_total W2 0 (j+1))
+#X2 #HWX2 elim (Hj X2) /2 width=7 by cpys_subst_Y2/ -I -L -K -W1 -d
+#Z2 #HZX2 elim (lift_div_le ā¦ HWX2 (i-j-1) 1 Z2) -HWX2 /2 width=2 by ex_intro/
+>minus_plus <plus_minus_m_m //
+qed-.
+
+lemma cofrees_inv_be: āL,U,d,i. L ā¢ i ~Ļµ š
*[d]ā¦Uā¦ ā āj. (āT. ā§[j, 1] T ā” U ā ā„) ā
+ āI,K,W. ā©[j]L ā” K.ā{I}W ā d ā¤ yinj j ā j < i ā K ā¢ i-j-1 ~Ļµ š
*[yinj 0]ā¦Wā¦.
+#L #U @(f2_ind ā¦ rfw ā¦ L U) -L -U
+#n #IH #L * *
+[ -IH #k #_ #d #i #_ #j #H elim (H (āk)) -H //
+| -IH #j #_ #d #i #Hi0 #j0 #H <(nlift_inv_lref_be_SO ā¦ H) -j0
+ /2 width=9 by cofrees_inv_lref_be/
+| -IH #p #_ #d #i #_ #j #H elim (H (Ā§p)) -H //
+| #a #J #W #U #Hn #d #i #H1 #j #H2 #I #K #V #HLK #Hdj #Hji destruct
+ elim (cofrees_inv_bind ā¦ H1) -H1 #HW #HU
+ elim (nlift_inv_bind ā¦ H2) -H2 [ -HU /3 width=9 by/ ]
+ -HW #HnU lapply (IH ā¦ HU ā¦ HnU I K V ? ? ?)
+ /2 width=1 by ldrop_drop, yle_succ, lt_minus_to_plus/ -a -I -J -L -W -U -d
+ >minus_plus_plus_l //
+| #J #W #U #Hn #d #i #H1 #j #H2 #I #K #V #HLK #Hdj #Hji destruct
+ elim (cofrees_inv_flat ā¦ H1) -H1 #HW #HU
+ elim (nlift_inv_flat ā¦ H2) -H2 [ /3 width=9 by/ ]
+ #HnU @(IH ā¦ HU ā¦ HnU ā¦ HLK) // (**) (* full auto fails *)
+]
+qed-.
+
(* Advanced properties ******************************************************)
lemma cofrees_lref_skip: āL,d,i,j. j < i ā yinj j < d ā L ā¢ i ~Ļµ š
*[d]ā¦#jā¦.
[ -n #Hij elim H -H /2 width=5 by cofrees_lref_lt/
| -H -n #H destruct /3 width=7 by lift_inv_lref2_be, ex2_intro/
| #Hji elim (frees_inv_lref_gt ā¦ H) // -H
- #I #K #W1 #HLK #H #Hdj elim (IH ā¦ H) /2 width=2 by ldrop_fwd_rfw/ -H -n
+ #I #K #W1 #HLK #H #Hdj elim (IH ā¦ H) /2 width=3 by ldrop_fwd_rfw/ -H -n
#W2 #HW12 #HnW2 elim (lift_total W2 0 (j+1))
#U2 #HWU2 @(ex2_intro ā¦ U2) /2 width=7 by cpys_subst_Y2/ -I -L -K -W1 -d
#T2 #HTU2 elim (lift_div_le ā¦ HWU2 (i-j-1) 1 T2) /2 width=2 by/ -W2
#L #d #i #R #IH1 #IH2 #U1 #H elim (frees_inv_gen ā¦ H) -H
#U2 #H #HnU2 @(cpys_ind_dx ā¦ H) -U1 /4 width=8 by cofrees_inv_gen/
qed-.
+
+(* Advanced negated properties **********************************************)
+
+lemma frees_be: āI,L,K,W,j. ā©[j]L ā” K.ā{I}W ā
+ āi. j < i ā (K ā¢ i-j-1 ~Ļµ š
*[yinj 0]ā¦Wā¦ ā ā„) ā
+ āU. (āT. ā§[j, 1] T ā” U ā ā„) ā
+ ād. d ā¤ yinj j ā (L ā¢ i ~Ļµ š
*[d]ā¦Uā¦ ā ā„).
+/4 width=11 by cofrees_inv_be/ qed-.