Step
*
1
2
2
1
2
of Lemma
prec-sub-size
1. P : Type
2. a : Atom ⟶ P ⟶ ((P + P + Type) List)
3. j : P
4. x : prec(lbl,p.a[lbl;p];j)
5. i : P
6. labl : {lbl:Atom| 0 < ||a[lbl;i]||} 
7. y1 : tuple-type(map(λx.case x
                           of inl(y) =>
                           case y of inl(p) => prec(lbl,p.a[lbl;p];p) | inr(p) => prec(lbl,p.a[lbl;p];p) List
                           | inr(E) =>
                           E;a[labl;i]))
8. k : ℕ||a[labl;i]||
9. ↑isl(a[labl;i][k])
10. ((outl(a[labl;i][k]) = (inl j) ∈ (P + P)) ∧ (x = y1.k ∈ prec(lbl,i.a[lbl;i];j)))
∨ ((outl(a[labl;i][k]) = (inr j ) ∈ (P + P)) ∧ (x ∈ y1.k))
11. N : ℕ
12. tuple-sum(λc,x. case c
                    of inl(p) =>
                    case p of inl(j) => ||j;x|| | inr(j) => l_sum(map(λz.||j;z||;x))
                    | inr(_) =>
                    0;a[labl;i];y1)
= N
∈ ℕ
⊢ (case a[labl;i][k] of inl(p) => case p of inl(j) => ||j;y1.k|| | inr(j) => l_sum(map(λz.||j;z||;y1.k)) | inr(_) => 0 
   ≤ N)
⇒ (||j;x|| ≤ case a[labl;i][k]
     of inl(p) =>
     case p of inl(j) => ||j;y1.k|| | inr(j) => l_sum(map(λz.||j;z||;y1.k))
     | inr(_) =>
     0)
⇒ (||j;x|| ≤ N)
BY
{ GenConcl ⌜case a[labl;i][k]
             of inl(p) =>
             case p of inl(j) => ||j;y1.k|| | inr(j) => l_sum(map(λz.||j;z||;y1.k))
             | inr(_) =>
             0
            = M
            ∈ ℕ⌝⋅ }
1
.....wf..... 
1. P : Type
2. a : Atom ⟶ P ⟶ ((P + P + Type) List)
3. j : P
4. x : prec(lbl,p.a[lbl;p];j)
5. i : P
6. labl : {lbl:Atom| 0 < ||a[lbl;i]||} 
7. y1 : tuple-type(map(λx.case x
                           of inl(y) =>
                           case y of inl(p) => prec(lbl,p.a[lbl;p];p) | inr(p) => prec(lbl,p.a[lbl;p];p) List
                           | inr(E) =>
                           E;a[labl;i]))
8. k : ℕ||a[labl;i]||
9. ↑isl(a[labl;i][k])
10. ((outl(a[labl;i][k]) = (inl j) ∈ (P + P)) ∧ (x = y1.k ∈ prec(lbl,i.a[lbl;i];j)))
∨ ((outl(a[labl;i][k]) = (inr j ) ∈ (P + P)) ∧ (x ∈ y1.k))
11. N : ℕ
12. tuple-sum(λc,x. case c
                    of inl(p) =>
                    case p of inl(j) => ||j;x|| | inr(j) => l_sum(map(λz.||j;z||;x))
                    | inr(_) =>
                    0;a[labl;i];y1)
= N
∈ ℕ
⊢ case a[labl;i][k] of inl(p) => case p of inl(j) => ||j;y1.k|| | inr(j) => l_sum(map(λz.||j;z||;y1.k)) | inr(_) => 0
  ∈ ℕ
2
1. P : Type
2. a : Atom ⟶ P ⟶ ((P + P + Type) List)
3. j : P
4. x : prec(lbl,p.a[lbl;p];j)
5. i : P
6. labl : {lbl:Atom| 0 < ||a[lbl;i]||} 
7. y1 : tuple-type(map(λx.case x
                           of inl(y) =>
                           case y of inl(p) => prec(lbl,p.a[lbl;p];p) | inr(p) => prec(lbl,p.a[lbl;p];p) List
                           | inr(E) =>
                           E;a[labl;i]))
8. k : ℕ||a[labl;i]||
9. ↑isl(a[labl;i][k])
10. ((outl(a[labl;i][k]) = (inl j) ∈ (P + P)) ∧ (x = y1.k ∈ prec(lbl,i.a[lbl;i];j)))
∨ ((outl(a[labl;i][k]) = (inr j ) ∈ (P + P)) ∧ (x ∈ y1.k))
11. N : ℕ
12. tuple-sum(λc,x. case c
                    of inl(p) =>
                    case p of inl(j) => ||j;x|| | inr(j) => l_sum(map(λz.||j;z||;x))
                    | inr(_) =>
                    0;a[labl;i];y1)
= N
∈ ℕ
13. M : ℕ
14. case a[labl;i][k] of inl(p) => case p of inl(j) => ||j;y1.k|| | inr(j) => l_sum(map(λz.||j;z||;y1.k)) | inr(_) => 0
= M
∈ ℕ
⊢ (M ≤ N) 
⇒ (||j;x|| ≤ M) 
⇒ (||j;x|| ≤ N)
Latex:
Latex:
1.  P  :  Type
2.  a  :  Atom  {}\mrightarrow{}  P  {}\mrightarrow{}  ((P  +  P  +  Type)  List)
3.  j  :  P
4.  x  :  prec(lbl,p.a[lbl;p];j)
5.  i  :  P
6.  labl  :  \{lbl:Atom|  0  <  ||a[lbl;i]||\} 
7.  y1  :  tuple-type(map(\mlambda{}x.case  x
                                                      of  inl(y)  =>
                                                      case  y
                                                        of  inl(p)  =>
                                                        prec(lbl,p.a[lbl;p];p)
                                                        |  inr(p)  =>
                                                        prec(lbl,p.a[lbl;p];p)  List
                                                      |  inr(E)  =>
                                                      E;a[labl;i]))
8.  k  :  \mBbbN{}||a[labl;i]||
9.  \muparrow{}isl(a[labl;i][k])
10.  ((outl(a[labl;i][k])  =  (inl  j))  \mwedge{}  (x  =  y1.k))  \mvee{}  ((outl(a[labl;i][k])  =  (inr  j  ))  \mwedge{}  (x  \mmember{}  y1.k))
11.  N  :  \mBbbN{}
12.  tuple-sum(\mlambda{}c,x.  case  c
                                        of  inl(p)  =>
                                        case  p  of  inl(j)  =>  ||j;x||  |  inr(j)  =>  l\_sum(map(\mlambda{}z.||j;z||;x))
                                        |  inr($_{}$)  =>
                                        0;a[labl;i];y1)
=  N
\mvdash{}  (case  a[labl;i][k]
        of  inl(p)  =>
        case  p  of  inl(j)  =>  ||j;y1.k||  |  inr(j)  =>  l\_sum(map(\mlambda{}z.||j;z||;y1.k))
        |  inr($_{}$)  =>
        0  \mleq{}  N)
{}\mRightarrow{}  (||j;x||  \mleq{}  case  a[labl;i][k]
          of  inl(p)  =>
          case  p  of  inl(j)  =>  ||j;y1.k||  |  inr(j)  =>  l\_sum(map(\mlambda{}z.||j;z||;y1.k))
          |  inr($_{}$)  =>
          0)
{}\mRightarrow{}  (||j;x||  \mleq{}  N)
By
Latex:
GenConcl  \mkleeneopen{}case  a[labl;i][k]
                      of  inl(p)  =>
                      case  p  of  inl(j)  =>  ||j;y1.k||  |  inr(j)  =>  l\_sum(map(\mlambda{}z.||j;z||;y1.k))
                      |  inr($_{}$)  =>
                      0
                    =  M\mkleeneclose{}\mcdot{}
Home
Index