(* Advanced properties ******************************************************)
(* Basic_2A1: uses: lsx_atom *)
-lemma lfsx_atom (h) (o) (G) (T): G ā¢ ā¬*[h, o, T] šā¦āā¦.
-#h #o #G #T
+lemma lfsx_atom (h) (G) (T): G ā¢ ā¬*[h, T] šā¦āā¦.
+#h #G #T
@rdsx_intro #Y #H #HnT
lapply (lpx_inv_atom_sn ā¦ H) -H #H destruct
elim HnT -HnT //
(* Basic_2A1: uses: lsx_fwd_bind_dx *)
(* Note: the exclusion binder (ā§) makes this more elegant and much simpler *)
(* Note: the old proof without the exclusion binder requires lreq *)
-lemma rdsx_fwd_bind_dx (h) (o) (G):
- āp,I,L,V,T. G ā¢ ā¬*[h, o, ā{p,I}V.T] šā¦Lā¦ ā
- G ā¢ ā¬*[h, o, T] šā¦L.ā§ā¦.
-#h #o #G #p #I #L #V #T #H
+lemma rdsx_fwd_bind_dx (h) (G):
+ āp,I,L,V,T. G ā¢ ā¬*[h, ā{p,I}V.T] šā¦Lā¦ ā
+ G ā¢ ā¬*[h, T] šā¦L.ā§ā¦.
+#h #G #p #I #L #V #T #H
@(rdsx_ind ā¦ H) -L #L1 #_ #IH
@rdsx_intro #Y #H #HT
elim (lpx_inv_unit_sn ā¦ H) -H #L2 #HL12 #H destruct
(* Advanced inversion lemmas ************************************************)
(* Basic_2A1: uses: lsx_inv_bind *)
-lemma rdsx_inv_bind (h) (o) (G): āp,I,L,V,T. G ā¢ ā¬*[h, o, ā{p,I}V.T] šā¦Lā¦ ā
- ā§ā§ G ā¢ ā¬*[h, o, V] šā¦Lā¦ & G ā¢ ā¬*[h, o, T] šā¦L.ā§ā¦.
+lemma rdsx_inv_bind (h) (G):
+ āp,I,L,V,T. G ā¢ ā¬*[h, ā{p,I}V.T] šā¦Lā¦ ā
+ ā§ā§ G ā¢ ā¬*[h, V] šā¦Lā¦ & G ā¢ ā¬*[h, T] šā¦L.ā§ā¦.
/3 width=4 by rdsx_fwd_pair_sn, rdsx_fwd_bind_dx, conj/ qed-.