Step
*
1
1
2
of Lemma
int-seg-case-monotone
1. i : ℤ
2. j : ℤ
3. F : {i..j-} ⟶ ℙ
4. G : {i..j-} ⟶ ℙ
5. d : ∀k:{i..j-}. (F[k] ∨ G[k])
6. k : {i..j + 1-}
7. ↑isl(int-seg-case(i;k;d))
8. k' : {k..j + 1-}
9. x : ℤ
10. 0 < x
11. ((k + (x - 1)) ≤ j) 
⇒ (↑isl(int-seg-case(i;k + (x - 1);d)))
12. (k + x) ≤ j
13. ¬k + x < i
⊢ ↑isl(primrec((k + x) - i;inr (λk.Ax) λn,x. case x
                                              of inl(p) =>
                                              inl p
                                              | inr(f) =>
                                              case d (i + n)
                                               of inl(z) =>
                                               inl <i + n, z>
                                               | inr(u) =>
                                               inr (λk.if (k) < (i + n)  then f k  else u) ))
BY
{ ((D -3 THENA Auto) THEN (RWO  "primrec-unroll" 0 THENA Auto)) }
1
1. i : ℤ
2. j : ℤ
3. F : {i..j-} ⟶ ℙ
4. G : {i..j-} ⟶ ℙ
5. d : ∀k:{i..j-}. (F[k] ∨ G[k])
6. k : {i..j + 1-}
7. ↑isl(int-seg-case(i;k;d))
8. k' : {k..j + 1-}
9. x : ℤ
10. 0 < x
11. (k + x) ≤ j
12. ¬k + x < i
13. ↑isl(int-seg-case(i;k + (x - 1);d))
⊢ ↑isl(if (k + x) - i <z 1
then inr (λk.Ax) 
else (λn,x. case x
            of inl(p) =>
            inl p
            | inr(f) =>
            case d (i + n) of inl(z) => inl <i + n, z> | inr(u) => inr (λk.if (k) < (i + n)  then f k  else u) ) 
     ((k + x) - i - 1) 
     primrec((k + x) - i - 1;inr (λk.Ax) λn,x. case x
                                                of inl(p) =>
                                                inl p
                                                | inr(f) =>
                                                case d (i + n)
                                                 of inl(z) =>
                                                 inl <i + n, z>
                                                 | inr(u) =>
                                                 inr (λk.if (k) < (i + n)  then f k  else u) )
fi )
Latex:
Latex:
1.  i  :  \mBbbZ{}
2.  j  :  \mBbbZ{}
3.  F  :  \{i..j\msupminus{}\}  {}\mrightarrow{}  \mBbbP{}
4.  G  :  \{i..j\msupminus{}\}  {}\mrightarrow{}  \mBbbP{}
5.  d  :  \mforall{}k:\{i..j\msupminus{}\}.  (F[k]  \mvee{}  G[k])
6.  k  :  \{i..j  +  1\msupminus{}\}
7.  \muparrow{}isl(int-seg-case(i;k;d))
8.  k'  :  \{k..j  +  1\msupminus{}\}
9.  x  :  \mBbbZ{}
10.  0  <  x
11.  ((k  +  (x  -  1))  \mleq{}  j)  {}\mRightarrow{}  (\muparrow{}isl(int-seg-case(i;k  +  (x  -  1);d)))
12.  (k  +  x)  \mleq{}  j
13.  \mneg{}k  +  x  <  i
\mvdash{}  \muparrow{}isl(primrec((k  +  x)  -  i;inr  (\mlambda{}k.Ax)  ;\mlambda{}n,x.  case  x
                                                                                            of  inl(p)  =>
                                                                                            inl  p
                                                                                            |  inr(f)  =>
                                                                                            case  d  (i  +  n)
                                                                                              of  inl(z)  =>
                                                                                              inl  <i  +  n,  z>
                                                                                              |  inr(u)  =>
                                                                                              inr  (\mlambda{}k.if  (k)  <  (i  +  n)    then  f  k    else  u)  ))
By
Latex:
((D  -3  THENA  Auto)  THEN  (RWO    "primrec-unroll"  0  THENA  Auto))
Home
Index