include "SUB/Term/defs.ma".
-inductive Inc (q:Bool) (i:Nat): Head \to Nat \to Prop \def
- | inc_bind: \forall r. Inc q i (bind q r) (succ i)
- | inc_skip: \forall p. (q = p \to False) \to
- \forall r. Inc q i (bind p r) i
- | inc_flat: \forall p,r. Inc q i (flat p r) i
+inductive Inc (i:Nat): Bool \to Head \to Nat \to Prop \def
+ | inc_bind: \forall r. Inc i true (bind r) (succ i)
+ | inc_skip: \forall r. Inc i false (bind r) i
+ | inc_flat: \forall r,q. Inc i q (flat r) i
.
- Usage: invoke with positive polarity
*)
-include "SUB/Switch/defs.ma".
include "SUB/Inc/defs.ma".
inductive Lift: Bool \to Nat \to Nat \to Term \to Term \to Prop \def
| 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,z. Switch qt z qu \to
- \forall iu,it. Inc qt iu z it \to
+ | 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 z u1 t1) (head z u2 t2)
+ Lift qt l iu (head q z u1 t1) (head q z u2 t2)
.
+++ /dev/null
-(**************************************************************************)
-(* ___ *)
-(* ||M|| *)
-(* ||A|| A project by Andrea Asperti *)
-(* ||T|| *)
-(* ||I|| Developers: *)
-(* ||T|| The HELM team. *)
-(* ||A|| http://helm.cs.unibo.it *)
-(* \ / *)
-(* \ / This file is distributed under the terms of the *)
-(* v GNU General Public License Version 2 *)
-(* *)
-(**************************************************************************)
-
-set "baseuri" "cic:/matita/LAMBDA-TYPES/Unified-Sub/Switch/defs".
-
-(* POLARITY SWITCH RELATION
-*)
-
-include "SUB/Term/defs.ma".
-
-inductive Switch (q1:Bool): Head \to Bool \to Prop \def
- | switch_bind: \forall q2,p. (p -- q1 == q2) \to
- \forall r. Switch q1 (bind p r) q2
- | switch_flat: \forall q2,p. (p -- q1 == q2) \to
- \forall r. Switch q1 (flat p r) q2
-.
.
inductive Head: Set \def
- | bind: Bool \to Bind \to Head
- | flat: Bool \to Flat \to Head
+ | bind: Bind \to Head
+ | flat: Flat \to Head
.
inductive Term: Set \def
| leaf: Leaf \to Term
- | head: Head \to Term \to Term \to Term
+ | head: Bool \to Head \to Term \to Term \to Term
.