(**************************************************************************) (* ___ *) (* ||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 "ground/arith/pnat_plus.ma". include "ground/relocation/tr_map.ma". include "delayed_updating/notation/functions/verticalbarat_2.ma". (* POSITIVE APPLICATION FOR STACKS OF BASIC RELOCATION MAPS *****************) rec definition sbr_pap (i: pnat) on i: tr_map → pnat. * #p #f cases i -i [ @(p) | #i cases p -p [ lapply (sbr_pap i f) -sbr_pap -i -f #i @(↑i) | #p @(i+↑p) ] ] defined. interpretation "functional positive application (stack of relocation maps)" 'VerticalBarAt f i = (sbr_pap i f). (* Basic constructions ******************************************************) lemma sbr_pap_unfold_unit (f): ∀p. p = (p⨮f)❘@❨𝟏❩. // qed. lemma sbr_pap_unfold_unit_succ (f): ∀i. ↑(f❘@❨i❩) = (𝟏⨮f)❘@❨↑i❩. // qed. lemma sbr_pap_unfold_succ_bi (f): ∀p,i. i+↑p = (↑p⨮f)❘@❨↑i❩. // qed.