]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambdadelta/basic_2A/etc/fpn/fpbc.etc
milestone update in ground_2 and basic_2A
[helm.git] / matita / matita / contribs / lambdadelta / basic_2A / etc / fpn / fpbc.etc
1 lemma fpb_fpbc_or_fpn: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ≽[h, g] ⦃G2, L2, T2⦄ →
2                        ⦃G1, L1, T1⦄ ≻[h, g] ⦃G2, L2, T2⦄ ∨
3                        ⦃G1, L1, T1⦄ ⊢ ➡[h,g] ⦃G2, L2, T2⦄.
4 #h #g #G1 #G2 #L1 #L2 #T1 #T2 * -G2 -L2 -T2
5 /3 width=1 by and3_intro, or_intror/
6 [ #G2 #L2 #T2 #H elim (fquq_inv_gen … H) -H [| * ]
7   /3 width=1 by fpbc_fqu, and3_intro, or_introl, or_intror/
8 | #T2 #HT12 elim (eq_term_dec T1 T2) #H destruct
9   /4 width=1 by and3_intro, or_introl, or_intror, fpbc_cpx/
10 ]
11 qed-.
12
13 lemma fpb_fpbc: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ≽[h, g] ⦃G2, L2, T2⦄ →
14                 (⦃G1, L1, T1⦄ ⋕ ⦃G2, L2, T2⦄ → ⊥) →
15                 ⦃G1, L1, T1⦄ ≻[h, g] ⦃G2, L2, T2⦄.
16 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H #H0 elim (fpb_fpbc_or_fpn … H) -H //
17 #H elim H0 -H0 /2 width=3 by fpn_fwd_bteq/
18 qed.
19
20 lemma fpbc_fwd_bteq: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ≻[h, g] ⦃G2, L2, T2⦄ →
21                      ⦃G1, L1, T1⦄ ⋕ ⦃G2, L2, T2⦄ → ⊥.
22 #h #g #G1 #G2 #L1 #L2 #T1 #T2 * -G2 -L2 -T2 /2 width=8 by fqu_fwd_bteq/
23 #T2 #_ #HT12 * /2 width=1 by/
24 qed-.