nd_comp_extend |
Def C+[a;q] == map( c. < 1of(c),a.2of(c) > ;C) @ [ < q,nil > ]
Thm* Alph,St:Type, C:NComp(Alph;St), a:Alph, q:St. C+[a;q] NComp(Alph;St)
|
pi2 |
Def 2of(t) == t.2
Thm* A:Type, B:(A Type), p:a:A B(a). 2of(p) B(1of(p))
|
pi1 |
Def 1of(t) == t.1
Thm* A:Type, B:(A Type), p:a:A B(a). 1of(p) A
|
map |
Def map(f;as) == Case of as; nil nil ; a.as' f(a).map(f;as') (recursive)
Thm* A,B:Type, f:(A B), l:A*. map(f;l) B*
|
append |
Def as @ bs == Case of as; nil bs ; a.as' a.(as' @ bs) (recursive)
Thm* T:Type, as,bs:T*. (as @ bs) T*
|