Step
*
2
of Lemma
global-order-compat-combine
1. [Info] : Type
2. L1 : (Id × Info) List@i
3. ys : (Id × Info) List@i
4. y : Id × Info@i
5. L1 || ys
⇒ (∃L:(Id × Info) List
     (L1 ≤ L
     ∧ (∃f:ℕ||ys|| ─→ ℕ||L||
         ((∀i,j:ℕ||ys||.  (i < j 
⇒ (f i < f j ∨ f j < ||L1||)))
         ∧ (∀j:ℕ||ys||
              ((ys[j] = L[f j] ∈ (Id × Info))
              ∧ (filter(λx.fst(x) = fst(ys[j]);firstn(j + 1;ys))
                = filter(λx.fst(x) = fst(ys[j]);firstn((f j) + 1;L))
                ∈ ((Id × Info) List))))
         ∧ (∀x:ℕ||L||. (x < ||L1|| ∨ (∃i:ℕ||ys||. (x = (f i) ∈ ℤ))))))
     ∧ ys ≤ L, locally
     ∧ (∀i:Id
          ((filter(λx.fst(x) = i;L) = filter(λx.fst(x) = i;L1) ∈ ((Id × Info) List))
          ∨ (filter(λx.fst(x) = i;L) = filter(λx.fst(x) = i;ys) ∈ ((Id × Info) List))))))@i
6. L1 || ys @ [y]@i
⊢ ∃L:(Id × Info) List
   (L1 ≤ L
   ∧ (∃f:ℕ||ys @ [y]|| ─→ ℕ||L||
       ((∀i,j:ℕ||ys @ [y]||.  (i < j 
⇒ (f i < f j ∨ f j < ||L1||)))
       ∧ (∀j:ℕ||ys @ [y]||
            ((ys @ [y][j] = L[f j] ∈ (Id × Info))
            ∧ (filter(λx.fst(x) = fst(ys @ [y][j]);firstn(j + 1;ys @ [y]))
              = filter(λx.fst(x) = fst(ys @ [y][j]);firstn((f j) + 1;L))
              ∈ ((Id × Info) List))))
       ∧ (∀x:ℕ||L||. (x < ||L1|| ∨ (∃i:ℕ||ys @ [y]||. (x = (f i) ∈ ℤ))))))
   ∧ ys @ [y] ≤ L, locally
   ∧ (∀i:Id
        ((filter(λx.fst(x) = i;L) = filter(λx.fst(x) = i;L1) ∈ ((Id × Info) List))
        ∨ (filter(λx.fst(x) = i;L) = filter(λx.fst(x) = i;ys @ [y]) ∈ ((Id × Info) List)))))
BY
{ (D -2 THENA RepeatFor 3 (ParallelLast)) }
1
1. [Info] : Type
2. L1 : (Id × Info) List@i
3. ys : (Id × Info) List@i
4. y : Id × Info@i
5. ∀i:Id. filter(λx.fst(x) = i;L1) || filter(λx.fst(x) = i;ys @ [y])@i
6. i : Id@i
7. filter(λx.fst(x) = i;L1) ≤ filter(λx.fst(x) = i;ys @ [y]) ∨ filter(λx.fst(x) = i;ys @ [y]) ≤ filter(λx.fst(x) = i;L1)
⊢ filter(λx.fst(x) = i;L1) ≤ filter(λx.fst(x) = i;ys) ∨ filter(λx.fst(x) = i;ys) ≤ filter(λx.fst(x) = i;L1)
2
1. [Info] : Type
2. L1 : (Id × Info) List@i
3. ys : (Id × Info) List@i
4. y : Id × Info@i
5. L1 || ys @ [y]@i
6. ∃L:(Id × Info) List
    (L1 ≤ L
    ∧ (∃f:ℕ||ys|| ─→ ℕ||L||
        ((∀i,j:ℕ||ys||.  (i < j 
⇒ (f i < f j ∨ f j < ||L1||)))
        ∧ (∀j:ℕ||ys||
             ((ys[j] = L[f j] ∈ (Id × Info))
             ∧ (filter(λx.fst(x) = fst(ys[j]);firstn(j + 1;ys))
               = filter(λx.fst(x) = fst(ys[j]);firstn((f j) + 1;L))
               ∈ ((Id × Info) List))))
        ∧ (∀x:ℕ||L||. (x < ||L1|| ∨ (∃i:ℕ||ys||. (x = (f i) ∈ ℤ))))))
    ∧ ys ≤ L, locally
    ∧ (∀i:Id
         ((filter(λx.fst(x) = i;L) = filter(λx.fst(x) = i;L1) ∈ ((Id × Info) List))
         ∨ (filter(λx.fst(x) = i;L) = filter(λx.fst(x) = i;ys) ∈ ((Id × Info) List)))))@i
⊢ ∃L:(Id × Info) List
   (L1 ≤ L
   ∧ (∃f:ℕ||ys @ [y]|| ─→ ℕ||L||
       ((∀i,j:ℕ||ys @ [y]||.  (i < j 
⇒ (f i < f j ∨ f j < ||L1||)))
       ∧ (∀j:ℕ||ys @ [y]||
            ((ys @ [y][j] = L[f j] ∈ (Id × Info))
            ∧ (filter(λx.fst(x) = fst(ys @ [y][j]);firstn(j + 1;ys @ [y]))
              = filter(λx.fst(x) = fst(ys @ [y][j]);firstn((f j) + 1;L))
              ∈ ((Id × Info) List))))
       ∧ (∀x:ℕ||L||. (x < ||L1|| ∨ (∃i:ℕ||ys @ [y]||. (x = (f i) ∈ ℤ))))))
   ∧ ys @ [y] ≤ L, locally
   ∧ (∀i:Id
        ((filter(λx.fst(x) = i;L) = filter(λx.fst(x) = i;L1) ∈ ((Id × Info) List))
        ∨ (filter(λx.fst(x) = i;L) = filter(λx.fst(x) = i;ys @ [y]) ∈ ((Id × Info) List)))))
Latex:
Latex:
1.  [Info]  :  Type
2.  L1  :  (Id  \mtimes{}  Info)  List@i
3.  ys  :  (Id  \mtimes{}  Info)  List@i
4.  y  :  Id  \mtimes{}  Info@i
5.  L1  ||  ys
{}\mRightarrow{}  (\mexists{}L:(Id  \mtimes{}  Info)  List
          (L1  \mleq{}  L
          \mwedge{}  (\mexists{}f:\mBbbN{}||ys||  {}\mrightarrow{}  \mBbbN{}||L||
                  ((\mforall{}i,j:\mBbbN{}||ys||.    (i  <  j  {}\mRightarrow{}  (f  i  <  f  j  \mvee{}  f  j  <  ||L1||)))
                  \mwedge{}  (\mforall{}j:\mBbbN{}||ys||
                            ((ys[j]  =  L[f  j])
                            \mwedge{}  (filter(\mlambda{}x.fst(x)  =  fst(ys[j]);firstn(j  +  1;ys))
                                =  filter(\mlambda{}x.fst(x)  =  fst(ys[j]);firstn((f  j)  +  1;L)))))
                  \mwedge{}  (\mforall{}x:\mBbbN{}||L||.  (x  <  ||L1||  \mvee{}  (\mexists{}i:\mBbbN{}||ys||.  (x  =  (f  i)))))))
          \mwedge{}  ys  \mleq{}  L,  locally
          \mwedge{}  (\mforall{}i:Id
                    ((filter(\mlambda{}x.fst(x)  =  i;L)  =  filter(\mlambda{}x.fst(x)  =  i;L1))
                    \mvee{}  (filter(\mlambda{}x.fst(x)  =  i;L)  =  filter(\mlambda{}x.fst(x)  =  i;ys))))))@i
6.  L1  ||  ys  @  [y]@i
\mvdash{}  \mexists{}L:(Id  \mtimes{}  Info)  List
      (L1  \mleq{}  L
      \mwedge{}  (\mexists{}f:\mBbbN{}||ys  @  [y]||  {}\mrightarrow{}  \mBbbN{}||L||
              ((\mforall{}i,j:\mBbbN{}||ys  @  [y]||.    (i  <  j  {}\mRightarrow{}  (f  i  <  f  j  \mvee{}  f  j  <  ||L1||)))
              \mwedge{}  (\mforall{}j:\mBbbN{}||ys  @  [y]||
                        ((ys  @  [y][j]  =  L[f  j])
                        \mwedge{}  (filter(\mlambda{}x.fst(x)  =  fst(ys  @  [y][j]);firstn(j  +  1;ys  @  [y]))
                            =  filter(\mlambda{}x.fst(x)  =  fst(ys  @  [y][j]);firstn((f  j)  +  1;L)))))
              \mwedge{}  (\mforall{}x:\mBbbN{}||L||.  (x  <  ||L1||  \mvee{}  (\mexists{}i:\mBbbN{}||ys  @  [y]||.  (x  =  (f  i)))))))
      \mwedge{}  ys  @  [y]  \mleq{}  L,  locally
      \mwedge{}  (\mforall{}i:Id
                ((filter(\mlambda{}x.fst(x)  =  i;L)  =  filter(\mlambda{}x.fst(x)  =  i;L1))
                \mvee{}  (filter(\mlambda{}x.fst(x)  =  i;L)  =  filter(\mlambda{}x.fst(x)  =  i;ys  @  [y])))))
By
Latex:
(D  -2  THENA  RepeatFor  3  (ParallelLast))
Home
Index