(* Forward lemmas with restricted refinement for local environments *********)
lemma lsubf_fwd_lsubr_isdiv:
- â\88\80f1,f2,L1,L2. â¦\83L1,f1â¦\84 â«\83ð\9d\90\85+ â¦\83L2,f2â¦\84 â\86\92 ð\9d\9b\80â¦\83f1â¦\84 â\86\92 ð\9d\9b\80â¦\83f2â¦\84 → L1 ⫃ L2.
+ â\88\80f1,f2,L1,L2. â\9dªL1,f1â\9d« â«\83ð\9d\90\85+ â\9dªL2,f2â\9d« â\86\92 ð\9d\9b\80â\9dªf1â\9d« â\86\92 ð\9d\9b\80â\9dªf2â\9d« → L1 ⫃ L2.
#f1 #f2 #L1 #L2 #H elim H -f1 -f2 -L1 -L2
/4 width=3 by lsubr_bind, isdiv_inv_next/
[ #f1 #f2 #I1 #I2 #L1 #L2 #_ #_ #H
(* Properties with restricted refinement for local environments *************)
lemma lsubr_lsubf_isid:
- â\88\80L1,L2. L1 â«\83 L2 â\86\92 â\88\80f1,f2. ð\9d\90\88â¦\83f1â¦\84 â\86\92 ð\9d\90\88â¦\83f2â¦\84 â\86\92 â¦\83L1,f1â¦\84 â«\83ð\9d\90\85+ â¦\83L2,f2â¦\84.
+ â\88\80L1,L2. L1 â«\83 L2 â\86\92 â\88\80f1,f2. ð\9d\90\88â\9dªf1â\9d« â\86\92 ð\9d\90\88â\9dªf2â\9d« â\86\92 â\9dªL1,f1â\9d« â«\83ð\9d\90\85+ â\9dªL2,f2â\9d«.
#L1 #L2 #H elim H -L1 -L2
[ /3 width=1 by lsubf_atom, isid_inv_eq_repl/
| #I #L1 #L2 | #L1 #L2 #V #W | #I1 #I2 #L1 #L2 #V
qed.
lemma lsubr_lsubf:
- â\88\80f2,L2,T. L2 â\8a¢ ð\9d\90\85+â¦\83Tâ¦\84 ≘ f2 → ∀L1. L1 ⫃ L2 →
- â\88\80f1. L1 â\8a¢ ð\9d\90\85+â¦\83Tâ¦\84 â\89\98 f1 â\86\92 â¦\83L1,f1â¦\84 â«\83ð\9d\90\85+ â¦\83L2,f2â¦\84.
+ â\88\80f2,L2,T. L2 â\8a¢ ð\9d\90\85+â\9dªTâ\9d« ≘ f2 → ∀L1. L1 ⫃ L2 →
+ â\88\80f1. L1 â\8a¢ ð\9d\90\85+â\9dªTâ\9d« â\89\98 f1 â\86\92 â\9dªL1,f1â\9d« â«\83ð\9d\90\85+ â\9dªL2,f2â\9d«.
#f2 #L2 #T #H elim H -f2 -L2 -T
[ #f2 #L2 #s #Hf2 #L1 #HL12 #f1 #Hf1
lapply (frees_inv_sort … Hf1) -Hf1 /2 width=1 by lsubr_lsubf_isid/