From 9084ed69b2ad9c9c2899def8a12dd907f9ce4ced Mon Sep 17 00:00:00 2001 From: Ferruccio Guidi Date: Wed, 29 Jun 2022 14:22:26 +0200 Subject: [PATCH] update in delayed updating + two lemmas on path_head + invocation added to first file --- .../delayed_updating/syntax/label.ma | 4 ++ .../delayed_updating/syntax/path_head.ma | 44 +++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/syntax/label.ma b/matita/matita/contribs/lambdadelta/delayed_updating/syntax/label.ma index 74318f333..98e63f06b 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/syntax/label.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/syntax/label.ma @@ -12,6 +12,10 @@ (* *) (**************************************************************************) +(* A SYSTEM OF λ-CALCULUS WITH DELAYED UPDATING + * Initial invocation: - Patience on me to gain peace and perfection! - + *) + include "ground/arith/pnat.ma". include "delayed_updating/notation/functions/nodelabel_d_1.ma". include "delayed_updating/notation/functions/nodelabel_m_0.ma". diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_head.ma b/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_head.ma index 9cdfe620f..438c5e6a7 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_head.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_head.ma @@ -74,6 +74,11 @@ lemma path_head_S_sn (p) (n): (* Basic inversions *********************************************************) +lemma eq_inv_path_head_zero_dx (q) (p): + q = ↳[𝟎]p → 𝐞 = q. +#q * // +qed-. + lemma eq_inv_path_empty_head (p) (n): (𝐞) = ↳[n]p → 𝟎 = n. * @@ -88,3 +93,42 @@ lemma eq_inv_path_empty_head (p) (n): ] #H0 destruct ] qed-. + +(* Constructions with list_append *******************************************) + +lemma path_head_refl_append (p) (q) (n): + q = ↳[n]q → q = ↳[n](q●p). +#p #q elim q -q +[ #n #Hn <(eq_inv_path_empty_head … Hn) -Hn // +| #l #q #IH #n @(nat_ind_succ … n) -n + [ #Hq | #n #_ cases l [ #m ] ] + [ lapply (eq_inv_path_head_zero_dx … Hq) -Hq #Hq destruct + |