x,y,z: VAR T
P,Q: VAR[T,T->bool]
w,w1,p,p1,r: VAR walks[T].prewalk
% BEGINNING OF SECTION ------------------------------------------------- % We show directly that either graph or its complement is path-connected. % Subsequently this is proved again using the Los graph theorem. % Results in this section depend only on above definitions and lemmas, % and are not referenced subsequently.
path_or_not_path: THEOREM empty?(G) OR path_connected?(G) OR path_connected?(complement(G))
% A stronger theorem.
five_degrees_separation: PROPOSITION FORALL (x,y: (vert(G))): x = y OR (EXISTS w: walk_from?(G,w,x,y) and length(w)<5) ORFORALL (x,y: (vert(G))): x = y OR (EXISTS w: walk_from?(complement(G),w,x,y) and length(w)<4 )
% Using this stronger theORem we re-prove path_or_not
paths_or_not: THEOREM empty?(G) OR path_connected?(G) OR path_connected?(complement(G))
% Possibly a more compact formulation.
five_degrees_separated: PROPOSITION
(FORALL (x,y: (vert(G))): EXISTS w: walk_from?(G,w,x,y) AND length(w) < 5) OR
(FORALL (x,y: (vert(G))): EXISTS w: walk_from?(complement(G),w,x,y) AND length(w) < 4)
% END OF PATH-CONNECTED SECTION -------------------------------------------
strong_transitive?(G): bool = FORALL (x,y,z:(vert(G))):
edge?(G)(x,y) AND edge?(G)(y,z) AND x /= z IMPLIES edge?(G)(x,z)
transitive?(G): bool = FORALL (x,y,z: T):
edge?(G)(x,y) AND edge?(G)(y,z) AND x /= z IMPLIES edge?(G)(x,z)
trans_complem: LEMMA vert(G)=vert(H) AND strong_transitive?(G) AND strong_transitive?(H) AND union(G,H)=completion(G) IMPLIES G=completion(G) or H=completion(G)
t_close(G): graph[T] = min[graph[T], num_edges[T],
(LAMBDA (H: graph[T]): vert(H)=vert(G) AND super(G)(H) AND strong_transitive?(H))
]
t_close_1: LEMMA H=t_close(G) IMPLIES vert(H)=vert(G) AND super(G)(H) AND strong_transitive?(H)
t_close_2: LEMMA H=t_close(G) AND super(G)(K) AND strong_transitive?(K) AND vert(K)=vert(G) IMPLIES num_edges[T](H) <= num_edges[T](K)
trans_fill: LEMMA vert(G)=vert(H) AND union(G,H)=completion(G) IMPLIES union(t_close(G),t_close(H))=completion(G)
complem_fill: THEOREM vert(G)=vert(H) AND union(G,H)=completion(G) IMPLIES t_close(G)=completion(G) or t_close(H)=completion(G)
IMPORTING graph_connected
subgraph_conn: LEMMA subgraph?[T](H,G) AND connected?(H) AND vert(H)=vert(G) IMPLIES connected?(G)
complete_conn: LEMMA empty?(G) OR connected?(completion(G))
short_path : LEMMA path_from?(G,p,x,y) AND length(p)>2 AND edge?(G)(seq(p)(length(p)-3),seq(p)(length(p)-1)) IMPLIES (EXISTS p1: path_from?(G,p1,x,y) AND length(p1)=length(p)-1)
trans_walk : LEMMA strong_transitive?(G) AND walk_from?(G,w,x,y) IMPLIES x=y or edge?(G)(x,y)
trans_connected: THEOREM strong_transitive?(G) AND connected?(G) IMPLIES G=completion(G)
disjoint_trans : LEMMA empty?(intersection(vert(H),vert(K))) AND transitive?(H) AND transitive?(K) IMPLIES transitive?(union(H,K))
disjoint_trans_strong: LEMMA empty?(intersection(vert(H),vert(K))) AND strong_transitive?(H) AND strong_transitive?(K) IMPLIES strong_transitive?(union(H,K))
subgraph_trans : LEMMA subset?(V,vert(G)) AND transitive?(G) IMPLIES transitive?(subgraph(G,V))
subgraph_trans_strong: LEMMA subset?(V,vert(G)) AND strong_transitive?(G) IMPLIES strong_transitive?(subgraph(G,V))
t_close_4 : LEMMA subgraph?[T](G,K) AND subgraph?[T](K,t_close(G)) AND strong_transitive?(K) IMPLIES K=t_close(G)
connected_complem: THEOREM empty?(G) OR connected?(G) OR connected?(complement(G))
% Up to this point we defined the transitive closure of a graph abstractly % as defining a type. Now we show that the transitive closure "function" is % uniquely constructible.
p_close(G): graph[T] =
(# vert:= vert(G),
edges := {e:doubleton[T] | (FORALL (x,y:T): x /=y AND e(x) AND e(y) IMPLIESEXISTS (p:prewalk[T]): walk_from?(G,p,x,y))}
#)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.