Thm* For any graph
the_obj:GraphObject(the_graph). ( x,y:V. the_obj.eq(x,y)  x = y) & ( T:Type, s:T, x:V, f:(T V T). L:V List. ( y:V. x-the_graph- > y  (y L)) & the_obj.eacc(f,s,x) = list_accum(s',x'.f(s',x');s;L)) & ( T:Type, s:T, f:(T V T). L:V List. no_repeats(V;L) & ( y:V. (y L)) & the_obj.vacc(f,s) = list_accum(s',x'.f(s',x');s;L)) | [graphobj-properties] |
Thm* For any graph
t:GraphObject(the_graph). t.eaccw ( T:Type, s:T, x:V, f:(T V T). L:V List. ( y:V. x-the_graph- > y  (y L)) & t.eacc(f,s,x) = list_accum(s',x'.f(s',x');s;L)) | [gro_eaccw_wf] |
Def dfs(the_obj;s;i) == if member-paren(x,y.the_obj.eq(x,y);i;s) s else [inl(i) / (the_obj.eacc(( s',j. dfs(the_obj;s';j)),[inr(i) / s],i))] fi (recursive) | [dfs] |