| Some definitions of interest. |
|
adjl-edge-accum | Def adjl-edge-accum(A;s',x'.f(s';x');s;x) == list_accum(s',x'.f(s';x');s;A.out(x)) |
|
adjl-graph | Def adjl-graph(G) == < vertices = G.size, edges = x: G.size ||G.out(x)||, incidence = e. < 1of(e),(G.out(1of(e)))[2of(e)] > > |
|
adjl_out | Def t.out == 2of(t) |
| | Thm* t:AdjList. t.out t.size ( t.size List) |
|
adjl_size | Def t.size == 1of(t) |
| | Thm* t:AdjList. t.size  |
|
adjlist | Def AdjList == size:  size ( size List) |
| | Thm* AdjList Type |
|
edge | Def x-the_graph- > y == e:Edges(the_graph). Incidence(the_graph)(e) = < x,y > |
| | Thm* For any graph
x,y:V. x-the_graph- > y Prop |
|
gr_v | Def Vertices(t) == 1of(t) |
| | Thm* t:Graph. Vertices(t) Type |
|
iff | Def P  Q == (P  Q) & (P  Q) |
| | Thm* A,B:Prop. (A  B) Prop |
|
int_seg | Def {i..j } == {k: | i k < j } |
| | Thm* m,n: . {m..n } Type |
|
l_member | Def (x l) == i: . i < ||l|| & x = l[i] T |
| | Thm* T:Type, x:T, l:T List. (x l) Prop |
|
length | Def ||as|| == Case of as; nil 0 ; a.as' ||as'||+1 (recursive) |
| | Thm* A:Type, l:A List. ||l||  |
| | Thm* ||nil||  |
|
list_accum | Def list_accum(x,a.f(x;a);y;l) == Case of l; nil y ; b.l' list_accum(x,a.f(x;a);f(y;b);l') (recursive) |
| | Thm* T,T':Type, l:T List, y:T', f:(T' T T'). list_accum(x,a.f(x,a);y;l) T' |
|
nat | Def == {i: | 0 i } |
| | Thm* Type |
|
pi1 | Def 1of(t) == t.1 |
| | Thm* A:Type, B:(A Type), p:(a:A B(a)). 1of(p) A |
|
pi2 | Def 2of(t) == t.2 |
| | Thm* A:Type, B:(A Type), p:(a:A B(a)). 2of(p) B(1of(p)) |
|
select | Def l[i] == hd(nth_tl(i;l)) |
| | Thm* A:Type, l:A List, n: . 0 n  n < ||l||  l[n] A |