From 4939d8280cb3467cd8fa648b1cea04f74d71e8b7 Mon Sep 17 00:00:00 2001 From: Ferruccio Guidi Date: Wed, 7 Dec 2022 17:46:39 +0100 Subject: [PATCH] update in ground + head-tail decomposition of a relocation map + injectivity of pnpred --- .../ground/arith/nat_plus_pplus.ma | 28 +++++++++++++++ .../lambdadelta/ground/arith/nat_pred_succ.ma | 9 +++++ .../ground/arith/nat_rplus_pplus.ma | 6 ++++ .../lambdadelta/ground/lib/stream_hdtl_eq.ma | 15 ++++++++ .../lambdadelta/ground/relocation/nap.ma | 34 ++++++++++++++++++- .../ground/relocation/tr_pap_hdtl.ma | 25 ++++++++++++++ .../ground/relocation/tr_pap_hdtl_eq.ma | 26 ++++++++++++++ .../lambdadelta/ground/relocation/xap.ma | 9 +++-- .../lambdadelta/ground/web/ground_src.tbl | 4 +-- 9 files changed, 150 insertions(+), 6 deletions(-) create mode 100644 matita/matita/contribs/lambdadelta/ground/arith/nat_plus_pplus.ma create mode 100644 matita/matita/contribs/lambdadelta/ground/relocation/tr_pap_hdtl.ma create mode 100644 matita/matita/contribs/lambdadelta/ground/relocation/tr_pap_hdtl_eq.ma diff --git a/matita/matita/contribs/lambdadelta/ground/arith/nat_plus_pplus.ma b/matita/matita/contribs/lambdadelta/ground/arith/nat_plus_pplus.ma new file mode 100644 index 000000000..d176fae49 --- /dev/null +++ b/matita/matita/contribs/lambdadelta/ground/arith/nat_plus_pplus.ma @@ -0,0 +1,28 @@ +(**************************************************************************) +(* ___ *) +(* ||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/nat_rplus_pplus.ma". +include "ground/arith/nat_plus_rplus.ma". + +(* ADDITION FOR NON-NEGATIVE INTEGERS ***************************************) + +lemma nplus_inj_bi (p) (q): + ninj (pplus p q) = nplus (ninj p) (ninj q). +// qed. + +lemma nplus_pnpred_sn (p) (q): + pnpred (p + q) = nplus (pnpred p) (ninj q). +#p #q +nplus_comm >nrplus_pnpred_dx // +qed. diff --git a/matita/matita/contribs/lambdadelta/ground/arith/nat_pred_succ.ma b/matita/matita/contribs/lambdadelta/ground/arith/nat_pred_succ.ma index 4a6e23b01..5472d7c1b 100644 --- a/matita/matita/contribs/lambdadelta/ground/arith/nat_pred_succ.ma +++ b/matita/matita/contribs/lambdadelta/ground/arith/nat_pred_succ.ma @@ -43,6 +43,15 @@ lemma npred_succ (n): n = ↓↑n. * // qed. +(* Basic inversions *********************************************************) + +lemma eq_inv_pnpred_bi: + injective … pnpred. +#p1 #p2 #Hp +>(npsucc_pred p1) >(npsucc_pred p2) +nrplus_npsucc_sn nrplus_npsucc_sn H0 -H0 diff --git a/matita/matita/contribs/lambdadelta/ground/web/ground_src.tbl b/matita/matita/contribs/lambdadelta/ground/web/ground_src.tbl index 80d76fbe0..81aeb39e9 100644 --- a/matita/matita/contribs/lambdadelta/ground/web/ground_src.tbl +++ b/matita/matita/contribs/lambdadelta/ground/web/ground_src.tbl @@ -33,7 +33,7 @@ table { [ "tr_uni ( 𝐮❨?❩ )" "tr_uni_eq" "tr_uni_hdtl" "tr_uni_tls" "tr_uni_pap" "tr_uni_compose" * ] [ "tr_id ( 𝐢 ) " "tr_id_hdtl" "tr_id_pushs" "tr_id_tls" "tr_id_pap" "tr_id_compose" * ] [ "tr_compose ( ?∘? )" "tr_compose_eq" "tr_compose_tls" "tr_compose_pn" "tr_compose_pushs" "tr_compose_pap" "tr_compose_compose" * ] - [ "tr_pap ( ?@⧣❨?❩ )" "tr_pap_eq" "tr_pap_tls" "tr_pap_pat" "tr_pap_pn" "tr_pap_pushs" "tr_pap_pap" * ] + [ "tr_pap ( ?@⧣❨?❩ )" "tr_pap_eq" "tr_pap_hdtl" "tr_pap_hdtl_eq" "tr_pap_tls" "tr_pap_pat" "tr_pap_pn" "tr_pap_pushs" "tr_pap_pap" * ] [ "tr_pushs ( ⫯*[?]? )" * ] [ "tr_pn ( ⫯? ) ( ↑? )" "tr_pn_eq" "tr_pn_hdtl" "tr_pn_tls" * ] [ "tr_map ( 𝐭❨?❩ )" "tr_eq" "tr_nexts" "tr_pat" "tr_ist" * ] @@ -109,7 +109,7 @@ table { [ "nat_le ( ?≤? )" "nat_le_pred" "nat_le_plus" "nat_le_minus" "nat_le_minus_plus" "nat_le_max" * ] [ "nat_max ( ?∨? )" * ] [ "nat_minus ( ?-? )" "nat_minus_plus" * ] - [ "nat_plus ( ?+? )" "nat_plus_pred" "nat_plus_rplus" * ] + [ "nat_plus ( ?+? )" "nat_plus_pred" "nat_plus_rplus" "nat_plus_pplus" * ] [ "nat_rplus ( ?+? )" "nat_rplus_pplus" "nat_rplus_succ" * ] [ "nat_pred ( ↓? )" "nat_pred_succ" * ] [ "nat_succ ( ↑? )" "nat_succ_iter" "nat_succ_tri" * ] -- 2.39.2