1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 set "baseuri" "cic:/matita/LAMBDA-TYPES/Unified-Sub/Lift/fwd".
17 include "Lift/defs.ma".
19 theorem lift_sort_1: \forall q, h, d, k, x.
20 Lift q h d (leaf (sort k)) x \to
22 intros. inversion H; clear H; intros;
33 theorem lift_lref_1: \forall q, h, d, k, x.
34 Lift q h d (leaf (lref k)) x \to
35 (q = false \land x = leaf (lref k)) \lor
36 (q = true \land k < d \land x = leaf (lref k)) \lor
37 (q = true \land d <= k \land
38 \exists e. (k + h == e) \land x = leaf (lref e)
40 intros. inversion H; clear H; intros;
42 | destruct H3. clear H3. subst. auto depth = 4
43 | destruct H4. clear H4. subst. auto depth = 5
44 | destruct H5. clear H5. subst. auto depth = 5
51 theorem lift_head_1: \forall q, l, i, p, z, u1, t1, x.
52 Lift q l i (head p z u1 t1) x \to
56 Lift true l i u1 u2 \land Lift q l (succ i) t1 t2 \land
62 Lift true l i u1 u2 \land Lift q l i t1 t2 \land
65 ((p = q \to False) \land
67 Lift true l i u1 u2 \land Lift q l i t1 t2 \land
70 intros. inversion H; clear H; intros;
75 | destruct H7. clear H7 H1 H3. subst. auto depth = 10
76 | destruct H7. clear H7 H1 H3. subst. auto depth = 10
77 | destruct H8. clear H8 H2 H4. subst. auto depth = 7