Step * 2 of Lemma le-tuple-sum


1. Type
2. P
3. List
4. ∀[G:P ⟶ Type]. ∀[x:tuple-type(map(G;v))]. ∀[f:i:P ⟶ (G i) ⟶ ℕ].  ∀k:ℕ||v||. ((f v[k] x.k) ≤ tuple-sum(f;v;x))
5. null(v) ff
6. P ⟶ Type
7. u × tuple-type(map(G;v))
8. i:P ⟶ (G i) ⟶ ℕ
9. : ℕ||v|| 1
⊢ (f [u v][k] x.k) ≤ let u@0,v@0 
                       in (f u@0) tuple-sum(f;v;v@0)
BY
(DVar `x' THEN RecUnfold `select-tuple` THEN (Assert 1 ≤ ||v|| BY Auto) THEN Reduce THEN AutoSplit) }

1
1. Type
2. P
3. List
4. ∀[G:P ⟶ Type]. ∀[x:tuple-type(map(G;v))]. ∀[f:i:P ⟶ (G i) ⟶ ℕ].  ∀k:ℕ||v||. ((f v[k] x.k) ≤ tuple-sum(f;v;x))
5. null(v) ff
6. P ⟶ Type
7. x1 u
8. x2 tuple-type(map(G;v))
9. i:P ⟶ (G i) ⟶ ℕ
10. : ℕ||v|| 1
11. 1 ≤ ||v||
12. 0 ∈ ℤ
⊢ (f [u v][k] x1) ≤ ((f x1) tuple-sum(f;v;x2))

2
1. Type
2. P
3. List
4. ∀[G:P ⟶ Type]. ∀[x:tuple-type(map(G;v))]. ∀[f:i:P ⟶ (G i) ⟶ ℕ].  ∀k:ℕ||v||. ((f v[k] x.k) ≤ tuple-sum(f;v;x))
5. null(v) ff
6. P ⟶ Type
7. x1 u
8. x2 tuple-type(map(G;v))
9. i:P ⟶ (G i) ⟶ ℕ
10. : ℕ||v|| 1
11. k ≠ 0
12. 1 ≤ ||v||
⊢ (f [u v][k] x2.k 1) ≤ ((f x1) tuple-sum(f;v;x2))


Latex:


Latex:

1.  P  :  Type
2.  u  :  P
3.  v  :  P  List
4.  \mforall{}[G:P  {}\mrightarrow{}  Type].  \mforall{}[x:tuple-type(map(G;v))].  \mforall{}[f:i:P  {}\mrightarrow{}  (G  i)  {}\mrightarrow{}  \mBbbN{}].
          \mforall{}k:\mBbbN{}||v||.  ((f  v[k]  x.k)  \mleq{}  tuple-sum(f;v;x))
5.  null(v)  =  ff
6.  G  :  P  {}\mrightarrow{}  Type
7.  x  :  G  u  \mtimes{}  tuple-type(map(G;v))
8.  f  :  i:P  {}\mrightarrow{}  (G  i)  {}\mrightarrow{}  \mBbbN{}
9.  k  :  \mBbbN{}||v||  +  1
\mvdash{}  (f  [u  /  v][k]  x.k)  \mleq{}  let  u@0,v@0  =  x 
                                              in  (f  u  u@0)  +  tuple-sum(f;v;v@0)


By


Latex:
(DVar  `x'
  THEN  RecUnfold  `select-tuple`  0
  THEN  (Assert  1  \mleq{}  ||v||  BY
                          Auto)
  THEN  Reduce  0
  THEN  AutoSplit)




Home Index