We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Graphs!SimplePath
1 parent 87fdc6a commit 2560bc8Copy full SHA for 2560bc8
modules/Graphs.tla
@@ -1,6 +1,7 @@
1
------------------------------- MODULE Graphs -------------------------------
2
LOCAL INSTANCE Naturals
3
LOCAL INSTANCE Sequences
4
+LOCAL INSTANCE SequencesExt
5
6
IsDirectedGraph(G) ==
7
/\ G = [node |-> G.node, edge |-> G.edge]
@@ -26,6 +27,13 @@ Path(G) == {p \in Seq(G.node) :
26
27
/\ p # << >>
28
/\ \A i \in 1..(Len(p)-1) : <<p[i], p[i+1]>> \in G.edge}
29
30
+SimplePath(G) ==
31
+ \* A simple path is a path with no repeated nodes.
32
+ {p \in SeqOf(G.node, Cardinality(G.node)) :
33
+ /\ p # << >>
34
+ /\ Cardinality({ p[i] : i \in DOMAIN p}) = Len(p)
35
+ /\ \A i \in 1..(Len(p)-1) : <<p[i], p[i+1]>> \in G.edge}
36
+
37
AreConnectedIn(m, n, G) ==
38
\E p \in Path(G) : (p[1] = m) /\ (p[Len(p)] = n)
39
0 commit comments