From abb05f68e516cc9ad9160a9bca4a2f4158990153 Mon Sep 17 00:00:00 2001 From: Ferruccio Guidi Date: Fri, 4 Nov 2011 15:48:04 +0000 Subject: [PATCH] - lib: one lemma about equality was missing - lambda_delta: one inversion lemma closed --- .../matita/contribs/lambda_delta/Basic_2/grammar/term.ma | 7 +++++-- .../contribs/lambda_delta/Basic_2/reducibility/tnf.ma | 4 +++- matita/matita/lib/basics/logic.ma | 7 ++++++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/matita/matita/contribs/lambda_delta/Basic_2/grammar/term.ma b/matita/matita/contribs/lambda_delta/Basic_2/grammar/term.ma index ce8357d21..f119e6de0 100644 --- a/matita/matita/contribs/lambda_delta/Basic_2/grammar/term.ma +++ b/matita/matita/contribs/lambda_delta/Basic_2/grammar/term.ma @@ -41,7 +41,10 @@ interpretation "term flat construction (binary)" 'SFlat I T1 T2 = (TPair (Flat I lemma discr_tpair_xy_x: ∀I,T,V. 𝕔{I} V. T = V → False. #I #T #V elim V -V [ #J #H destruct -| #J #W #U #IHW #_ #H destruct -I /2/ (**) (* improve context after destruct *) +| #J #W #U #IHW #_ #H destruct +(* + (generalize in match e1) -e1 >e0 normalize +*) -I /2/ (**) (* destruct: one quality is not simplified, the destucted equality is not erased *) ] qed. @@ -49,7 +52,7 @@ qed. lemma discr_tpair_xy_y: ∀I,V,T. 𝕔{I} V. T = T → False. #I #V #T elim T -T [ #J #H destruct -| #J #W #U #_ #IHU #H destruct -I V /2/ (**) (* improve context after destruct *) +| #J #W #U #_ #IHU #H destruct -I V /2/ (**) (* destruct: the destucted equality is not erased *) ] qed. diff --git a/matita/matita/contribs/lambda_delta/Basic_2/reducibility/tnf.ma b/matita/matita/contribs/lambda_delta/Basic_2/reducibility/tnf.ma index 5d55e2ae6..5868a5c93 100644 --- a/matita/matita/contribs/lambda_delta/Basic_2/reducibility/tnf.ma +++ b/matita/matita/contribs/lambda_delta/Basic_2/reducibility/tnf.ma @@ -47,7 +47,9 @@ qed. axiom tnf_inv_abbr: ∀V,T. ℕ[𝕔{Abbr}V.T] → False. -axiom tnf_inv_cast: ∀V,T. ℕ[𝕔{Cast}V.T] → False. +lemma tnf_inv_cast: ∀V,T. ℕ[𝕔{Cast}V.T] → False. +#V #T #H lapply (H T ?) -H /2/ +qed. (* Basic properties *********************************************************) diff --git a/matita/matita/lib/basics/logic.ma b/matita/matita/lib/basics/logic.ma index 2fbe45f37..d1dbfad77 100644 --- a/matita/matita/lib/basics/logic.ma +++ b/matita/matita/lib/basics/logic.ma @@ -32,7 +32,12 @@ lemma eq_rect_Type0_r: ∀A.∀a.∀P: ∀x:A. eq ? x a → Type[0]. P a (refl A a) → ∀x.∀p:eq ? x a.P x p. #A #a #P #H #x #p (generalize in match H) (generalize in match P) cases p; //; qed. - + +lemma eq_rect_Type1_r: + ∀A.∀a.∀P: ∀x:A. eq ? x a → Type[1]. P a (refl A a) → ∀x.∀p:eq ? x a.P x p. + #A #a #P #H #x #p (generalize in match H) (generalize in match P) + cases p; //; qed. + lemma eq_rect_Type2_r: ∀A.∀a.∀P: ∀x:A. eq ? x a → Type[2]. P a (refl A a) → ∀x.∀p:eq ? x a.P x p. #A #a #P #H #x #p (generalize in match H) (generalize in match P) -- 2.39.2