Origin Definitions Sections Graphs Doc

graph_1_2
Nuprl Section: graph_1_2

Selected Objects
defmod_guardmod_guard(x;y) == x mod y
THMmod_add_guardx,y:, n:. ((x+y) mod n) = mod_guard((x mod n)+(y mod n);n)
THMmod_mul_guardx,y:, n:. ((xy) mod n) = mod_guard((x mod n)(y mod n);n)
THMelim_dividesx:, n:. (n | x) (x mod n) = 0
THMsqrt_prime_irrationalp:. prime(p) (m,n:. mm = pnn n = 0)
THMfappend-increasingn,m:, f:((n-1)(m-1)). increasing(f;n-1) increasing(f[n-1:=m-1];n)
THMfappend-injectn,m:, f:((n-1)(m-1)). Inj((n-1); (m-1); f) Inj(n; m; f[n-1:=m-1])
THMfinite-partitionn,k:, c:(nk). p:(k( List)). sum(||p(j)|| | j < k) = n & (j:k, x,y:||p(j)||. x < y (p(j))[x] > (p(j))[y]) & (j:k, x:||p(j)||. (p(j))[x] < n & c((p(j))[x]) = j)
THMpigeon-holen,m:, f:(nm). Inj(n; m; f) nm
defarrowsr- > L^k == n:. rn (G:({s:(n List)| ||s|| = k & (x,y:||s||. x < y s[x] < s[y]) }||L||). c:||L||, f:(L[c]n). increasing(f;L[c]) & (s:L[c] List. ||s|| = k (x,y:||s||. x < y s[x] < s[y]) G(map(f;s)) = c))
THMtrivial-arrowsk:, L: List. k-1- > L^k (i:||L||. L[i] < k)
THMarrows-monotone1k:, L: List, r1,r2:. r1r2 r1- > L^k r2- > L^k
THMRamsey-base-caseL: List. sum(L[i]-1 | i < ||L||)+1- > L^1
deflist-decL[i--] == mklist(||L||;j.if j=i L[j]-1 else L[j] fi)
THMlist-dec-lengthL: List, i:||L||. 0 < L[i] ||L[i--]|| = ||L||
THMlist-dec-selectL: List, i,j:||L||. 0 < L[i] L[i--][j] = if j=i L[j]-1 else L[j] fi
THMRamsey-recursionr,k:, L,R: List. 2k ||R|| = ||L|| (i:||L||. 0 < L[i] R[i]- > L[i--]^k) r- > R^k-1 r+1- > L^k
THMRamseyk:, L: List. 0 < ||L|| (r:. r- > L^k)
defparen(rec) paren(T;s) == s = nil (T+T) List (t:T, s':(T+T) List. s = ([inl(t)] @ s' @ [inr(t)]) & paren(T;s')) (s',s'':(T+T) List. ||s'|| < ||s|| & ||s''|| < ||s|| & s = (s' @ s'') & paren(T;s') & paren(T;s''))
THMparen_inductionP:(((T+T) List)Prop). P(nil) (s1,s2:(T+T) List. P(s1) P(s2) paren(T;s1) paren(T;s2) P(s1 @ s2)) (s:(T+T) List, t:T. P(s) paren(T;s) P([inl(t)] @ s @ [inr(t)])) (s:(T+T) List. paren(T;s) P(s))
THMparen_balance1s':(T+T) List. paren(T;s') (i:T. (inl(i) s') (inr(i) s'))
defmember-parenmember-paren(x,y.E(x;y);i;s) == (xs.InjCase(x; a. E(a;i), E(a;i)))
THMassert-member-parenE:(TT). (x,y:T. E(x,y) x = y) (i:T, s:(T+T) List. member-paren(x,y.E(x,y);i;s) (inl(i) s) (inr(i) s))
defmember-right-parenmember-right-paren(x,y.E(x;y);i;s) == (xs.InjCase(x; a. false, E(a;i)))
THMassert-member-right-parenE:(TT). (x,y:T. E(x,y) x = y) (i:T, s:(T+T) List. member-right-paren(x,y.E(x,y);i;s) (inr(i) s))
defmember-left-parenmember-left-paren(x,y.E(x;y);i;s) == (xs.InjCase(x; a. E(a;i), false))
THMassert-member-left-parenE:(TT). (x,y:T. E(x,y) x = y) (i:T, s:(T+T) List. member-left-paren(x,y.E(x,y);i;s) (inl(i) s))
THMparen_balance2s':(T+T) List. paren(T;s') (i:T. (inr(i) s') (inl(i) s'))
THMappend_parens',s3:(T+T) List. paren(T;s') paren(T;s3) paren(T;s3 @ s')
THMparen_order1s:(T+T) List. paren(T;s) (i:T, s1,s2:(T+T) List. s = (s1 @ [inl(i)] @ s2) (inr(i) s2))
THMparen_intervals:(T+T) List. paren(T;s) no_repeats(T+T;s) (s1,s2,s3:(T+T) List, x:T. s = (s1 @ [inl(x)] @ s2 @ [inr(x)] @ s3) paren(T;s2))
THMdecidable__l_member_paren(x,y:T. Dec(x = y)) (s:(T+T) List, i:T. Dec((inl(i) s)))
defarrayarray(T) == n:nT
defarray-length|a| == 1of(a)
defarray-selecta[i] == 2of(a)(i)
defarray-updatea[i:=v] == < |a|,j.if j=i v else a[j] fi >
THMarray-update-selecta:array(T), j,i:|a|, v:T. a[i:=v][j] ~ if j=i v else a[j] fi
defarray-constarray[n]:=v == < n,i.v >
defarray-countarray-count(v.P(v);a) == sum(if P(a[i]) 1 else 0 fi | i < |a|)
THMarray-count-updateP:(T), a:array(T), i:|a|, v:T. array-count(v.P(v);a[i:=v]) = array-count(v.P(v);a)+if P(v)if P(a[i]) 0 else 1 fi ;P(a[i])-1 else 0 fi
defgraphGraph == v:Typee:Type(evv)Top
defgr_vVertices(t) == 1of(t)
defgr_eEdges(t) == 1of(2of(t))
defgr_fIncidence(t) == 1of(2of(2of(t)))
defgr_ot.o == 2of(2of(2of(t)))
defmkgraph < vertices = v, edges = e, incidence = f > == < v,e,f,o >
defedgex-the_graph- > y == e:Edges(the_graph). Incidence(the_graph)(e) = < x,y >
defpathpath(the_graph;p) == 0 < ||p|| & (i:(||p||-1). p[i]-the_graph- > p[(i+1)])
defconnectx-the_graph- > *y == p:Vertices(the_graph) List. path(the_graph;p) & p[0] = x & last(p) = y
THMconnect_transitivityFor any graph x,y,z:V. x-the_graph- > *y y-the_graph- > *z x-the_graph- > *z
THMconnect_weakeningFor any graph x,y:V. x = y x-the_graph- > *y
THMedge-connectFor any graph x,y:V. x-the_graph- > y x-the_graph- > *y
THMpath-tlFor any graph p:V List. 1 < ||p|| path(the_graph;p) path(the_graph;tl(p))
THMconnect-iffFor any graph (x,y:V. Dec(x = y)) (x,y:V. x-the_graph- > *y x = y (z:V. z = x & x-the_graph- > z & z-the_graph- > *y))
deflist-connectL-G- > *x == (yL.y-G- > *x)
THMlist-connect-singletonFor any graph i,j:V. [i]-- > *j i-the_graph- > *j
THMlist-connect-appendFor any graph A,B:V List, i:V. A @ B-- > *i A-- > *i B-- > *i
deflist-list-connectL1-G- > *L2 == (xL2.L1-G- > *x)
THMlist-list-connect_transitivityFor any graph A,B,C:V List. A-- > *B B-- > *C A-- > *C
THMlist-list-connect-singletonFor any graph A:V List, x:V. A-- > *[x] A-- > *x
THMlist-list-connect-isegFor any graph A,B:V List. B A A-- > *B
THMlist-list-connect_weakeningFor any graph A,B:V List. A = B A-- > *B
THMlist-list-connect-appendFor any graph A,B,C:V List. A-- > *B @ C A-- > *B & A-- > *C
THMlist-list-connect-append2For any graph A,B,C:V List. A-- > *C B-- > *C A @ B-- > *C
defnon-trivial-loopnon-trivial-loop(G;i) == j:Vertices(G). j = i & i-G- > *j & j-G- > *i
defnon-trivial-loop-freenon-trivial-loop-free(G) == i:Vertices(G). non-trivial-loop(G;i)
deftraversaltraversal(G) == (Vertices(G)+Vertices(G)) List
defdf-traversaldf-traversal(G;s) == (i:Vertices(G), s1,s2:traversal(G). s = (s1 @ [inr(i)] @ s2) traversal(G) (j:Vertices(G). (inr(j) s2) (inl(j) s2) j-G- > *i)) & (i:Vertices(G), s1,s2:traversal(G). (j:Vertices(G). i-G- > *j non-trivial-loop(G;j)) s = (s1 @ [inl(i)] @ s2) traversal(G) (j:Vertices(G). i-G- > *j (inr(j) s2)))
THMdf-traversal-cons2For any graph i:V, s:Traversal. (j:V. (inr(j) s) (inl(j) s) j-the_graph- > *i) df-traversal(the_graph;s) df-traversal(the_graph;[inr(i) / s])
THMdf-traversal-nilFor any graph df-traversal(the_graph;nil)
defdepthfirst-traversaldepthfirst-traversal(the_graph;s) == i:Vertices(the_graph), s1,s2:traversal(the_graph). (j:Vertices(the_graph). i-the_graph- > *j non-trivial-loop(the_graph;j)) s = (s1 @ [inl(i)] @ s2) traversal(the_graph) (j:Vertices(the_graph). j = i i-the_graph- > *j (inl(j) s2))
THMparen-df-traversalG:Graph. (x,y:Vertices(G). Dec(x = y)) (s:traversal(G). paren(Vertices(G);s) no_repeats(Vertices(G)+Vertices(G);s) df-traversal(G;s) depthfirst-traversal(G;s))
deftopsortedtopsorted(the_graph;s) == i,j:Vertices(the_graph). i-the_graph- > *j i = j i before j s
defdfl-traversaldfl-traversal(the_graph;L;s) == (i:Vertices(the_graph), s1,s2:traversal(the_graph). s = (s1 @ [inr(i)] @ s2) traversal(the_graph) (j:Vertices(the_graph). (inr(j) s2) (inl(j) s2) j-the_graph- > *i)) & (j:Vertices(the_graph). (inr(j) s) L-the_graph- > *j) & (i:Vertices(the_graph), s1,s2:traversal(the_graph). (j:Vertices(the_graph). i-the_graph- > *j non-trivial-loop(the_graph;j)) s = (s1 @ [inl(i)] @ s2) traversal(the_graph) L-the_graph- > *i)
THMdfl-traversal-connectFor any graph L1,L2:V List, s:Traversal. L1-- > *L2 dfl-traversal(the_graph;L2;s) dfl-traversal(the_graph;L1;s)
THMdfl-traversal-consrFor any graph L:V List, i:V, s:Traversal. (j:V. (inr(j) s) (inl(j) s) j-the_graph- > *i) L-- > *i dfl-traversal(the_graph;L;s) dfl-traversal(the_graph;L;[inr(i) / s])
THMdfl-traversal-conslFor any graph L:V List, i:V, s:Traversal. (inr(i) s) dfl-traversal(the_graph;L;s) dfl-traversal(the_graph;L;[inl(i) / s])
defdfsl-traversaldfsl-traversal(the_graph;L;s) == df-traversal(the_graph;s) & (i:Vertices(the_graph). (inl(i) s) L-the_graph- > *i) & ((i:Vertices(the_graph). L-the_graph- > *i non-trivial-loop(the_graph;i)) (L1,L2:Vertices(the_graph) List. L = (L1 @ L2) (s1,s2:traversal(the_graph). s = (s2 @ s1) traversal(the_graph) & paren(Vertices(the_graph);s1) & paren(Vertices(the_graph);s2) & (j:Vertices(the_graph). ((inl(j) s1) L1-the_graph- > *j) & ((inl(j) s2) L2-the_graph- > *j & L1-the_graph- > *j)))))
THMdfsl-traversal-nilFor any graph dfsl-traversal(the_graph;nil;nil)
THMdfsl-traversal-appendFor any graph L1,L2:V List, s:Traversal. L1-- > *L2 dfsl-traversal(the_graph;L1;s) dfsl-traversal(the_graph;L1 @ L2;s)
deftopsortedltopsortedl(the_graph;L;s) == (i,j:Vertices(the_graph). j = i i-the_graph- > *j i before j s) & (i,j,k:Vertices(the_graph). k-the_graph- > *j k-the_graph- > *i (k':Vertices(the_graph). k' before k L k'-the_graph- > *i) i before j s)
defgraph-isomorphicG H == vmap:(Vertices(G)Vertices(H)), emap:(Edges(G)Edges(H)). Bij(Vertices(G); Vertices(H); vmap) & Bij(Edges(G); Edges(H); emap) & (vmap,vmap) o Incidence(G) = Incidence(H) o emap
THMgraph-isomorphic_weakeningG,H:Graph. G = H G H
THMgraph-isomorphic_transitivityG,H,K:Graph. G H H K G K
THMgraph-isomorphic_inversionG,H:Graph. G H H G
THMgraph-isomorphic-equivEquivRel G,H:Graph. G H
defrel-graphGraph(x,y:T. R(x;y)) == < vertices = T, edges = {p:(TT)| R(1of(p);2of(p)) }, incidence = Id >
THMrel-graph_functionalityR1,R2:(TTProp). (x,y:T. R1(x,y) R2(x,y)) Graph(x,y:T. R1(x,y)) Graph(x,y:T. R2(x,y))
deffun-graphGraph(a:A -- > f(a;b) | b:B) == < vertices = A, edges = AB, incidence = < a,b > . < a,f(a;b) > >
defdivides-graph1DivGraph_1 == Graph(i,j:. i | j)
defdivides-graph2DivGraph_2 == Graph(i: -- > in | n:)
THMfun-graph-rel-graphf:(ABA). (a:A, b1,b2:B. f(a,b1) = f(a,b2) b1 = b2) (a,a':A. Dec(b:B. a' = f(a,b))) Graph(a:A -- > f(a,b) | b:B) Graph(a,a':A. b:B. a' = f(a,b))
THMdiv-graph-isoDivGraph_2 DivGraph_1

Origin Definitions Sections Graphs Doc