(**************************************************************************) (* ___ *) (* ||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 "delayed_updating/reduction/dfr.ma". include "delayed_updating/reduction/ifr.ma". include "delayed_updating/substitution/fsubst_unwind.ma". include "delayed_updating/substitution/fsubst_eq.ma". include "delayed_updating/substitution/unwind_constructors.ma". include "delayed_updating/substitution/unwind_preterm_eq.ma". include "delayed_updating/substitution/unwind_structure_depth.ma". include "delayed_updating/substitution/unwind_depth.ma". include "delayed_updating/syntax/prototerm_proper_constructors.ma". include "delayed_updating/syntax/path_structure_depth.ma". include "ground/relocation/tr_uni_compose.ma". include "ground/relocation/tr_pap_pushs.ma". (* DELAYED FOCUSED REDUCTION ************************************************) lemma tr_uni_eq_repl (n1) (n2): n1 = n2 → 𝐮❨n1❩ ≗ 𝐮❨n2❩. // qed. axiom pippo (b) (q) (n): ↑❘q❘ = (↑[q]𝐢)@❨n❩ → ↑❘q❘+❘b❘= (↑[b●𝗟◗q]𝐢)@❨n+❘b❘❩. lemma unwind_rmap_tls_eq_id (p) (n): ❘p❘ = ↑[p]𝐢@❨n❩ → (𝐢) ≗ ⇂*[n]↑[p]𝐢. #p @(list_ind_rcons … p) -p [ #n tr_pushs_swap tr_id_unfold #Hn lapply (pippo … b … Hn) -Hn #Hn @tr_compose_eq_repl [