Step
*
of Lemma
le-tuple-sum
No Annotations
∀[P:Type]. ∀[as:P List]. ∀[G:P ⟶ Type]. ∀[x:tuple-type(map(G;as))]. ∀[f:i:P ⟶ (G i) ⟶ ℕ].
  ∀k:ℕ||as||. ((f as[k] x.k) ≤ tuple-sum(f;as;x))
BY
{ (InductionOnList
   THEN Unfold `tuple-sum` 0
   THEN Reduce 0
   THEN ((RWO "null-map" 0 THENA Auto) ORELSE Auto)
   THEN SimpleBoolCase ⌜null(v)⌝⋅
   THEN Auto) }
1
1. P : Type
2. u : P
3. v : P 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) = tt
6. G : P ⟶ Type
7. x@0 : G u
8. f : i:P ⟶ (G i) ⟶ ℕ
9. k : ℕ||v|| + 1
⊢ (f [u / v][k] x@0.k) ≤ (f u x@0)
2
1. P : Type
2. u : P
3. v : P 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. G : P ⟶ Type
7. x : G u × tuple-type(map(G;v))
8. f : i:P ⟶ (G i) ⟶ ℕ
9. k : ℕ||v|| + 1
⊢ (f [u / v][k] x.k) ≤ let u@0,v@0 = x 
                       in (f u u@0) + tuple-sum(f;v;v@0)
Latex:
Latex:
No  Annotations
\mforall{}[P:Type].  \mforall{}[as:P  List].  \mforall{}[G:P  {}\mrightarrow{}  Type].  \mforall{}[x:tuple-type(map(G;as))].  \mforall{}[f:i:P  {}\mrightarrow{}  (G  i)  {}\mrightarrow{}  \mBbbN{}].
    \mforall{}k:\mBbbN{}||as||.  ((f  as[k]  x.k)  \mleq{}  tuple-sum(f;as;x))
By
Latex:
(InductionOnList
  THEN  Unfold  `tuple-sum`  0
  THEN  Reduce  0
  THEN  ((RWO  "null-map"  0  THENA  Auto)  ORELSE  Auto)
  THEN  SimpleBoolCase  \mkleeneopen{}null(v)\mkleeneclose{}\mcdot{}
  THEN  Auto)
Home
Index