Step * of Lemma int-seg-case_wf

[i,j:ℤ]. ∀[F,G:{i..j-} ⟶ ℙ]. ∀[d:∀k:{i..j-}. (F[k] ∨ G[k])].
  (int-seg-case(i;j;d) ∈ (∃k:{i..j-}. F[k]) ∨ (∀k:{i..j-}. G[k]))
BY
(Intros
   THEN Unhide
   THEN Unfold `int-seg-case` 0
   THEN (((Decide ⌜j < i⌝⋅ THENA Auto) THEN OReduce 0)
         THENL [Auto
               ((Assert ⌜∀M:ℕ
                             (((i M) ≤ j)
                              (primrec(M;inr k.Ax) n,x. case x
                                                              of inl(p) =>
                                                              inl p
                                                              inr(f) =>
                                                              case (i n)
                                                               of inl(z) =>
                                                               inl <n, z>
                                                               inr(u) =>
                                                               inr k.if (k) < (i n)  then k  else u) )
                                 ∈ (∃k:{i..i M-}. F[k]) ∨ (∀k:{i..i M-}. G[k])))⌝⋅
                  THENM ((InstHyp [⌜i⌝(-1)⋅ THENA Auto) THEN NthHypSq (-1) THEN EqCD THEN Auto)
                  )
                  THEN (InductionOnNat
                        THENL [(Reduce THEN Auto)
                              ((ParallelLast THENA Auto)
                                 THEN (RWO "primrec-unroll" THENA Auto)
                                 THEN ((SplitOnConclITE THENA Auto)
                                       THENL [Auto; ((GenConclAtAddr [2;2] THENA Auto) THEN Thin (-1))]
                                 ))]
                       )
                  )]
   )) }

1
1. : ℤ
2. : ℤ
3. {i..j-} ⟶ ℙ
4. {i..j-} ⟶ ℙ
5. : ∀k:{i..j-}. (F[k] ∨ G[k])
6. ¬j < i
7. : ℤ
8. 0 < M
9. (i M) ≤ j
10. primrec(M 1;inr k.Ax) n,x. case x
                                     of inl(p) =>
                                     inl p
                                     inr(f) =>
                                     case (i n)
                                      of inl(z) =>
                                      inl <n, z>
                                      inr(u) =>
                                      inr k.if (k) < (i n)  then k  else u) ) ∈ (∃k:{i..i (M 1)-}. F[k])
    ∨ (∀k:{i..i (M 1)-}. G[k])
11. 1 ≤ M
12. (∃k:{i..i (M 1)-}. F[k]) ∨ (∀k:{i..i (M 1)-}. G[k])
⊢ n,x. case x
         of inl(p) =>
         inl p
         inr(f) =>
         case (i n) of inl(z) => inl <n, z> inr(u) => inr k.if (k) < (i n)  then k  else u) 
  (M 1) 
  v ∈ (∃k:{i..i M-}. F[k]) ∨ (∀k:{i..i M-}. G[k])


Latex:


Latex:
\mforall{}[i,j:\mBbbZ{}].  \mforall{}[F,G:\{i..j\msupminus{}\}  {}\mrightarrow{}  \mBbbP{}].  \mforall{}[d:\mforall{}k:\{i..j\msupminus{}\}.  (F[k]  \mvee{}  G[k])].
    (int-seg-case(i;j;d)  \mmember{}  (\mexists{}k:\{i..j\msupminus{}\}.  F[k])  \mvee{}  (\mforall{}k:\{i..j\msupminus{}\}.  G[k]))


By


Latex:
(Intros
  THEN  Unhide
  THEN  Unfold  `int-seg-case`  0
  THEN  (((Decide  \mkleeneopen{}j  <  i\mkleeneclose{}\mcdot{}  THENA  Auto)  THEN  OReduce  0)
              THENL  [Auto
                          ;  ((Assert  \mkleeneopen{}\mforall{}M:\mBbbN{}
                                                      (((i  +  M)  \mleq{}  j)
                                                      {}\mRightarrow{}  (primrec(M;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)  )  \mmember{}  (\mexists{}k:\{i..i  +  M\msupminus{}\}
                                                                                                                                                                    F[k])
                                                              \mvee{}  (\mforall{}k:\{i..i  +  M\msupminus{}\}.  G[k])))\mkleeneclose{}\mcdot{}
                                THENM  ((InstHyp  [\mkleeneopen{}j  -  i\mkleeneclose{}]  (-1)\mcdot{}  THENA  Auto)  THEN  NthHypSq  (-1)  THEN  EqCD  THEN  Auto)
                                )
                                THEN  (InductionOnNat
                                            THENL  [(Reduce  0  THEN  Auto)
                                                        ;  ((ParallelLast  THENA  Auto)
                                                              THEN  (RWO  "primrec-unroll"  0  THENA  Auto)
                                                              THEN  ((SplitOnConclITE  THENA  Auto)
                                                                          THENL  [Auto
                                                                                      ;  ((GenConclAtAddr  [2;2]  THENA  Auto)  THEN  Thin  (-1))]
                                                              ))]
                                          )
                                )]
  ))




Home Index