Step * 1 1 of Lemma prec-sub-size


1. Type
2. Atom ⟶ P ⟶ ((P Type) List)
3. P
4. prec(lbl,p.a[lbl;p];j)
5. P
6. labl {lbl:Atom| 0 < ||a[lbl;i]||} 
7. y1 tuple-type(map(λx.case x
                           of inl(y) =>
                           case 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. : ℕ||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 ) ∈ (P P)) ∧ (x ∈ y1.k))
11. P
12. x1 prec(lbl,p.a[lbl;p];y) List
⊢ l_sum(map(λz.||y;z||;x1)) ∈ ℕ
BY
(MemTypeCD THEN Auto THEN (BLemma `l_sum_nonneg` THEN Auto) THEN THEN Auto) }


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.  y  :  P
12.  x1  :  prec(lbl,p.a[lbl;p];y)  List
\mvdash{}  l\_sum(map(\mlambda{}z.||y;z||;x1))  \mmember{}  \mBbbN{}


By


Latex:
(MemTypeCD  THEN  Auto  THEN  (BLemma  `l\_sum\_nonneg`  THEN  Auto)  THEN  D  0  THEN  Auto)




Home Index