definition fpbg: tri_relation genv lenv term ≝
λG1,L1,T1,G2,L2,T2.
- â\88\83â\88\83G3,L3,T3,G4,L4,T4. â\9dªG1,L1,T1â\9d« â\89¥ â\9dªG3,L3,T3â\9d« & â\9dªG3,L3,T3â\9d« â\89» â\9dªG4,L4,T4â\9d« & â\9dªG4,L4,T4â\9d« â\89¥ â\9dªG2,L2,T2â\9d«.
+ â\88\83â\88\83G3,L3,T3,G4,L4,T4. â\9d¨G1,L1,T1â\9d© â\89¥ â\9d¨G3,L3,T3â\9d© & â\9d¨G3,L3,T3â\9d© â\89» â\9d¨G4,L4,T4â\9d© & â\9d¨G4,L4,T4â\9d© â\89¥ â\9d¨G2,L2,T2â\9d©.
interpretation
"proper parallel rst-computation (closure)"
(* Basic inversion lemmas ***************************************************)
lemma fpbg_inv_gen (G1) (G2) (L1) (L2) (T1) (T2):
- â\9dªG1,L1,T1â\9d« > â\9dªG2,L2,T2â\9d« →
- â\88\83â\88\83G3,L3,T3,G4,L4,T4. â\9dªG1,L1,T1â\9d« â\89¥ â\9dªG3,L3,T3â\9d« & â\9dªG3,L3,T3â\9d« â\89» â\9dªG4,L4,T4â\9d« & â\9dªG4,L4,T4â\9d« â\89¥ â\9dªG2,L2,T2â\9d«.
+ â\9d¨G1,L1,T1â\9d© > â\9d¨G2,L2,T2â\9d© →
+ â\88\83â\88\83G3,L3,T3,G4,L4,T4. â\9d¨G1,L1,T1â\9d© â\89¥ â\9d¨G3,L3,T3â\9d© & â\9d¨G3,L3,T3â\9d© â\89» â\9d¨G4,L4,T4â\9d© & â\9d¨G4,L4,T4â\9d© â\89¥ â\9d¨G2,L2,T2â\9d©.
// qed-.
(* Basic properties *********************************************************)
lemma fpbg_intro (G3) (G4) (L3) (L4) (T3) (T4):
∀G1,L1,T1,G2,L2,T2.
- â\9dªG1,L1,T1â\9d« â\89¥ â\9dªG3,L3,T3â\9d« â\86\92 â\9dªG3,L3,T3â\9d« â\89» â\9dªG4,L4,T4â\9d« →
- â\9dªG4,L4,T4â\9d« â\89¥ â\9dªG2,L2,T2â\9d« â\86\92 â\9dªG1,L1,T1â\9d« > â\9dªG2,L2,T2â\9d«.
+ â\9d¨G1,L1,T1â\9d© â\89¥ â\9d¨G3,L3,T3â\9d© â\86\92 â\9d¨G3,L3,T3â\9d© â\89» â\9d¨G4,L4,T4â\9d© →
+ â\9d¨G4,L4,T4â\9d© â\89¥ â\9d¨G2,L2,T2â\9d© â\86\92 â\9d¨G1,L1,T1â\9d© > â\9d¨G2,L2,T2â\9d©.
/2 width=9 by ex3_6_intro/ qed.
(* Basic_2A1: was: fpbg_fpbq_trans *)
lemma fpbg_fpb_trans:
∀G1,G,G2,L1,L,L2,T1,T,T2.
- â\9dªG1,L1,T1â\9d« > â\9dªG,L,Tâ\9d« â\86\92 â\9dªG,L,Tâ\9d« â\89½ â\9dªG2,L2,T2â\9d« →
- â\9dªG1,L1,T1â\9d« > â\9dªG2,L2,T2â\9d«.
+ â\9d¨G1,L1,T1â\9d© > â\9d¨G,L,Tâ\9d© â\86\92 â\9d¨G,L,Tâ\9d© â\89½ â\9d¨G2,L2,T2â\9d© →
+ â\9d¨G1,L1,T1â\9d© > â\9d¨G2,L2,T2â\9d©.
#G1 #G #G2 #L1 #L #L2 #T1 #T #T2 #H1 #H2
elim (fpbg_inv_gen … H1) -H1
/3 width=13 by fpbs_strap1, fpbg_intro/
(* Basic_2A1: was: fpbq_fpbg_trans *)
lemma fpb_fpbg_trans:
∀G1,G,G2,L1,L,L2,T1,T,T2.
- â\9dªG1,L1,T1â\9d« â\89½ â\9dªG,L,Tâ\9d« â\86\92 â\9dªG,L,Tâ\9d« > â\9dªG2,L2,T2â\9d« →
- â\9dªG1,L1,T1â\9d« > â\9dªG2,L2,T2â\9d«.
+ â\9d¨G1,L1,T1â\9d© â\89½ â\9d¨G,L,Tâ\9d© â\86\92 â\9d¨G,L,Tâ\9d© > â\9d¨G2,L2,T2â\9d© →
+ â\9d¨G1,L1,T1â\9d© > â\9d¨G2,L2,T2â\9d©.
#G1 #G #G2 #L1 #L #L2 #T1 #T #T2 #H1 #H2
elim (fpbg_inv_gen … H2) -H2
/3 width=13 by fpbs_strap2, fpbg_intro/