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=08d6704b2c30343bf860fcf6fb6492026ef6413b;hb=e92710b1d9774a6491122668c8463b8658114610;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..08d6704b2 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,32 @@ (* *) (**************************************************************************) -set "baseuri" "cic:/matita/LAMBDA-TYPES/Unified-Sub/Lift/fun". - -include "Lift/inv.ma". +include "Unified-Sub/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 +46,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.