(**************************************************************************) (* ___ *) (* ||M|| *) (* ||A|| A project by Andrea Asperti *) (* ||T|| *) (* ||I|| Developers: *) (* ||T|| The HELM team. *) (* ||A|| http://helm.cs.unibo.it *) (* \ / *) (* \ / This file is distributed under the terms of the *) (* v GNU General Public License Version 2 *) (* *) (**************************************************************************) include "basic_2/substitution/fpa_fpa.ma". include "basic_2/multiple/fpas.ma". (* MULTIPLE AJUSTMENT *******************************************************) (* Advanced properties ******************************************************) lemma fpas_strip: ∀L0,L1,L2,T0,T1,T2,s. ⦃L0, T0⦄ ⇳[s] ⦃L1, T1⦄ → ⦃L0, T0⦄ ⇳*[s] ⦃L2, T2⦄ → ∃∃L,T. ⦃L1, T1⦄ ⇳*[s] ⦃L, T⦄ & ⦃L2, T2⦄ ⇳[s] ⦃L, T⦄. /3 width=4 by fpa_conf, bi_TC_strip/ qed-. (* Main properties **********************************************************) theorem fpas_conf: ∀s. bi_confluent … (fpas s). /3 width=4 by fpa_conf, bi_TC_confluent/ qed-. theorem fpas_trans: ∀s. bi_transitive … (fpas s). /2 width=4 by bi_TC_transitive/ qed-. theorem fpas_canc_sn: ∀L,L1,L2,T,T1,T2,s. ⦃L, T⦄ ⇳*[s] ⦃L1, T1⦄→ ⦃L, T⦄ ⇳*[s] ⦃L2, T2⦄ → ⦃L1, T1⦄ ⇳*[s] ⦃L2, T2⦄. /3 width=4 by fpas_trans, fpas_sym/ qed-. theorem fpas_canc_dx: ∀L1,L2,L,T1,T2,T,s. ⦃L1, T1⦄ ⇳*[s] ⦃L, T⦄ → ⦃L2, T2⦄ ⇳*[s] ⦃L, T⦄ → ⦃L1, T1⦄ ⇳*[s] ⦃L2, T2⦄. /3 width=4 by fpas_trans, fpas_sym/ qed-.