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