X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Fcontribs%2FLAMBDA-TYPES%2FUnified-Sub%2FLift%2Ffun.ma;h=d26bdb0e704b2dbb19f4ea00e1fe006ec99d8d77;hb=5c1b44dfefa085fbb56e23047652d3650be9d855;hp=fd794fe9ba18ad784e24a589c2f57e1fde240c6a;hpb=2b95f946837707c6ad30d1b8317d73c55cda3dc8;p=helm.git diff --git a/helm/software/matita/contribs/LAMBDA-TYPES/Unified-Sub/Lift/fun.ma b/helm/software/matita/contribs/LAMBDA-TYPES/Unified-Sub/Lift/fun.ma index fd794fe9b..d26bdb0e7 100644 --- a/helm/software/matita/contribs/LAMBDA-TYPES/Unified-Sub/Lift/fun.ma +++ b/helm/software/matita/contribs/LAMBDA-TYPES/Unified-Sub/Lift/fun.ma @@ -12,26 +12,34 @@ (* *) (**************************************************************************) -set "baseuri" "cic:/matita/LAMBDA-TYPES/Unified-Sub/Lift/fun". + include "Lift/inv.ma". (* Functional properties ****************************************************) -(* + theorem lift_total: \forall l, t, i. \exists u. Lift l i t u. intros 2. elim t; clear t; - [ -*) + [ autobatch + | lapply (nle_gt_or_le n i). decompose; + [ autobatch + | lapply (nplus_total l n). decompose. autobatch + ] + | lapply (H i1). lapply (H1 (succ i1)). decompose. autobatch + | lapply (H i1). lapply (H1 i1). decompose. autobatch + ]. +qed. + theorem lift_mono: \forall l,i,t,t1. Lift l i t t1 \to \forall t2. Lift l i t t2 \to t1 = t2. intros 5. elim H; clear H i t t1; [ lapply linear lift_inv_sort_1 to H1 | lapply linear lift_inv_lref_1_gt to H2, H1 - | lapply linear lift_inv_lref_1_le to H3, H1, H2 + | lapply linear lift_inv_lref_1_le_nplus to H3, H1, H2 | lapply linear lift_inv_bind_1 to H5. decompose | lapply linear lift_inv_flat_1 to H5. decompose - ]; subst; auto. + ]; destruct; autobatch. qed. theorem lift_inj: \forall l,i,t1,t. Lift l i t1 t \to @@ -40,10 +48,10 @@ theorem lift_inj: \forall l,i,t1,t. Lift l i t1 t \to intros 5. elim H; clear H i t1 t; [ lapply linear lift_inv_sort_2 to H1 | lapply linear lift_inv_lref_2_gt to H2, H1 - | lapply nle_nplus to H2 as H. (**) + | lapply nle_nplus to H2 as H. lapply linear nle_trans to H1, H as H0. - lapply lift_inv_lref_2_le to H3, H0, H2 + lapply lift_inv_lref_2_le_nplus to H3, H0, H2 | lapply linear lift_inv_bind_2 to H5. decompose | lapply linear lift_inv_flat_2 to H5. decompose - ]; subst; auto. + ]; destruct; autobatch. qed.