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/inv".
17 include "Lift/defs.ma".
19 theorem lift_inv_sort_1: \forall l, i, h, x.
20 Lift l i (leaf (sort h)) x \to
22 intros. inversion H; clear H; intros;
31 theorem lift_inv_lref_1: \forall l, i, j1, x.
32 Lift l i (leaf (lref j1)) x \to
33 (i > j1 \land x = leaf (lref j1)) \lor
35 \exists j2. (l + j1 == j2) \land x = leaf (lref j2)
37 intros. inversion H; clear H; intros;
39 | destruct H2. clear H2. subst. auto
40 | destruct H3. clear H3. subst. auto depth = 5
46 theorem lift_inv_bind_1: \forall l, i, r, u1, t1, x.
47 Lift l i (intb r u1 t1) x \to
50 Lift l (succ i) t1 t2 \land
52 intros. inversion H; clear H; intros;
56 | destruct H5. clear H5 H1 H3. subst. auto depth = 5
61 theorem lift_inv_flat_1: \forall l, i, r, u1, t1, x.
62 Lift l i (intf r u1 t1) x \to
67 intros. inversion H; clear H; intros;
72 | destruct H5. clear H5 H1 H3. subst. auto depth = 5