| Who Cites adjl-rep? |
|
adjl-rep | Def AdjListRep == mkgraphrep(AdjList, A.adjl-graph(A), A.adjl-obj{\\\\v:l,i:l}(A)) |
|
adjl-obj | Def adjl-obj{\\\\v:l,i:l}(A) == mkgraphobj( x,y. x =A= y, ext{assert_eq_adjl}(A), f,s,x. adjl-edge-accum(A;s',x'.f(s',x');s;x), ext{adjl_DASH_edge_DASH_accum_DASH_properties}{i:l}(A), f,s. adjl-vertex-accum(A;s',x'.f(s',x');s), ext{adjl_DASH_vertex_DASH_accum_DASH_properties}{i:l}(A), ) |
|
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)] > > |
|
adjlist | Def AdjList == size:  size ( size List) |
| | Thm* AdjList Type |
|
mkgraphrep | Def mkgraphrep(type, graph, obj) == < type,graph,obj > |
| | Thm* type:Type, graph:(type Graph), obj:(r:type GraphObject(graph(r))). mkgraphrep(type, graph, obj) Graph Representation |
|
adjl-vertex-accum | Def adjl-vertex-accum(A;s',x.f(s';x);s) == primrec(A.size;s; x,s'. f(s';x)) |
|
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)) |
|
eq_adjl | Def x =A= y == x= y |
| | Thm* A:AdjList, x,y:Vertices(adjl-graph(A)). x =A= y  |
|
mkgraphobj | Def mkgraphobj(eq, eqw, eacc, eaccw, vacc, vaccw, other) == < eq,eqw,eacc,eaccw,vacc,vaccw,other > |
| | Thm* For any graph
eq:(V V  ), eqw:( x,y:V. eq(x,y)  x = y), eacc:( T:Type. (T V T) T V T), eaccw:( T:Type, s:T, x:V, f:(T V T). L:V List. ( y:V. x-the_graph- > y  (y L)) & eacc(f,s,x) = list_accum(s',x'.f(s',x');s;L)), vacc:( T:Type. (T V T) T T), vaccw:( T:Type, s:T, f:(T V T). L:V List. no_repeats(V;L) & ( y:V. (y L)) & vacc(f,s) = list_accum(s',x'.f(s',x');s;L)), other:Top. mkgraphobj(eq, eqw, eacc, eaccw, vacc, vaccw, other) GraphObject(the_graph) |
|
adjl_size | Def t.size == 1of(t) |
| | Thm* t:AdjList. t.size  |
|
pi1 | Def 1of(t) == t.1 |
| | Thm* A:Type, B:(A Type), p:(a:A B(a)). 1of(p) A |
|
adjl_out | Def t.out == 2of(t) |
| | Thm* t:AdjList. t.out t.size ( t.size List) |
|
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 |
|
length | Def ||as|| == Case of as; nil 0 ; a.as' ||as'||+1 (recursive) |
| | Thm* A:Type, l:A List. ||l||  |
| | Thm* ||nil||  |
|
int_seg | Def {i..j } == {k: | i k < j } |
| | Thm* m,n: . {m..n } Type |
|
mkgraph | Def < vertices = v, edges = e, incidence = f > == < v,e,f,o > |
| | Thm* v,e:Type, f:(e v v), o:Top. < vertices = v, edges = e, incidence = f > Graph |
|
nat | Def == {i: | 0 i } |
| | Thm* Type |
|
primrec | Def primrec(n;b;c) == if n= 0 b else c(n-1,primrec(n-1;b;c)) fi (recursive) |
| | Thm* T:Type, n: , b:T, c:( n T T). primrec(n;b;c) T |
|
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' |
|
eq_int | Def i= j == if i=j true ; false fi |
| | Thm* i,j: . (i= j)  |
|
nth_tl | Def nth_tl(n;as) == if n 0 as else nth_tl(n-1;tl(as)) fi (recursive) |
| | Thm* A:Type, as:A List, i: . nth_tl(i;as) A List |
|
hd | Def hd(l) == Case of l; nil "?" ; h.t h |
| | Thm* A:Type, l:A List. ||l|| 1  hd(l) A |
| | Thm* A:Type, l:A List . hd(l) A |
|
lelt | Def i j < k == i j & j < k |
|
le | Def A B == B < A |
| | Thm* i,j: . (i j) Prop |
|
tl | Def tl(l) == Case of l; nil nil ; h.t t |
| | Thm* A:Type, l:A List. tl(l) A List |
|
le_int | Def i j ==  j < i |
| | Thm* i,j: . (i j)  |
|
not | Def A == A  False |
| | Thm* A:Prop. ( A) Prop |
|
lt_int | Def i < j == if i < j true ; false fi |
| | Thm* i,j: . (i < j)  |
|
bnot | Def  b == if b false else true fi |
| | Thm* b: .  b  |