Step
*
of Lemma
Cn-comb_wf
∀[T:Type]. ∀[n,m:ℕ]. ∀[A:ℕm ⟶ Type].
Cn-comb(n) ∈ funtype(m;A;T) ⟶ funtype(m;λk.if k <z n then A (k + 1)
if (k =z n) then A 0
else A k
fi ;T)
supposing n < m
BY
{ (Unfold `Cn-comb` 0
THEN (BasicUniformUnivCD Auto THEN Unhide THEN RepeatFor 3 (MoveToConcl (-1)) THEN NatInd (-1))
THEN (UnivCD THENA Auto)
THEN (RWO "primrec-unroll" 0 THENA Auto)
THEN OldAutoSplit) }
1
1. T : Type
2. n : ℤ
3. m : ℕ
4. A : ℕm ⟶ Type
5. 0 < m
6. 0 < 1
⊢ λf.f ∈ funtype(m;A;T) ⟶ funtype(m;λk.if k <z 0 then A (k + 1)
if (k =z 0) then A 0
else A k
fi ;T)
2
1. T : Type
2. n : ℤ
3. 0 < n
4. ∀m:ℕ. ∀A:ℕm ⟶ Type.
(n - 1 < m
⇒ (primrec(n - 1;λf.f;λi,F,f,x. (F (C-comb() f x))) ∈ funtype(m;A;T) ⟶ funtype(m;λk.if k <z n - 1 then A (k + 1)
if (k =z n - 1) then A 0
else A k
fi ;T)))
5. m : ℕ
6. A : ℕm ⟶ Type
7. n < m
8. 1 ≤ n
⊢ λf,x. (primrec(n - 1;λf.f;λi,F,f,x. (F (C-comb() f x))) (C-comb() f x)) ∈ funtype(m;A;T) ⟶ funtype(m;λk.if k <z n the\000Cn A (k + 1)
if (k =z n) then A 0
else A k
fi ;T)
Latex:
Latex:
\mforall{}[T:Type]. \mforall{}[n,m:\mBbbN{}]. \mforall{}[A:\mBbbN{}m {}\mrightarrow{} Type].
Cn-comb(n) \mmember{} funtype(m;A;T) {}\mrightarrow{} funtype(m;\mlambda{}k.if k <z n then A (k + 1)
if (k =\msubz{} n) then A 0
else A k
fi ;T)
supposing n < m
By
Latex:
(Unfold `Cn-comb` 0
THEN (BasicUniformUnivCD Auto THEN Unhide THEN RepeatFor 3 (MoveToConcl (-1)) THEN NatInd (-1))
THEN (UnivCD THENA Auto)
THEN (RWO "primrec-unroll" 0 THENA Auto)
THEN OldAutoSplit)
Home
Index