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 (* This file was automatically generated: do not edit *********************)
17 include "LambdaDelta-1/subst/defs.ma".
20 \forall (v: T).(\forall (d: nat).(\forall (k: nat).(eq T (subst d v (TSort
23 \lambda (_: T).(\lambda (_: nat).(\lambda (k: nat).(refl_equal T (TSort
26 theorem subst_lref_lt:
27 \forall (v: T).(\forall (d: nat).(\forall (i: nat).((lt i d) \to (eq T
28 (subst d v (TLRef i)) (TLRef i)))))
30 \lambda (v: T).(\lambda (d: nat).(\lambda (i: nat).(\lambda (H: (lt i
31 d)).(eq_ind_r bool true (\lambda (b: bool).(eq T (match b with [true
32 \Rightarrow (TLRef i) | false \Rightarrow (match (blt d i) with [true
33 \Rightarrow (TLRef (pred i)) | false \Rightarrow (lift d O v)])]) (TLRef i)))
34 (refl_equal T (TLRef i)) (blt i d) (lt_blt d i H))))).
36 theorem subst_lref_eq:
37 \forall (v: T).(\forall (i: nat).(eq T (subst i v (TLRef i)) (lift i O v)))
39 \lambda (v: T).(\lambda (i: nat).(eq_ind_r bool false (\lambda (b: bool).(eq
40 T (match b with [true \Rightarrow (TLRef i) | false \Rightarrow (match b with
41 [true \Rightarrow (TLRef (pred i)) | false \Rightarrow (lift i O v)])]) (lift
42 i O v))) (refl_equal T (lift i O v)) (blt i i) (le_bge i i (le_n i)))).
44 theorem subst_lref_gt:
45 \forall (v: T).(\forall (d: nat).(\forall (i: nat).((lt d i) \to (eq T
46 (subst d v (TLRef i)) (TLRef (pred i))))))
48 \lambda (v: T).(\lambda (d: nat).(\lambda (i: nat).(\lambda (H: (lt d
49 i)).(eq_ind_r bool false (\lambda (b: bool).(eq T (match b with [true
50 \Rightarrow (TLRef i) | false \Rightarrow (match (blt d i) with [true
51 \Rightarrow (TLRef (pred i)) | false \Rightarrow (lift d O v)])]) (TLRef
52 (pred i)))) (eq_ind_r bool true (\lambda (b: bool).(eq T (match b with [true
53 \Rightarrow (TLRef (pred i)) | false \Rightarrow (lift d O v)]) (TLRef (pred
54 i)))) (refl_equal T (TLRef (pred i))) (blt d i) (lt_blt i d H)) (blt i d)
55 (le_bge d i (lt_le_weak d i H)))))).
58 \forall (k: K).(\forall (w: T).(\forall (u: T).(\forall (t: T).(\forall (d:
59 nat).(eq T (subst d w (THead k u t)) (THead k (subst d w u) (subst (s k d) w
62 \lambda (k: K).(\lambda (w: T).(\lambda (u: T).(\lambda (t: T).(\lambda (d:
63 nat).(refl_equal T (THead k (subst d w u) (subst (s k d) w t))))))).