1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 include "basic_2/substitution/fpa_fpa.ma".
16 include "basic_2/multiple/fpas.ma".
18 (* MULTIPLE AJUSTMENT *******************************************************)
20 (* Advanced properties ******************************************************)
22 lemma fpas_strip: ∀L0,L1,L2,T0,T1,T2,s. ⦃L0, T0⦄ ⇳[s] ⦃L1, T1⦄ → ⦃L0, T0⦄ ⇳*[s] ⦃L2, T2⦄ →
23 ∃∃L,T. ⦃L1, T1⦄ ⇳*[s] ⦃L, T⦄ & ⦃L2, T2⦄ ⇳[s] ⦃L, T⦄.
24 /3 width=4 by fpa_conf, bi_TC_strip/ qed-.
26 (* Main properties **********************************************************)
28 theorem fpas_conf: ∀s. bi_confluent … (fpas s).
29 /3 width=4 by fpa_conf, bi_TC_confluent/ qed-.
31 theorem fpas_trans: ∀s. bi_transitive … (fpas s).
32 /2 width=4 by bi_TC_transitive/ qed-.
34 theorem fpas_canc_sn: ∀L,L1,L2,T,T1,T2,s.
35 ⦃L, T⦄ ⇳*[s] ⦃L1, T1⦄→ ⦃L, T⦄ ⇳*[s] ⦃L2, T2⦄ → ⦃L1, T1⦄ ⇳*[s] ⦃L2, T2⦄.
36 /3 width=4 by fpas_trans, fpas_sym/ qed-.
38 theorem fpas_canc_dx: ∀L1,L2,L,T1,T2,T,s.
39 ⦃L1, T1⦄ ⇳*[s] ⦃L, T⦄ → ⦃L2, T2⦄ ⇳*[s] ⦃L, T⦄ → ⦃L1, T1⦄ ⇳*[s] ⦃L2, T2⦄.
40 /3 width=4 by fpas_trans, fpas_sym/ qed-.