]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/contribs/LAMBDA-TYPES/Unified-Sub/Lift/defs.ma
Unified-Sub: lift_comm completed
[helm.git] / matita / contribs / LAMBDA-TYPES / Unified-Sub / Lift / defs.ma
index cf29a3562e573ceda4071a0acdaaa88bc62ee32c..b8a4e2a85972574989bfc7f90922e3e0b11c0e43 100644 (file)
@@ -18,21 +18,20 @@ set "baseuri" "cic:/matita/LAMBDA-TYPES/Unified-Sub/Lift/defs".
    - Usage: invoke with positive polarity
 *)
 
-include "Inc/defs.ma".
+include "datatypes/Term.ma".
 
-inductive Lift: Bool \to Nat \to Nat \to Term \to Term \to Prop \def
-   | lift_sort   : \forall l,q,i,h. 
-                   Lift q l i (leaf (sort h)) (leaf (sort h))
-   | lift_skip   : \forall l,i,j. 
-                   Lift false l i (leaf (lref j)) (leaf (lref j))
-   | lift_lref_lt: \forall l,i,j. j < i \to 
-                   Lift true l i (leaf (lref j)) (leaf (lref j))
-   | lift_lref_ge: \forall l,i,j1. i <= j1 \to
-                   \forall j2. (j1 + l == j2) \to
-                   Lift true l i (leaf (lref j1)) (leaf (lref j2))
-   | lift_head   : \forall l,qt,qu,q. (qt -- q == qu) \to
-                   \forall z,iu,it. Inc iu qu z it \to
-                   \forall u1,u2. Lift qu l iu u1 u2 \to
-                   \forall t1,t2. Lift qt l it t1 t2 \to 
-                   Lift qt l iu (head q z u1 t1) (head q z u2 t2)
+inductive Lift (l: Nat): Nat \to Term \to Term \to Prop \def
+   | lift_sort   : \forall i,h. 
+                   Lift l i (sort h) (sort h)
+   | lift_lref_gt: \forall i,j. i > j \to 
+                   Lift l i (lref j) (lref j)
+   | lift_lref_le: \forall i,j1. i <= j1 \to
+                   \forall j2. (l + j1  == j2) \to
+                   Lift l i (lref j1) (lref j2)
+   | lift_bind   : \forall i,u1,u2. Lift l i u1 u2 \to
+                   \forall t1,t2. Lift l (succ i) t1 t2 \to 
+                   \forall r. Lift l i (intb r u1 t1) (intb r u2 t2)
+   | lift_flat   : \forall i,u1,u2. Lift l i u1 u2 \to
+                   \forall t1,t2. Lift l i t1 t2 \to 
+                   \forall r. Lift l i (intf r u1 t1) (intf r u2 t2)
 .