(* Basic eliminators ********************************************************)
lemma fpbs_ind: ∀h,G1,L1,T1. ∀Q:relation3 genv lenv term. Q G1 L1 T1 →
- (â\88\80G,G2,L,L2,T,T2. â¦\83G1,L1,T1â¦\84 â\89¥[h] â¦\83G,L,Tâ¦\84 â\86\92 â¦\83G,L,Tâ¦\84 â\89½[h] â¦\83G2,L2,T2â¦\84 → Q G L T → Q G2 L2 T2) →
- â\88\80G2,L2,T2. â¦\83G1,L1,T1â¦\84 â\89¥[h] â¦\83G2,L2,T2â¦\84 → Q G2 L2 T2.
+ (â\88\80G,G2,L,L2,T,T2. â\9dªG1,L1,T1â\9d« â\89¥[h] â\9dªG,L,Tâ\9d« â\86\92 â\9dªG,L,Tâ\9d« â\89½[h] â\9dªG2,L2,T2â\9d« → Q G L T → Q G2 L2 T2) →
+ â\88\80G2,L2,T2. â\9dªG1,L1,T1â\9d« â\89¥[h] â\9dªG2,L2,T2â\9d« → Q G2 L2 T2.
/3 width=8 by tri_TC_star_ind/ qed-.
lemma fpbs_ind_dx: ∀h,G2,L2,T2. ∀Q:relation3 genv lenv term. Q G2 L2 T2 →
- (â\88\80G1,G,L1,L,T1,T. â¦\83G1,L1,T1â¦\84 â\89½[h] â¦\83G,L,Tâ¦\84 â\86\92 â¦\83G,L,Tâ¦\84 â\89¥[h] â¦\83G2,L2,T2â¦\84 → Q G L T → Q G1 L1 T1) →
- â\88\80G1,L1,T1. â¦\83G1,L1,T1â¦\84 â\89¥[h] â¦\83G2,L2,T2â¦\84 → Q G1 L1 T1.
+ (â\88\80G1,G,L1,L,T1,T. â\9dªG1,L1,T1â\9d« â\89½[h] â\9dªG,L,Tâ\9d« â\86\92 â\9dªG,L,Tâ\9d« â\89¥[h] â\9dªG2,L2,T2â\9d« → Q G L T → Q G1 L1 T1) →
+ â\88\80G1,L1,T1. â\9dªG1,L1,T1â\9d« â\89¥[h] â\9dªG2,L2,T2â\9d« → Q G1 L1 T1.
/3 width=8 by tri_TC_star_ind_dx/ qed-.
(* Basic properties *********************************************************)
lemma fpbs_refl: ∀h. tri_reflexive … (fpbs h).
/2 width=1 by tri_inj/ qed.
-lemma fpbq_fpbs: â\88\80h,G1,G2,L1,L2,T1,T2. â¦\83G1,L1,T1â¦\84 â\89½[h] â¦\83G2,L2,T2â¦\84 →
- â¦\83G1,L1,T1â¦\84 â\89¥[h] â¦\83G2,L2,T2â¦\84.
+lemma fpbq_fpbs: â\88\80h,G1,G2,L1,L2,T1,T2. â\9dªG1,L1,T1â\9d« â\89½[h] â\9dªG2,L2,T2â\9d« →
+ â\9dªG1,L1,T1â\9d« â\89¥[h] â\9dªG2,L2,T2â\9d«.
/2 width=1 by tri_inj/ qed.
-lemma fpbs_strap1: â\88\80h,G1,G,G2,L1,L,L2,T1,T,T2. â¦\83G1,L1,T1â¦\84 â\89¥[h] â¦\83G,L,Tâ¦\84 →
- â¦\83G,L,Tâ¦\84 â\89½[h] â¦\83G2,L2,T2â¦\84 â\86\92 â¦\83G1,L1,T1â¦\84 â\89¥[h] â¦\83G2,L2,T2â¦\84.
+lemma fpbs_strap1: â\88\80h,G1,G,G2,L1,L,L2,T1,T,T2. â\9dªG1,L1,T1â\9d« â\89¥[h] â\9dªG,L,Tâ\9d« →
+ â\9dªG,L,Tâ\9d« â\89½[h] â\9dªG2,L2,T2â\9d« â\86\92 â\9dªG1,L1,T1â\9d« â\89¥[h] â\9dªG2,L2,T2â\9d«.
/2 width=5 by tri_step/ qed-.
-lemma fpbs_strap2: â\88\80h,G1,G,G2,L1,L,L2,T1,T,T2. â¦\83G1,L1,T1â¦\84 â\89½[h] â¦\83G,L,Tâ¦\84 →
- â¦\83G,L,Tâ¦\84 â\89¥[h] â¦\83G2,L2,T2â¦\84 â\86\92 â¦\83G1,L1,T1â¦\84 â\89¥[h] â¦\83G2,L2,T2â¦\84.
+lemma fpbs_strap2: â\88\80h,G1,G,G2,L1,L,L2,T1,T,T2. â\9dªG1,L1,T1â\9d« â\89½[h] â\9dªG,L,Tâ\9d« →
+ â\9dªG,L,Tâ\9d« â\89¥[h] â\9dªG2,L2,T2â\9d« â\86\92 â\9dªG1,L1,T1â\9d« â\89¥[h] â\9dªG2,L2,T2â\9d«.
/2 width=5 by tri_TC_strap/ qed-.
(* Basic_2A1: uses: lleq_fpbs fleq_fpbs *)
-lemma feqx_fpbs: â\88\80h,G1,G2,L1,L2,T1,T2. â¦\83G1,L1,T1â¦\84 â\89\9b â¦\83G2,L2,T2â¦\84 â\86\92 â¦\83G1,L1,T1â¦\84 â\89¥[h] â¦\83G2,L2,T2â¦\84.
+lemma feqx_fpbs: â\88\80h,G1,G2,L1,L2,T1,T2. â\9dªG1,L1,T1â\9d« â\89\9b â\9dªG2,L2,T2â\9d« â\86\92 â\9dªG1,L1,T1â\9d« â\89¥[h] â\9dªG2,L2,T2â\9d«.
/3 width=1 by fpbq_fpbs, fpbq_feqx/ qed.
(* Basic_2A1: uses: fpbs_lleq_trans *)
-lemma fpbs_feqx_trans: â\88\80h,G1,G,L1,L,T1,T. â¦\83G1,L1,T1â¦\84 â\89¥[h] â¦\83G,L,Tâ¦\84 →
- â\88\80G2,L2,T2. â¦\83G,L,Tâ¦\84 â\89\9b â¦\83G2,L2,T2â¦\84 â\86\92 â¦\83G1,L1,T1â¦\84 â\89¥[h] â¦\83G2,L2,T2â¦\84.
+lemma fpbs_feqx_trans: â\88\80h,G1,G,L1,L,T1,T. â\9dªG1,L1,T1â\9d« â\89¥[h] â\9dªG,L,Tâ\9d« →
+ â\88\80G2,L2,T2. â\9dªG,L,Tâ\9d« â\89\9b â\9dªG2,L2,T2â\9d« â\86\92 â\9dªG1,L1,T1â\9d« â\89¥[h] â\9dªG2,L2,T2â\9d«.
/3 width=9 by fpbs_strap1, fpbq_feqx/ qed-.
(* Basic_2A1: uses: lleq_fpbs_trans *)
-lemma feqx_fpbs_trans: â\88\80h,G,G2,L,L2,T,T2. â¦\83G,L,Tâ¦\84 â\89¥[h] â¦\83G2,L2,T2â¦\84 →
- â\88\80G1,L1,T1. â¦\83G1,L1,T1â¦\84 â\89\9b â¦\83G,L,Tâ¦\84 â\86\92 â¦\83G1,L1,T1â¦\84 â\89¥[h] â¦\83G2,L2,T2â¦\84.
+lemma feqx_fpbs_trans: â\88\80h,G,G2,L,L2,T,T2. â\9dªG,L,Tâ\9d« â\89¥[h] â\9dªG2,L2,T2â\9d« →
+ â\88\80G1,L1,T1. â\9dªG1,L1,T1â\9d« â\89\9b â\9dªG,L,Tâ\9d« â\86\92 â\9dªG1,L1,T1â\9d« â\89¥[h] â\9dªG2,L2,T2â\9d«.
/3 width=5 by fpbs_strap2, fpbq_feqx/ qed-.
lemma teqx_reqx_lpx_fpbs: ∀h,T1,T2. T1 ≛ T2 → ∀L1,L0. L1 ≛[T2] L0 →
- â\88\80G,L2. â¦\83G,L0â¦\84 â\8a¢ â¬\88[h] L2 â\86\92 â¦\83G,L1,T1â¦\84 â\89¥[h] â¦\83G,L2,T2â¦\84.
+ â\88\80G,L2. â\9dªG,L0â\9d« â\8a¢ â¬\88[h] L2 â\86\92 â\9dªG,L1,T1â\9d« â\89¥[h] â\9dªG,L2,T2â\9d«.
/4 width=5 by feqx_fpbs, fpbs_strap1, fpbq_lpx, feqx_intro_dx/ qed.
(* Basic_2A1: removed theorems 3: