build devShells.x86_64-linux.ghc948

Reproduce this run
  1. 802.02 s [algebraic-graphs] ============ Minimum (Path Int): instances ============
  2. 802.02 s [algebraic-graphs] OK: LeftNearRing
  3. 802.02 s [algebraic-graphs]
  4. 802.02 s [algebraic-graphs] ============ PowerSet (Path Int): instances ============
  5. 802.02 s [algebraic-graphs] OK: Semiring
  6. 802.02 s [algebraic-graphs] OK: Dioid
  7. 802.02 s [algebraic-graphs]
  8. 802.02 s [algebraic-graphs] ============ Count Int: instances ============
  9. 802.02 s [algebraic-graphs] OK: Semiring
  10. 802.02 s [algebraic-graphs] OK: StarSemiring
  11. 802.02 s [algebraic-graphs]
  12. 802.02 s [algebraic-graphs] ============ Labelled.AdjacencyMap.consistent ============
  13. 802.02 s [algebraic-graphs] OK: arbitraryLabelledAdjacencyMap
  14. 802.02 s [algebraic-graphs] OK: empty
  15. 802.02 s [algebraic-graphs] OK: vertex
  16. 802.02 s [algebraic-graphs] OK: edge
  17. 802.02 s [algebraic-graphs] OK: overlay
  18. 802.02 s [algebraic-graphs] OK: connect
  19. 802.02 s [algebraic-graphs] OK: vertices
  20. 802.02 s [algebraic-graphs] OK: edges
  21. 802.02 s [algebraic-graphs] OK: overlays
  22. 802.02 s [algebraic-graphs] OK: fromAdjacencyMaps
  23. 802.02 s [algebraic-graphs] OK: removeVertex
  24. 802.02 s [algebraic-graphs] OK: removeEdge
  25. 802.02 s [algebraic-graphs] OK: replaceVertex
  26. 802.02 s [algebraic-graphs] OK: replaceEdge
  27. 802.02 s [algebraic-graphs] OK: transpose
  28. 802.02 s [algebraic-graphs] OK: gmap
  29. 802.02 s [algebraic-graphs] OK: emap
  30. 802.02 s [algebraic-graphs] OK: induce
  31. 802.02 s [algebraic-graphs] OK: closure
  32. 802.02 s [algebraic-graphs] OK: reflexiveClosure
  33. 802.02 s [algebraic-graphs] OK: symmetricClosure
  34. 802.02 s [algebraic-graphs] OK: transitiveClosure
  35. 802.02 s [algebraic-graphs]
  36. 802.02 s [algebraic-graphs] ============ Labelled.AdjacencyMap.empty ============
  37. 802.02 s [algebraic-graphs] OK: isEmpty empty == True
  38. 802.02 s [algebraic-graphs] OK: hasVertex x empty == False
  39. 802.02 s [algebraic-graphs] OK: vertexCount empty == 0
  40. 802.02 s [algebraic-graphs] OK: edgeCount empty == 0
  41. 802.02 s [algebraic-graphs]
  42. 802.02 s [algebraic-graphs] ============ Labelled.AdjacencyMap.vertex ============
  43. 802.02 s [algebraic-graphs] OK: isEmpty (vertex x) == False
  44. 802.02 s [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y)
  45. 802.02 s [algebraic-graphs] OK: vertexCount (vertex x) == 1
  46. 802.02 s [algebraic-graphs] OK: edgeCount (vertex x) == 0
  47. 802.02 s [algebraic-graphs]
  48. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.edge ============
  49. 804.22 s [algebraic-graphs] OK: edge e x y == connect e (vertex x) (vertex y)
  50. 804.22 s [algebraic-graphs] OK: edge zero x y == vertices [x,y]
  51. 804.22 s [algebraic-graphs] OK: hasEdge x y (edge e x y) == (e /= mempty)
  52. 804.22 s [algebraic-graphs] OK: edgeLabel x y (edge e x y) == e
  53. 804.22 s [algebraic-graphs] OK: edgeCount (edge e x y) == if e == mempty then 0 else 1
  54. 804.22 s [algebraic-graphs] OK: vertexCount (edge e 1 1) == 1
  55. 804.22 s [algebraic-graphs] OK: vertexCount (edge e 1 2) == 2
  56. 804.22 s [algebraic-graphs] OK: x -<e>- y == edge e x y
  57. 804.22 s [algebraic-graphs]
  58. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.overlay ============
  59. 804.22 s [algebraic-graphs] OK: isEmpty (overlay x y) == isEmpty x && isEmpty y
  60. 804.22 s [algebraic-graphs] OK: hasVertex z (overlay x y) == hasVertex z x || hasVertex z y
  61. 804.22 s [algebraic-graphs] OK: vertexCount (overlay x y) >= vertexCount x
  62. 804.22 s [algebraic-graphs] OK: vertexCount (overlay x y) <= vertexCount x + vertexCount y
  63. 804.22 s [algebraic-graphs] OK: edgeCount (overlay x y) >= edgeCount x
  64. 804.22 s [algebraic-graphs] OK: edgeCount (overlay x y) <= edgeCount x + edgeCount y
  65. 804.22 s [algebraic-graphs] OK: vertexCount (overlay 1 2) == 2
  66. 804.22 s [algebraic-graphs] OK: edgeCount (overlay 1 2) == 0
  67. 804.22 s [algebraic-graphs]
  68. 804.22 s [algebraic-graphs] OK: edgeLabel x y $ overlay (edge e x y) (edge zero x y) == e
  69. 804.22 s [algebraic-graphs] OK: edgeLabel x y $ overlay (edge e x y) (edge f x y) == e <+> f
  70. 804.22 s [algebraic-graphs]
  71. 804.22 s [algebraic-graphs] OK: edgeLabel 1 3 $ transitiveClosure (overlay (edge e 1 2) (edge one 2 3)) == e
  72. 804.22 s [algebraic-graphs] OK: edgeLabel 1 3 $ transitiveClosure (overlay (edge e 1 2) (edge f 2 3)) == e <.> f
  73. 804.22 s [algebraic-graphs]
  74. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.connect ============
  75. 804.22 s [algebraic-graphs] OK: isEmpty (connect e x y) == isEmpty x && isEmpty y
  76. 804.22 s [algebraic-graphs] OK: hasVertex z (connect e x y) == hasVertex z x || hasVertex z y
  77. 804.22 s [algebraic-graphs] OK: vertexCount (connect e x y) >= vertexCount x
  78. 804.22 s [algebraic-graphs] OK: vertexCount (connect e x y) <= vertexCount x + vertexCount y
  79. 804.22 s [algebraic-graphs] OK: edgeCount (connect e x y) <= vertexCount x * vertexCount y + edgeCount x + edgeCount y
  80. 804.22 s [algebraic-graphs] OK: vertexCount (connect e 1 2) == 2
  81. 804.22 s [algebraic-graphs] OK: edgeCount (connect e 1 2) == if e == zero then 0 else 1
  82. 804.22 s [algebraic-graphs]
  83. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.vertices ============
  84. 804.22 s [algebraic-graphs] OK: vertices [] == empty
  85. 804.22 s [algebraic-graphs] OK: vertices [x] == vertex x
  86. 804.22 s [algebraic-graphs] OK: vertices == overlays . map vertex
  87. 804.22 s [algebraic-graphs] OK: hasVertex x . vertices == elem x
  88. 804.22 s [algebraic-graphs] OK: vertexCount . vertices == length . nub
  89. 804.22 s [algebraic-graphs] OK: vertexSet . vertices == Set.fromList
  90. 804.22 s [algebraic-graphs]
  91. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.edges ============
  92. 804.22 s [algebraic-graphs] OK: edges [] == empty
  93. 804.22 s [algebraic-graphs] OK: edges [(e,x,y)] == edge e x y
  94. 804.22 s [algebraic-graphs] OK: edges == overlays . map (\(e, x, y) -> edge e x y)
  95. 804.22 s [algebraic-graphs]
  96. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.overlays ============
  97. 804.22 s [algebraic-graphs] OK: overlays [] == empty
  98. 804.22 s [algebraic-graphs] OK: overlays [x] == x
  99. 804.22 s [algebraic-graphs] OK: overlays [x,y] == overlay x y
  100. 804.22 s [algebraic-graphs] OK: overlays == foldr overlay empty
  101. 804.22 s [algebraic-graphs] OK: isEmpty . overlays == all isEmpty
  102. 804.22 s [algebraic-graphs]
  103. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.fromAdjacencyMaps ============
  104. 804.22 s [algebraic-graphs] OK: fromAdjacencyMaps [] == empty
  105. 804.22 s [algebraic-graphs] OK: fromAdjacencyMaps [(x, Map.empty)] == vertex x
  106. 804.22 s [algebraic-graphs] OK: fromAdjacencyMaps [(x, Map.singleton y e)] == if e == zero then vertices [x,y] else edge e x y
  107. 804.22 s [algebraic-graphs] OK: overlay (fromAdjacencyMaps xs) (fromAdjacencyMaps ys) == fromAdjacencyMaps (xs ++ ys)
  108. 804.22 s [algebraic-graphs]
  109. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.isSubgraphOf ============
  110. 804.22 s [algebraic-graphs] OK: isSubgraphOf empty x == True
  111. 804.22 s [algebraic-graphs] OK: isSubgraphOf (vertex x) empty == False
  112. 804.22 s [algebraic-graphs] OK: isSubgraphOf x y ==> x <= y
  113. 804.22 s [algebraic-graphs]
  114. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.isEmpty ============
  115. 804.22 s [algebraic-graphs] OK: isEmpty empty == True
  116. 804.22 s [algebraic-graphs] OK: isEmpty (overlay empty empty) == True
  117. 804.22 s [algebraic-graphs] OK: isEmpty (vertex x) == False
  118. 804.22 s [algebraic-graphs] OK: isEmpty (removeVertex x $ vertex x) == True
  119. 804.22 s [algebraic-graphs] OK: isEmpty (removeEdge x y $ edge e x y) == False
  120. 804.22 s [algebraic-graphs]
  121. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.hasVertex ============
  122. 804.22 s [algebraic-graphs] OK: hasVertex x empty == False
  123. 804.22 s [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y)
  124. 804.22 s [algebraic-graphs] OK: hasVertex x . removeVertex x == const False
  125. 804.22 s [algebraic-graphs]
  126. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.hasEdge ============
  127. 804.22 s [algebraic-graphs] OK: hasEdge x y empty == False
  128. 804.22 s [algebraic-graphs] OK: hasEdge x y (vertex z) == False
  129. 804.22 s [algebraic-graphs] OK: hasEdge x y (edge e x y) == (e /= zero)
  130. 804.22 s [algebraic-graphs] OK: hasEdge x y . removeEdge x y == const False
  131. 804.22 s [algebraic-graphs] OK: hasEdge x y == not . null . filter (\(_,ex,ey) -> ex == x && ey == y) . edgeList
  132. 804.22 s [algebraic-graphs]
  133. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.edgeLabel ============
  134. 804.22 s [algebraic-graphs] OK: edgeLabel x y empty == zero
  135. 804.22 s [algebraic-graphs] OK: edgeLabel x y (vertex z) == zero
  136. 804.22 s [algebraic-graphs] OK: edgeLabel x y (edge e x y) == e
  137. 804.22 s [algebraic-graphs] OK: edgeLabel s t (overlay x y) == edgeLabel s t x + edgeLabel s t y
  138. 804.22 s [algebraic-graphs]
  139. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.vertexCount ============
  140. 804.22 s [algebraic-graphs] OK: vertexCount empty == 0
  141. 804.22 s [algebraic-graphs] OK: vertexCount (vertex x) == 1
  142. 804.22 s [algebraic-graphs] OK: vertexCount == length . vertexList
  143. 804.22 s [algebraic-graphs] OK: vertexCount x < vertexCount y ==> x < y
  144. 804.22 s [algebraic-graphs]
  145. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.edgeCount ============
  146. 804.22 s [algebraic-graphs] OK: edgeCount empty == 0
  147. 804.22 s [algebraic-graphs] OK: edgeCount (vertex x) == 0
  148. 804.22 s [algebraic-graphs] OK: edgeCount (edge e x y) == if e == zero then 0 else 1
  149. 804.22 s [algebraic-graphs] OK: edgeCount == length . edgeList
  150. 804.22 s [algebraic-graphs]
  151. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.vertexList ============
  152. 804.22 s [algebraic-graphs] OK: vertexList empty == []
  153. 804.22 s [algebraic-graphs] OK: vertexList (vertex x) == [x]
  154. 804.22 s [algebraic-graphs] OK: vertexList . vertices == nub . sort
  155. 804.22 s [algebraic-graphs]
  156. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.edgeList ============
  157. 804.22 s [algebraic-graphs] OK: edgeList empty == []
  158. 804.22 s [algebraic-graphs] OK: edgeList (vertex x) == []
  159. 804.22 s [algebraic-graphs] OK: edgeList (edge e x y) == if e == zero then [] else [(e,x,y)]
  160. 804.22 s [algebraic-graphs]
  161. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.vertexSet ============
  162. 804.22 s [algebraic-graphs] OK: vertexSet empty == Set.empty
  163. 804.22 s [algebraic-graphs] OK: vertexSet . vertex == Set.singleton
  164. 804.22 s [algebraic-graphs] OK: vertexSet . vertices == Set.fromList
  165. 804.22 s [algebraic-graphs]
  166. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.edgeSet ============
  167. 804.22 s [algebraic-graphs] OK: edgeSet empty == Set.empty
  168. 804.22 s [algebraic-graphs] OK: edgeSet (vertex x) == Set.empty
  169. 804.22 s [algebraic-graphs] OK: edgeSet (edge e x y) == if e == zero then Set.empty else Set.singleton (e,x,y)
  170. 804.22 s [algebraic-graphs]
  171. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.preSet ============
  172. 804.22 s [algebraic-graphs] OK: preSet x empty == Set.empty
  173. 804.22 s [algebraic-graphs] OK: preSet x (vertex x) == Set.empty
  174. 804.22 s [algebraic-graphs] OK: preSet 1 (edge e 1 2) == Set.empty
  175. 804.22 s [algebraic-graphs] OK: preSet y (edge e x y) == if e == zero then Set.empty else Set.fromList [x]
  176. 804.22 s [algebraic-graphs]
  177. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.postSet ============
  178. 804.22 s [algebraic-graphs] OK: postSet x empty == Set.empty
  179. 804.22 s [algebraic-graphs] OK: postSet x (vertex x) == Set.empty
  180. 804.22 s [algebraic-graphs] OK: postSet x (edge e x y) == if e == zero then Set.empty else Set.fromList [y]
  181. 804.22 s [algebraic-graphs] OK: postSet 2 (edge e 1 2) == Set.empty
  182. 804.22 s [algebraic-graphs]
  183. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.skeleton ============
  184. 804.22 s [algebraic-graphs] OK: hasEdge x y == hasEdge x y . skeleton
  185. 804.22 s [algebraic-graphs]
  186. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.removeVertex ============
  187. 804.22 s [algebraic-graphs] OK: removeVertex x (vertex x) == empty
  188. 804.22 s [algebraic-graphs] OK: removeVertex 1 (vertex 2) == vertex 2
  189. 804.22 s [algebraic-graphs] OK: removeVertex x (edge e x x) == empty
  190. 804.22 s [algebraic-graphs] OK: removeVertex 1 (edge e 1 2) == vertex 2
  191. 804.22 s [algebraic-graphs] OK: removeVertex x . removeVertex x == removeVertex x
  192. 804.22 s [algebraic-graphs]
  193. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.removeEdge ============
  194. 804.22 s [algebraic-graphs] OK: removeEdge x y (edge e x y) == vertices [x,y]
  195. 804.22 s [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y
  196. 804.22 s [algebraic-graphs] OK: removeEdge x y . removeVertex x == removeVertex x
  197. 804.22 s [algebraic-graphs] OK: removeEdge 1 1 (1 * 1 * 2 * 2) == 1 * 2 * 2
  198. 804.22 s [algebraic-graphs] OK: removeEdge 1 2 (1 * 1 * 2 * 2) == 1 * 1 + 2 * 2
  199. 804.22 s [algebraic-graphs]
  200. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.replaceVertex ============
  201. 804.22 s [algebraic-graphs] OK: replaceVertex x x == id
  202. 804.22 s [algebraic-graphs] OK: replaceVertex x y (vertex x) == vertex y
  203. 804.22 s [algebraic-graphs] OK: replaceVertex x y == gmap (\v -> if v == x then y else v)
  204. 804.22 s [algebraic-graphs]
  205. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.replaceEdge ============
  206. 804.22 s [algebraic-graphs] OK: replaceEdge e x y z == overlay (removeEdge x y z) (edge e x y)
  207. 804.22 s [algebraic-graphs] OK: replaceEdge e x y (edge f x y) == edge e x y
  208. 804.22 s [algebraic-graphs] OK: edgeLabel x y (replaceEdge e x y z) == e
  209. 804.22 s [algebraic-graphs]
  210. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.transpose ============
  211. 804.22 s [algebraic-graphs] OK: transpose empty == empty
  212. 804.22 s [algebraic-graphs] OK: transpose (vertex x) == vertex x
  213. 804.22 s [algebraic-graphs] OK: transpose (edge e x y) == edge e y x
  214. 804.22 s [algebraic-graphs] OK: transpose . transpose == id
  215. 804.22 s [algebraic-graphs]
  216. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.gmap ============
  217. 804.22 s [algebraic-graphs] OK: gmap f empty == empty
  218. 804.22 s [algebraic-graphs] OK: gmap f (vertex x) == vertex (f x)
  219. 804.22 s [algebraic-graphs] OK: gmap f (edge e x y) == edge e (f x) (f y)
  220. 804.22 s [algebraic-graphs] OK: gmap id == id
  221. 804.22 s [algebraic-graphs] OK: gmap f . gmap g == gmap (f . g)
  222. 804.22 s [algebraic-graphs]
  223. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.emap ============
  224. 804.22 s [algebraic-graphs] OK: emap h empty == empty
  225. 804.22 s [algebraic-graphs] OK: emap h (vertex x) == vertex x
  226. 804.22 s [algebraic-graphs] OK: emap h (edge e x y) == edge (h e) x y
  227. 804.22 s [algebraic-graphs] OK: emap h (overlay x y) == overlay (emap h x) (emap h y)
  228. 804.22 s [algebraic-graphs] OK: emap h (connect e x y) == connect (h e) (emap h x) (emap h y)
  229. 804.22 s [algebraic-graphs] OK: emap id == id
  230. 804.22 s [algebraic-graphs] OK: emap g . emap h == emap (g . h)
  231. 804.22 s [algebraic-graphs]
  232. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.induce ============
  233. 804.22 s [algebraic-graphs] OK: induce (const True ) x == x
  234. 804.22 s [algebraic-graphs] OK: induce (const False) x == empty
  235. 804.22 s [algebraic-graphs] OK: induce (/= x) == removeVertex x
  236. 804.22 s [algebraic-graphs] OK: induce p . induce q == induce (\x -> p x && q x)
  237. 804.22 s [algebraic-graphs] OK: isSubgraphOf (induce p x) x == True
  238. 804.22 s [algebraic-graphs]
  239. 804.22 s [algebraic-graphs] ============ Labelled.AdjacencyMap.induceJust ============
  240. 805.33 s [algebraic-graphs] OK: induceJust (vertex Nothing) == empty
  241. 805.33 s [algebraic-graphs] OK: induceJust (edge (Just x) Nothing) == vertex x
  242. 805.33 s [algebraic-graphs] OK: induceJust . gmap Just == id
  243. 805.33 s [algebraic-graphs] OK: induceJust . gmap (\x -> if p x then Just x else Nothing) == induce p
  244. 805.33 s [algebraic-graphs]
  245. 805.33 s [algebraic-graphs] ============ Labelled.AdjacencyMap.closure ============
  246. 805.33 s [algebraic-graphs] OK: closure empty == empty
  247. 805.33 s [algebraic-graphs] OK: closure (vertex x) == edge one x x
  248. 805.33 s [algebraic-graphs] OK: closure (edge e x x) == edge one x x
  249. 805.33 s [algebraic-graphs] OK: closure (edge e x y) == edges [(one,x,x), (e,x,y), (one,y,y)]
  250. 805.33 s [algebraic-graphs] OK: closure == reflexiveClosure . transitiveClosure
  251. 805.33 s [algebraic-graphs] OK: closure == transitiveClosure . reflexiveClosure
  252. 805.33 s [algebraic-graphs] OK: closure . closure == closure
  253. 805.33 s [algebraic-graphs] OK: postSet x (closure y) == Set.fromList (reachable y x)
  254. 805.33 s [algebraic-graphs]
  255. 805.33 s [algebraic-graphs] ============ Labelled.AdjacencyMap.reflexiveClosure ============
  256. 805.33 s [algebraic-graphs] OK: reflexiveClosure empty == empty
  257. 805.33 s [algebraic-graphs] OK: reflexiveClosure (vertex x) == edge one x x
  258. 805.33 s [algebraic-graphs] OK: reflexiveClosure (edge e x x) == edge one x x
  259. 805.33 s [algebraic-graphs] OK: reflexiveClosure (edge e x y) == edges [(one,x,x), (e,x,y), (one,y,y)]
  260. 805.33 s [algebraic-graphs] OK: reflexiveClosure . reflexiveClosure == reflexiveClosure
  261. 805.33 s [algebraic-graphs]
  262. 805.33 s [algebraic-graphs] ============ Labelled.AdjacencyMap.symmetricClosure ============
  263. 805.33 s [algebraic-graphs] OK: symmetricClosure empty == empty
  264. 805.33 s [algebraic-graphs] OK: symmetricClosure (vertex x) == vertex x
  265. 805.33 s [algebraic-graphs] OK: symmetricClosure (edge e x y) == edges [(e,x,y), (e,y,x)]
  266. 805.33 s [algebraic-graphs] OK: symmetricClosure x == overlay x (transpose x)
  267. 805.33 s [algebraic-graphs] OK: symmetricClosure . symmetricClosure == symmetricClosure
  268. 805.33 s [algebraic-graphs]
  269. 805.33 s [algebraic-graphs] ============ Labelled.AdjacencyMap.transitiveClosure ============
  270. 805.33 s [algebraic-graphs] OK: transitiveClosure empty == empty
  271. 805.33 s [algebraic-graphs] OK: transitiveClosure (vertex x) == vertex x
  272. 805.33 s [algebraic-graphs] OK: transitiveClosure (edge e x y) == edge e x y
  273. 805.33 s [algebraic-graphs] OK: transitiveClosure . transitiveClosure == transitiveClosure
  274. 805.33 s [algebraic-graphs]
  275. 805.33 s [algebraic-graphs] ============ Labelled.Graph.empty ============
  276. 805.33 s [algebraic-graphs] OK: isEmpty empty == True
  277. 805.33 s [algebraic-graphs] OK: hasVertex x empty == False
  278. 805.33 s [algebraic-graphs] OK: vertexCount empty == 0
  279. 805.33 s [algebraic-graphs] OK: edgeCount empty == 0
  280. 805.33 s [algebraic-graphs]
  281. 805.33 s [algebraic-graphs] ============ Labelled.Graph.vertex ============
  282. 805.33 s [algebraic-graphs] OK: isEmpty (vertex x) == False
  283. 805.33 s [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y)
  284. 805.33 s [algebraic-graphs] OK: vertexCount (vertex x) == 1
  285. 805.33 s [algebraic-graphs] OK: edgeCount (vertex x) == 0
  286. 805.33 s [algebraic-graphs]
  287. 805.33 s [algebraic-graphs] ============ Labelled.Graph.edge ============
  288. 805.33 s [algebraic-graphs] OK: edge e x y == connect e (vertex x) (vertex y)
  289. 805.33 s [algebraic-graphs] OK: edge zero x y == vertices [x,y]
  290. 805.33 s [algebraic-graphs] OK: hasEdge x y (edge e x y) == (e /= mempty)
  291. 805.33 s [algebraic-graphs] OK: edgeLabel x y (edge e x y) == e
  292. 805.33 s [algebraic-graphs] OK: edgeCount (edge e x y) == if e == mempty then 0 else 1
  293. 805.33 s [algebraic-graphs] OK: vertexCount (edge e 1 1) == 1
  294. 805.33 s [algebraic-graphs] OK: vertexCount (edge e 1 2) == 2
  295. 805.33 s [algebraic-graphs] OK: x -<e>- y == edge e x y
  296. 805.33 s [algebraic-graphs]
  297. 805.33 s [algebraic-graphs] ============ Labelled.Graph.overlay ============
  298. 805.33 s [algebraic-graphs] OK: isEmpty (overlay x y) == isEmpty x && isEmpty y
  299. 805.33 s [algebraic-graphs] OK: hasVertex z (overlay x y) == hasVertex z x || hasVertex z y
  300. 805.33 s [algebraic-graphs] OK: vertexCount (overlay x y) >= vertexCount x
  301. 805.33 s [algebraic-graphs] OK: vertexCount (overlay x y) <= vertexCount x + vertexCount y
  302. 805.33 s [algebraic-graphs] OK: edgeCount (overlay x y) >= edgeCount x
  303. 805.33 s [algebraic-graphs] OK: edgeCount (overlay x y) <= edgeCount x + edgeCount y
  304. 805.33 s [algebraic-graphs] OK: vertexCount (overlay 1 2) == 2
  305. 805.33 s [algebraic-graphs] OK: edgeCount (overlay 1 2) == 0
  306. 805.33 s [algebraic-graphs]
  307. 805.33 s [algebraic-graphs] OK: edgeLabel x y $ overlay (edge e x y) (edge zero x y) == e
  308. 805.33 s [algebraic-graphs] OK: edgeLabel x y $ overlay (edge e x y) (edge f x y) == e <+> f
  309. 805.33 s [algebraic-graphs]
  310. 805.33 s [algebraic-graphs] OK: edgeLabel 1 3 $ transitiveClosure (overlay (edge e 1 2) (edge one 2 3)) == e
  311. 805.33 s [algebraic-graphs] OK: edgeLabel 1 3 $ transitiveClosure (overlay (edge e 1 2) (edge f 2 3)) == e <.> f
  312. 805.33 s [algebraic-graphs]
  313. 805.33 s [algebraic-graphs] ============ Labelled.Graph.connect ============
  314. 805.33 s [algebraic-graphs] OK: isEmpty (connect e x y) == isEmpty x && isEmpty y
  315. 805.33 s [algebraic-graphs] OK: hasVertex z (connect e x y) == hasVertex z x || hasVertex z y
  316. 805.33 s [algebraic-graphs] OK: vertexCount (connect e x y) >= vertexCount x
  317. 805.33 s [algebraic-graphs] OK: vertexCount (connect e x y) <= vertexCount x + vertexCount y
  318. 805.33 s [algebraic-graphs] OK: edgeCount (connect e x y) <= vertexCount x * vertexCount y + edgeCount x + edgeCount y
  319. 805.33 s [algebraic-graphs] OK: vertexCount (connect e 1 2) == 2
  320. 805.33 s [algebraic-graphs] OK: edgeCount (connect e 1 2) == if e == zero then 0 else 1
  321. 805.33 s [algebraic-graphs]
  322. 805.33 s [algebraic-graphs] ============ Labelled.Graph.vertices ============
  323. 805.33 s [algebraic-graphs] OK: vertices [] == empty
  324. 805.33 s [algebraic-graphs] OK: vertices [x] == vertex x
  325. 805.33 s [algebraic-graphs] OK: vertices == overlays . map vertex
  326. 805.33 s [algebraic-graphs] OK: hasVertex x . vertices == elem x
  327. 805.33 s [algebraic-graphs] OK: vertexCount . vertices == length . nub
  328. 805.33 s [algebraic-graphs] OK: vertexSet . vertices == Set.fromList
  329. 805.33 s [algebraic-graphs]
  330. 805.33 s [algebraic-graphs] ============ Labelled.Graph.edges ============
  331. 805.33 s [algebraic-graphs] OK: edges [] == empty
  332. 805.33 s [algebraic-graphs] OK: edges [(e,x,y)] == edge e x y
  333. 805.33 s [algebraic-graphs] OK: edges == overlays . map (\(e, x, y) -> edge e x y)
  334. 805.33 s [algebraic-graphs]
  335. 805.33 s [algebraic-graphs] ============ Labelled.Graph.overlays ============
  336. 805.33 s [algebraic-graphs] OK: overlays [] == empty
  337. 805.33 s [algebraic-graphs] OK: overlays [x] == x
  338. 805.33 s [algebraic-graphs] OK: overlays [x,y] == overlay x y
  339. 805.33 s [algebraic-graphs] OK: overlays == foldr overlay empty
  340. 805.33 s [algebraic-graphs] OK: isEmpty . overlays == all isEmpty
  341. 805.33 s [algebraic-graphs]
  342. 805.33 s [algebraic-graphs] ============ Labelled.Graph.foldg ============
  343. 805.33 s [algebraic-graphs] OK: foldg empty vertex connect == id
  344. 805.33 s [algebraic-graphs] OK: foldg empty vertex (fmap flip connect) == transpose
  345. 805.33 s [algebraic-graphs] OK: foldg 1 (const 1) (const (+)) == size
  346. 805.33 s [algebraic-graphs] OK: foldg True (const False) (const (&&)) == isEmpty
  347. 805.33 s [algebraic-graphs] OK: foldg False (== x) (const (||)) == hasVertex x
  348. 805.33 s [algebraic-graphs] OK: foldg Set.empty Set.singleton (const Set.union) == vertexSet
  349. 805.33 s [algebraic-graphs]
  350. 805.33 s [algebraic-graphs] ============ Labelled.Graph.buildg ============
  351. 805.33 s [algebraic-graphs] OK: buildg (\e _ _ -> e) == empty
  352. 805.33 s [algebraic-graphs] OK: buildg (\_ v _ -> v x) == vertex x
  353. 805.33 s [algebraic-graphs] OK: buildg (\e v c -> c l (foldg e v c x) (foldg e v c y)) == connect l x y
  354. 805.33 s [algebraic-graphs] OK: buildg (\e v c -> foldr (c zero) e (map v xs)) == vertices xs
  355. 805.33 s [algebraic-graphs] OK: buildg (\e v c -> foldg e v (flip c) g) == transpose g
  356. 805.33 s [algebraic-graphs]
  357. 805.33 s [algebraic-graphs] ============ Labelled.Graph.isSubgraphOf ============
  358. 805.33 s [algebraic-graphs] OK: isSubgraphOf empty x == True
  359. 805.33 s [algebraic-graphs] OK: isSubgraphOf (vertex x) empty == False
  360. 805.33 s [algebraic-graphs] OK: isSubgraphOf x y ==> x <= y
  361. 805.33 s [algebraic-graphs]
  362. 805.33 s [algebraic-graphs] ============ Labelled.Graph.isEmpty ============
  363. 805.33 s [algebraic-graphs] OK: isEmpty empty == True
  364. 805.33 s [algebraic-graphs] OK: isEmpty (overlay empty empty) == True
  365. 805.33 s [algebraic-graphs] OK: isEmpty (vertex x) == False
  366. 805.33 s [algebraic-graphs] OK: isEmpty (removeVertex x $ vertex x) == True
  367. 805.33 s [algebraic-graphs] OK: isEmpty (removeEdge x y $ edge e x y) == False
  368. 805.33 s [algebraic-graphs]
  369. 805.33 s [algebraic-graphs] ============ Labelled.Graph.size ============
  370. 805.33 s [algebraic-graphs] OK: size empty == 1
  371. 805.33 s [algebraic-graphs] OK: size (vertex x) == 1
  372. 805.33 s [algebraic-graphs] OK: size (overlay x y) == size x + size y
  373. 805.33 s [algebraic-graphs] OK: size (connect x y) == size x + size y
  374. 805.33 s [algebraic-graphs] OK: size x >= 1
  375. 805.33 s [algebraic-graphs] OK: size x >= vertexCount x
  376. 805.33 s [algebraic-graphs]
  377. 805.33 s [algebraic-graphs] ============ Labelled.Graph.hasVertex ============
  378. 805.33 s [algebraic-graphs] OK: hasVertex x empty == False
  379. 805.33 s [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y)
  380. 805.33 s [algebraic-graphs] OK: hasVertex x . removeVertex x == const False
  381. 805.33 s [algebraic-graphs]
  382. 805.33 s [algebraic-graphs] ============ Labelled.Graph.hasEdge ============
  383. 805.33 s [algebraic-graphs] OK: hasEdge x y empty == False
  384. 805.33 s [algebraic-graphs] OK: hasEdge x y (vertex z) == False
  385. 805.33 s [algebraic-graphs] OK: hasEdge x y (edge e x y) == (e /= zero)
  386. 805.33 s [algebraic-graphs] OK: hasEdge x y . removeEdge x y == const False
  387. 805.33 s [algebraic-graphs] OK: hasEdge x y == not . null . filter (\(_,ex,ey) -> ex == x && ey == y) . edgeList
  388. 805.33 s [algebraic-graphs]
  389. 805.33 s [algebraic-graphs] ============ Labelled.Graph.edgeLabel ============
  390. 805.33 s [algebraic-graphs] OK: edgeLabel x y empty == zero
  391. 805.33 s [algebraic-graphs] OK: edgeLabel x y (vertex z) == zero
  392. 805.33 s [algebraic-graphs] OK: edgeLabel x y (edge e x y) == e
  393. 805.33 s [algebraic-graphs] OK: edgeLabel s t (overlay x y) == edgeLabel s t x + edgeLabel s t y
  394. 805.33 s [algebraic-graphs]
  395. 805.33 s [algebraic-graphs] ============ Labelled.Graph.vertexCount ============
  396. 805.33 s [algebraic-graphs] OK: vertexCount empty == 0
  397. 805.33 s [algebraic-graphs] OK: vertexCount (vertex x) == 1
  398. 805.33 s [algebraic-graphs] OK: vertexCount == length . vertexList
  399. 805.33 s [algebraic-graphs] OK: vertexCount x < vertexCount y ==> x < y
  400. 805.33 s [algebraic-graphs]
  401. 805.33 s [algebraic-graphs] ============ Labelled.Graph.edgeCount ============
  402. 805.33 s [algebraic-graphs] OK: edgeCount empty == 0
  403. 805.33 s [algebraic-graphs] OK: edgeCount (vertex x) == 0
  404. 805.33 s [algebraic-graphs] OK: edgeCount (edge e x y) == if e == zero then 0 else 1
  405. 805.33 s [algebraic-graphs] OK: edgeCount == length . edgeList
  406. 805.33 s [algebraic-graphs]
  407. 805.33 s [algebraic-graphs] ============ Labelled.Graph.vertexList ============
  408. 805.33 s [algebraic-graphs] OK: vertexList empty == []
  409. 805.33 s [algebraic-graphs] OK: vertexList (vertex x) == [x]
  410. 805.33 s [algebraic-graphs] OK: vertexList . vertices == nub . sort
  411. 805.33 s [algebraic-graphs]
  412. 805.33 s [algebraic-graphs] ============ Labelled.Graph.edgeList ============
  413. 805.33 s [algebraic-graphs] OK: edgeList empty == []
  414. 805.33 s [algebraic-graphs] OK: edgeList (vertex x) == []
  415. 805.33 s [algebraic-graphs] OK: edgeList (edge e x y) == if e == zero then [] else [(e,x,y)]
  416. 805.33 s [algebraic-graphs]
  417. 805.33 s [algebraic-graphs] ============ Labelled.Graph.vertexSet ============
  418. 805.33 s [algebraic-graphs] OK: vertexSet empty == Set.empty
  419. 805.33 s [algebraic-graphs] OK: vertexSet . vertex == Set.singleton
  420. 805.33 s [algebraic-graphs] OK: vertexSet . vertices == Set.fromList
  421. 805.33 s [algebraic-graphs]
  422. 805.33 s [algebraic-graphs] ============ Labelled.Graph.edgeSet ============
  423. 805.33 s [algebraic-graphs] OK: edgeSet empty == Set.empty
  424. 805.33 s [algebraic-graphs] OK: edgeSet (vertex x) == Set.empty
  425. 805.33 s [algebraic-graphs] OK: edgeSet (edge e x y) == if e == zero then Set.empty else Set.singleton (e,x,y)
  426. 805.33 s [algebraic-graphs]
  427. 805.33 s [algebraic-graphs] ============ Labelled.Graph.preSet ============
  428. 805.33 s [algebraic-graphs] OK: preSet x empty == Set.empty
  429. 805.33 s [algebraic-graphs] OK: preSet x (vertex x) == Set.empty
  430. 807.77 s [algebraic-graphs] OK: preSet 1 (edge e 1 2) == Set.empty
  431. 807.93 s [algebraic-graphs] OK: preSet y (edge e x y) == if e == zero then Set.empty else Set.fromList [x]
  432. 807.93 s [algebraic-graphs]
  433. 807.93 s [algebraic-graphs] ============ Labelled.Graph.postSet ============
  434. 807.93 s [algebraic-graphs] OK: postSet x empty == Set.empty
  435. 807.93 s [algebraic-graphs] OK: postSet x (vertex x) == Set.empty
  436. 807.93 s [algebraic-graphs] OK: postSet x (edge e x y) == if e == zero then Set.empty else Set.fromList [y]
  437. 807.93 s [algebraic-graphs] OK: postSet 2 (edge e 1 2) == Set.empty
  438. 807.93 s [algebraic-graphs]
  439. 807.93 s [algebraic-graphs] ============ Labelled.Graph.removeVertex ============
  440. 807.93 s [algebraic-graphs] OK: removeVertex x (vertex x) == empty
  441. 807.93 s [algebraic-graphs] OK: removeVertex 1 (vertex 2) == vertex 2
  442. 807.93 s [algebraic-graphs] OK: removeVertex x (edge e x x) == empty
  443. 807.93 s [algebraic-graphs] OK: removeVertex 1 (edge e 1 2) == vertex 2
  444. 807.93 s [algebraic-graphs] OK: removeVertex x . removeVertex x == removeVertex x
  445. 807.93 s [algebraic-graphs]
  446. 807.93 s [algebraic-graphs] ============ Labelled.Graph.removeEdge ============
  447. 807.93 s [algebraic-graphs] OK: removeEdge x y (edge e x y) == vertices [x,y]
  448. 807.93 s [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y
  449. 807.93 s [algebraic-graphs] OK: removeEdge x y . removeVertex x == removeVertex x
  450. 807.93 s [algebraic-graphs] OK: removeEdge 1 1 (1 * 1 * 2 * 2) == 1 * 2 * 2
  451. 807.93 s [algebraic-graphs] OK: removeEdge 1 2 (1 * 1 * 2 * 2) == 1 * 1 + 2 * 2
  452. 807.93 s [algebraic-graphs]
  453. 807.93 s [algebraic-graphs] ============ Labelled.Graph.replaceVertex ============
  454. 807.93 s [algebraic-graphs] OK: replaceVertex x x == id
  455. 807.93 s [algebraic-graphs] OK: replaceVertex x y (vertex x) == vertex y
  456. 807.93 s [algebraic-graphs] OK: replaceVertex x y == fmap (\v -> if v == x then y else v)
  457. 807.93 s [algebraic-graphs]
  458. 807.93 s [algebraic-graphs] ============ Labelled.Graph.replaceEdge ============
  459. 807.93 s [algebraic-graphs] OK: replaceEdge e x y z == overlay (removeEdge x y z) (edge e x y)
  460. 807.93 s [algebraic-graphs] OK: replaceEdge e x y (edge f x y) == edge e x y
  461. 807.93 s [algebraic-graphs] OK: edgeLabel x y (replaceEdge e x y z) == e
  462. 807.93 s [algebraic-graphs]
  463. 807.93 s [algebraic-graphs] ============ Labelled.Graph.transpose ============
  464. 807.93 s [algebraic-graphs] OK: transpose empty == empty
  465. 807.93 s [algebraic-graphs] OK: transpose (vertex x) == vertex x
  466. 807.93 s [algebraic-graphs] OK: transpose (edge e x y) == edge e y x
  467. 807.93 s [algebraic-graphs] OK: transpose . transpose == id
  468. 807.93 s [algebraic-graphs]
  469. 807.93 s [algebraic-graphs] ============ Labelled.Graph.fmap ============
  470. 807.93 s [algebraic-graphs] OK: fmap f empty == empty
  471. 807.93 s [algebraic-graphs] OK: fmap f (vertex x) == vertex (f x)
  472. 807.93 s [algebraic-graphs] OK: fmap f (edge e x y) == edge e (f x) (f y)
  473. 807.93 s [algebraic-graphs] OK: fmap id == id
  474. 807.93 s [algebraic-graphs] OK: fmap f . fmap g == fmap (f . g)
  475. 807.93 s [algebraic-graphs]
  476. 807.93 s [algebraic-graphs] ============ Labelled.Graph.emap ============
  477. 807.93 s [algebraic-graphs] OK: emap h empty == empty
  478. 807.93 s [algebraic-graphs] OK: emap h (vertex x) == vertex x
  479. 807.93 s [algebraic-graphs] OK: emap h (edge e x y) == edge (h e) x y
  480. 807.93 s [algebraic-graphs] OK: emap h (overlay x y) == overlay (emap h x) (emap h y)
  481. 807.93 s [algebraic-graphs] OK: emap h (connect e x y) == connect (h e) (emap h x) (emap h y)
  482. 807.93 s [algebraic-graphs] OK: emap id == id
  483. 807.93 s [algebraic-graphs] OK: emap g . emap h == emap (g . h)
  484. 807.93 s [algebraic-graphs]
  485. 807.93 s [algebraic-graphs] ============ Labelled.Graph.induce ============
  486. 807.93 s [algebraic-graphs] OK: induce (const True ) x == x
  487. 807.93 s [algebraic-graphs] OK: induce (const False) x == empty
  488. 807.93 s [algebraic-graphs] OK: induce (/= x) == removeVertex x
  489. 807.93 s [algebraic-graphs] OK: induce p . induce q == induce (\x -> p x && q x)
  490. 807.93 s [algebraic-graphs] OK: isSubgraphOf (induce p x) x == True
  491. 807.93 s [algebraic-graphs]
  492. 807.93 s [algebraic-graphs] ============ Labelled.Graph.induceJust ============
  493. 807.93 s [algebraic-graphs] OK: induceJust (vertex Nothing) == empty
  494. 807.93 s [algebraic-graphs] OK: induceJust (edge (Just x) Nothing) == vertex x
  495. 807.93 s [algebraic-graphs] OK: induceJust . gmap Just == id
  496. 807.93 s [algebraic-graphs] OK: induceJust . gmap (\x -> if p x then Just x else Nothing) == induce p
  497. 807.93 s [algebraic-graphs]
  498. 807.93 s [algebraic-graphs] ============ Labelled.Graph.closure ============
  499. 807.93 s [algebraic-graphs] OK: closure empty == empty
  500. 807.93 s [algebraic-graphs] OK: closure (vertex x) == edge one x x
  501. 807.93 s [algebraic-graphs] OK: closure (edge e x x) == edge one x x
  502. 807.93 s [algebraic-graphs] OK: closure (edge e x y) == edges [(one,x,x), (e,x,y), (one,y,y)]
  503. 807.93 s [algebraic-graphs] OK: closure == reflexiveClosure . transitiveClosure
  504. 807.93 s [algebraic-graphs] OK: closure == transitiveClosure . reflexiveClosure
  505. 807.93 s [algebraic-graphs] OK: closure . closure == closure
  506. 807.93 s [algebraic-graphs] OK: postSet x (closure y) == Set.fromList (reachable y x)
  507. 807.93 s [algebraic-graphs]
  508. 807.93 s [algebraic-graphs] ============ Labelled.Graph.reflexiveClosure ============
  509. 807.93 s [algebraic-graphs] OK: reflexiveClosure empty == empty
  510. 807.93 s [algebraic-graphs] OK: reflexiveClosure (vertex x) == edge one x x
  511. 807.93 s [algebraic-graphs] OK: reflexiveClosure (edge e x x) == edge one x x
  512. 807.93 s [algebraic-graphs] OK: reflexiveClosure (edge e x y) == edges [(one,x,x), (e,x,y), (one,y,y)]
  513. 807.93 s [algebraic-graphs] OK: reflexiveClosure . reflexiveClosure == reflexiveClosure
  514. 807.93 s [algebraic-graphs]
  515. 807.93 s [algebraic-graphs] ============ Labelled.Graph.symmetricClosure ============
  516. 807.93 s [algebraic-graphs] OK: symmetricClosure empty == empty
  517. 807.93 s [algebraic-graphs] OK: symmetricClosure (vertex x) == vertex x
  518. 807.93 s [algebraic-graphs] OK: symmetricClosure (edge e x y) == edges [(e,x,y), (e,y,x)]
  519. 807.93 s [algebraic-graphs] OK: symmetricClosure x == overlay x (transpose x)
  520. 807.93 s [algebraic-graphs] OK: symmetricClosure . symmetricClosure == symmetricClosure
  521. 807.93 s [algebraic-graphs]
  522. 807.93 s [algebraic-graphs] ============ Labelled.Graph.transitiveClosure ============
  523. 807.93 s [algebraic-graphs] OK: transitiveClosure empty == empty
  524. 807.93 s [algebraic-graphs] OK: transitiveClosure (vertex x) == vertex x
  525. 807.93 s [algebraic-graphs] OK: transitiveClosure (edge e x y) == edge e x y
  526. 807.93 s [algebraic-graphs] OK: transitiveClosure . transitiveClosure == transitiveClosure
  527. 807.93 s [algebraic-graphs]
  528. 807.93 s [algebraic-graphs] ============ Labelled.Graph.context ============
  529. 807.93 s [algebraic-graphs] OK: context (const False) x == Nothing
  530. 807.93 s [algebraic-graphs] OK: context (== 1) (edge e 1 2) == if e == zero then Just (Context [] []) else Just (Context [] [(e,2)])
  531. 807.93 s [algebraic-graphs] OK: context (== 2) (edge e 1 2) == if e == zero then Just (Context [] []) else Just (Context [(e,1)] [] )
  532. 807.93 s [algebraic-graphs] OK: context (const True ) (edge e 1 2) == if e == zero then Just (Context [] []) else Just (Context [(e,1)] [(e,2)])
  533. 807.93 s [algebraic-graphs] OK: context (== 4) (3 * 1 * 4 * 1 * 5) == Just (Context [(one,3), (one,1)] [(one,1), (one,5)])
  534. 807.93 s [algebraic-graphs]
  535. 807.93 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap ============
  536. 807.93 s [algebraic-graphs] OK: Axioms of non-empty graphs
  537. 807.93 s [algebraic-graphs] OK: Theorems of non-empty graphs
  538. 807.93 s [algebraic-graphs]
  539. 807.93 s [algebraic-graphs] ============ Ord (NonEmpty.AdjacencyMap a) ============
  540. 807.93 s [algebraic-graphs] OK: vertex 1 < vertex 2
  541. 807.93 s [algebraic-graphs] OK: vertex 3 < edge 1 2
  542. 807.93 s [algebraic-graphs] OK: vertex 1 < edge 1 1
  543. 807.93 s [algebraic-graphs] OK: edge 1 1 < edge 1 2
  544. 807.93 s [algebraic-graphs] OK: edge 1 2 < edge 1 1 + edge 2 2
  545. 807.93 s [algebraic-graphs] OK: edge 1 2 < edge 1 3
  546. 807.93 s [algebraic-graphs] OK: x <= x + y
  547. 807.93 s [algebraic-graphs] OK: x + y <= x * y
  548. 807.93 s [algebraic-graphs]
  549. 807.93 s [algebraic-graphs] ============ Show (NonEmpty.AdjacencyMap a) ============
  550. 807.93 s [algebraic-graphs] OK: show (1 :: AdjacencyMap Int) == "vertex 1"
  551. 807.93 s [algebraic-graphs] OK: show (1 + 2 :: AdjacencyMap Int) == "vertices1 [1,2]"
  552. 807.93 s [algebraic-graphs] OK: show (1 * 2 :: AdjacencyMap Int) == "edge 1 2"
  553. 807.93 s [algebraic-graphs] OK: show (1 * 2 * 3 :: AdjacencyMap Int) == "edges1 [(1,2),(1,3),(2,3)]"
  554. 807.93 s [algebraic-graphs] OK: show (1 * 2 + 3 :: AdjacencyMap Int) == "overlay (vertex 3) (edge 1 2)"
  555. 807.93 s [algebraic-graphs] OK: show (vertex (-1) :: AdjacencyMap Int) == "vertex (-1)"
  556. 807.93 s [algebraic-graphs] OK: show (vertex (-1) + vertex (-2) :: AdjacencyMap Int) == "vertices1 [-2,-1]"
  557. 807.93 s [algebraic-graphs] OK: show (vertex (-1) * vertex (-2) :: AdjacencyMap Int) == "edge (-1) (-2)"
  558. 807.93 s [algebraic-graphs] OK: show (vertex (-1) * vertex (-2) * vertex (-3) :: AdjacencyMap Int) == "edges1 [(-2,-3),(-1,-3),(-1,-2)]"
  559. 807.93 s [algebraic-graphs] OK: show (vertex (-1) * vertex (-2) + vertex (-3) :: AdjacencyMap Int) == "overlay (vertex (-3)) (edge (-1) (-2))"
  560. 807.93 s [algebraic-graphs]
  561. 807.93 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.toNonEmpty ============
  562. 807.93 s [algebraic-graphs] OK: toNonEmpty empty == Nothing
  563. 807.93 s [algebraic-graphs] OK: toNonEmpty . fromNonEmpty == Just
  564. 807.93 s [algebraic-graphs]
  565. 807.93 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.fromNonEmpty ============
  566. 807.93 s [algebraic-graphs] OK: isEmpty . fromNonEmpty == const False
  567. 807.93 s [algebraic-graphs]
  568. 807.93 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.vertex ============
  569. 807.93 s [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y)
  570. 807.93 s [algebraic-graphs] OK: vertexCount (vertex x) == 1
  571. 807.93 s [algebraic-graphs] OK: edgeCount (vertex x) == 0
  572. 807.93 s [algebraic-graphs]
  573. 807.93 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.edge ============
  574. 807.93 s [algebraic-graphs] OK: edge x y == connect (vertex x) (vertex y)
  575. 807.93 s [algebraic-graphs] OK: hasEdge x y (edge x y) == True
  576. 807.93 s [algebraic-graphs] OK: edgeCount (edge x y) == 1
  577. 807.93 s [algebraic-graphs] OK: vertexCount (edge 1 1) == 1
  578. 807.93 s [algebraic-graphs] OK: vertexCount (edge 1 2) == 2
  579. 807.93 s [algebraic-graphs]
  580. 807.93 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.overlay ============
  581. 807.93 s [algebraic-graphs] OK: hasVertex z (overlay x y) == hasVertex z x || hasVertex z y
  582. 807.93 s [algebraic-graphs] OK: vertexCount (overlay x y) >= vertexCount x
  583. 807.93 s [algebraic-graphs] OK: vertexCount (overlay x y) <= vertexCount x + vertexCount y
  584. 807.93 s [algebraic-graphs] OK: edgeCount (overlay x y) >= edgeCount x
  585. 807.93 s [algebraic-graphs] OK: edgeCount (overlay x y) <= edgeCount x + edgeCount y
  586. 807.93 s [algebraic-graphs] OK: vertexCount (overlay 1 2) == 2
  587. 807.93 s [algebraic-graphs] OK: edgeCount (overlay 1 2) == 0
  588. 807.93 s [algebraic-graphs]
  589. 807.93 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.connect ============
  590. 807.93 s [algebraic-graphs] OK: hasVertex z (connect x y) == hasVertex z x || hasVertex z y
  591. 807.93 s [algebraic-graphs] OK: vertexCount (connect x y) >= vertexCount x
  592. 807.93 s [algebraic-graphs] OK: vertexCount (connect x y) <= vertexCount x + vertexCount y
  593. 807.93 s [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount x
  594. 807.93 s [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount y
  595. 807.93 s [algebraic-graphs] OK: edgeCount (connect x y) >= vertexCount x * vertexCount y
  596. 807.93 s [algebraic-graphs] OK: edgeCount (connect x y) <= vertexCount x * vertexCount y + edgeCount x + edgeCount y
  597. 807.93 s [algebraic-graphs] OK: vertexCount (connect 1 2) == 2
  598. 807.93 s [algebraic-graphs] OK: edgeCount (connect 1 2) == 1
  599. 807.93 s [algebraic-graphs]
  600. 807.93 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.vertices1 ============
  601. 807.93 s [algebraic-graphs] OK: vertices1 [x] == vertex x
  602. 807.93 s [algebraic-graphs] OK: hasVertex x . vertices1 == elem x
  603. 807.93 s [algebraic-graphs] OK: vertexCount . vertices1 == length . nub
  604. 807.93 s [algebraic-graphs] OK: vertexSet . vertices1 == Set.fromList . toList
  605. 807.93 s [algebraic-graphs]
  606. 807.93 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.edges1 ============
  607. 807.93 s [algebraic-graphs] OK: edges1 [(x,y)] == edge x y
  608. 807.93 s [algebraic-graphs] OK: edges1 == overlays1 . fmap (uncurry edge)
  609. 807.93 s [algebraic-graphs] OK: edgeCount . edges1 == length . nub
  610. 807.93 s [algebraic-graphs]
  611. 810.49 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.overlays1 ============
  612. 810.49 s [algebraic-graphs] OK: overlays1 [x] == x
  613. 810.49 s [algebraic-graphs] OK: overlays1 [x,y] == overlay x y
  614. 810.49 s [algebraic-graphs]
  615. 810.49 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.connects1 ============
  616. 810.50 s [algebraic-graphs] OK: connects1 [x] == x
  617. 810.50 s [algebraic-graphs] OK: connects1 [x,y] == connect x y
  618. 810.50 s [algebraic-graphs]
  619. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.isSubgraphOf ============
  620. 810.50 s [algebraic-graphs] OK: isSubgraphOf x (overlay x y) == True
  621. 810.50 s [algebraic-graphs] OK: isSubgraphOf (overlay x y) (connect x y) == True
  622. 810.50 s [algebraic-graphs] OK: isSubgraphOf (path1 xs) (circuit1 xs) == True
  623. 810.50 s [algebraic-graphs] OK: isSubgraphOf x y ==> x <= y
  624. 810.50 s [algebraic-graphs]
  625. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.hasVertex ============
  626. 810.50 s [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y)
  627. 810.50 s [algebraic-graphs]
  628. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.hasEdge ============
  629. 810.50 s [algebraic-graphs] OK: hasEdge x y (vertex z) == False
  630. 810.50 s [algebraic-graphs] OK: hasEdge x y (edge x y) == True
  631. 810.50 s [algebraic-graphs] OK: hasEdge x y . removeEdge x y == const False
  632. 810.50 s [algebraic-graphs] OK: hasEdge x y == elem (x,y) . edgeList
  633. 810.50 s [algebraic-graphs]
  634. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.vertexCount ============
  635. 810.50 s [algebraic-graphs] OK: vertexCount (vertex x) == 1
  636. 810.50 s [algebraic-graphs] OK: vertexCount x >= 1
  637. 810.50 s [algebraic-graphs] OK: vertexCount == length . vertexList1
  638. 810.50 s [algebraic-graphs]
  639. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.edgeCount ============
  640. 810.50 s [algebraic-graphs] OK: edgeCount (vertex x) == 0
  641. 810.50 s [algebraic-graphs] OK: edgeCount (edge x y) == 1
  642. 810.50 s [algebraic-graphs] OK: edgeCount == length . edgeList
  643. 810.50 s [algebraic-graphs]
  644. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.vertexList1 ============
  645. 810.50 s [algebraic-graphs] OK: vertexList1 (vertex x) == [x]
  646. 810.50 s [algebraic-graphs] OK: vertexList1 . vertices1 == nub . sort
  647. 810.50 s [algebraic-graphs]
  648. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.edgeList ============
  649. 810.50 s [algebraic-graphs] OK: edgeList (vertex x) == []
  650. 810.50 s [algebraic-graphs] OK: edgeList (edge x y) == [(x,y)]
  651. 810.50 s [algebraic-graphs] OK: edgeList (star 2 [3,1]) == [(2,1), (2,3)]
  652. 810.50 s [algebraic-graphs] OK: edgeList . edges1 == nub . sort . toList
  653. 810.50 s [algebraic-graphs] OK: edgeList . transpose == sort . map swap . edgeList
  654. 810.50 s [algebraic-graphs]
  655. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.vertexSet ============
  656. 810.50 s [algebraic-graphs] OK: vertexSet . vertex == Set.singleton
  657. 810.50 s [algebraic-graphs] OK: vertexSet . vertices1 == Set.fromList . toList
  658. 810.50 s [algebraic-graphs] OK: vertexSet . clique1 == Set.fromList . toList
  659. 810.50 s [algebraic-graphs]
  660. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.edgeSet ============
  661. 810.50 s [algebraic-graphs] OK: edgeSet (vertex x) == Set.empty
  662. 810.50 s [algebraic-graphs] OK: edgeSet (edge x y) == Set.singleton (x,y)
  663. 810.50 s [algebraic-graphs] OK: edgeSet . edges1 == Set.fromList . toList
  664. 810.50 s [algebraic-graphs]
  665. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.preSet ============
  666. 810.50 s [algebraic-graphs] OK: preSet x (vertex x) == Set.empty
  667. 810.50 s [algebraic-graphs] OK: preSet 1 (edge 1 2) == Set.empty
  668. 810.50 s [algebraic-graphs] OK: preSet y (edge x y) == Set.fromList [x]
  669. 810.50 s [algebraic-graphs]
  670. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.postSet ============
  671. 810.50 s [algebraic-graphs] OK: postSet x (vertex x) == Set.empty
  672. 810.50 s [algebraic-graphs] OK: postSet x (edge x y) == Set.fromList [y]
  673. 810.50 s [algebraic-graphs] OK: postSet 2 (edge 1 2) == Set.empty
  674. 810.50 s [algebraic-graphs]
  675. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.path1 ============
  676. 810.50 s [algebraic-graphs] OK: path1 [x] == vertex x
  677. 810.50 s [algebraic-graphs] OK: path1 [x,y] == edge x y
  678. 810.50 s [algebraic-graphs] OK: path1 . reverse == transpose . path1
  679. 810.50 s [algebraic-graphs]
  680. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.circuit1 ============
  681. 810.50 s [algebraic-graphs] OK: circuit1 [x] == edge x x
  682. 810.50 s [algebraic-graphs] OK: circuit1 [x,y] == edges1 [(x,y), (y,x)]
  683. 810.50 s [algebraic-graphs] OK: circuit1 . reverse == transpose . circuit1
  684. 810.50 s [algebraic-graphs]
  685. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.clique1 ============
  686. 810.50 s [algebraic-graphs] OK: clique1 [x] == vertex x
  687. 810.50 s [algebraic-graphs] OK: clique1 [x,y] == edge x y
  688. 810.50 s [algebraic-graphs] OK: clique1 [x,y,z] == edges1 [(x,y), (x,z), (y,z)]
  689. 810.50 s [algebraic-graphs] OK: clique1 (xs <> ys) == connect (clique1 xs) (clique1 ys)
  690. 810.50 s [algebraic-graphs] OK: clique1 . reverse == transpose . clique1
  691. 810.50 s [algebraic-graphs]
  692. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.biclique1 ============
  693. 810.50 s [algebraic-graphs] OK: biclique1 [x1,x2] [y1,y2] == edges1 [(x1,y1), (x1,y2), (x2,y1), (x2,y2)]
  694. 810.50 s [algebraic-graphs] OK: biclique1 xs ys == connect (vertices1 xs) (vertices1 ys)
  695. 810.50 s [algebraic-graphs]
  696. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.star ============
  697. 810.50 s [algebraic-graphs] OK: star x [] == vertex x
  698. 810.50 s [algebraic-graphs] OK: star x [y] == edge x y
  699. 810.50 s [algebraic-graphs] OK: star x [y,z] == edges1 [(x,y), (x,z)]
  700. 810.50 s [algebraic-graphs]
  701. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.stars1 ============
  702. 810.50 s [algebraic-graphs] OK: stars1 [(x, [] )] == vertex x
  703. 810.50 s [algebraic-graphs] OK: stars1 [(x, [y])] == edge x y
  704. 810.50 s [algebraic-graphs] OK: stars1 [(x, ys )] == star x ys
  705. 810.50 s [algebraic-graphs] OK: stars1 == overlays1 . fmap (uncurry star)
  706. 810.50 s [algebraic-graphs] OK: overlay (stars1 xs) (stars1 ys) == stars1 (xs <> ys)
  707. 810.50 s [algebraic-graphs]
  708. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.tree ============
  709. 810.50 s [algebraic-graphs] OK: tree (Node x []) == vertex x
  710. 810.50 s [algebraic-graphs] OK: tree (Node x [Node y [Node z []]]) == path1 [x,y,z]
  711. 810.50 s [algebraic-graphs] OK: tree (Node x [Node y [], Node z []]) == star x [y,z]
  712. 810.50 s [algebraic-graphs] OK: tree (Node 1 [Node 2 [], Node 3 [Node 4 [], Node 5 []]]) == edges1 [(1,2), (1,3), (3,4), (3,5)]
  713. 810.50 s [algebraic-graphs]
  714. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.removeVertex1 ============
  715. 810.50 s [algebraic-graphs] OK: removeVertex1 x (vertex x) == Nothing
  716. 810.50 s [algebraic-graphs] OK: removeVertex1 1 (vertex 2) == Just (vertex 2)
  717. 810.50 s [algebraic-graphs] OK: removeVertex1 x (edge x x) == Nothing
  718. 810.50 s [algebraic-graphs] OK: removeVertex1 1 (edge 1 2) == Just (vertex 2)
  719. 810.50 s [algebraic-graphs] OK: removeVertex1 x >=> removeVertex1 x == removeVertex1 x
  720. 810.50 s [algebraic-graphs]
  721. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.removeEdge ============
  722. 810.50 s [algebraic-graphs] OK: removeEdge x y (edge x y) == vertices1 [x,y]
  723. 810.50 s [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y
  724. 810.50 s [algebraic-graphs] OK: removeEdge 1 1 (1 * 1 * 2 * 2) == 1 * 2 * 2
  725. 810.50 s [algebraic-graphs] OK: removeEdge 1 2 (1 * 1 * 2 * 2) == 1 * 1 + 2 * 2
  726. 810.50 s [algebraic-graphs]
  727. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.replaceVertex ============
  728. 810.50 s [algebraic-graphs] OK: replaceVertex x x == id
  729. 810.50 s [algebraic-graphs] OK: replaceVertex x y (vertex x) == vertex y
  730. 810.50 s [algebraic-graphs] OK: replaceVertex x y == mergeVertices (== x) y
  731. 810.50 s [algebraic-graphs]
  732. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.mergeVertices ============
  733. 810.50 s [algebraic-graphs] OK: mergeVertices (const False) x == id
  734. 810.50 s [algebraic-graphs] OK: mergeVertices (== x) y == replaceVertex x y
  735. 810.50 s [algebraic-graphs] OK: mergeVertices even 1 (0 * 2) == 1 * 1
  736. 810.50 s [algebraic-graphs] OK: mergeVertices odd 1 (3 + 4 * 5) == 4 * 1
  737. 810.50 s [algebraic-graphs]
  738. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.transpose ============
  739. 810.50 s [algebraic-graphs] OK: transpose (vertex x) == vertex x
  740. 810.50 s [algebraic-graphs] OK: transpose (edge x y) == edge y x
  741. 810.50 s [algebraic-graphs] OK: transpose . transpose == id
  742. 810.50 s [algebraic-graphs] OK: edgeList . transpose == sort . map swap . edgeList
  743. 810.50 s [algebraic-graphs]
  744. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.gmap ============
  745. 810.50 s [algebraic-graphs] OK: gmap f (vertex x) == vertex (f x)
  746. 810.50 s [algebraic-graphs] OK: gmap f (edge x y) == edge (f x) (f y)
  747. 810.50 s [algebraic-graphs] OK: gmap id == id
  748. 810.50 s [algebraic-graphs] OK: gmap f . gmap g == gmap (f . g)
  749. 810.50 s [algebraic-graphs]
  750. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.induce1 ============
  751. 810.50 s [algebraic-graphs] OK: induce1 (const True ) x == Just x
  752. 810.50 s [algebraic-graphs] OK: induce1 (const False) x == Nothing
  753. 810.50 s [algebraic-graphs] OK: induce1 (/= x) == removeVertex1 x
  754. 810.50 s [algebraic-graphs] OK: induce1 p >=> induce1 q == induce1 (\x -> p x && q x)
  755. 810.50 s [algebraic-graphs]
  756. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.induceJust1 ============
  757. 810.50 s [algebraic-graphs] OK: induceJust1 (vertex Nothing) == Nothing
  758. 810.50 s [algebraic-graphs] OK: induceJust1 (edge (Just x) Nothing) == Just (vertex x)
  759. 810.50 s [algebraic-graphs] OK: induceJust1 . gmap Just == Just
  760. 810.50 s [algebraic-graphs] OK: induceJust1 . gmap (\x -> if p x then Just x else Nothing) == induce1 p
  761. 810.50 s [algebraic-graphs]
  762. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.closure ============
  763. 810.50 s [algebraic-graphs] OK: closure (vertex x) == edge x x
  764. 810.50 s [algebraic-graphs] OK: closure (edge x x) == edge x x
  765. 810.50 s [algebraic-graphs] OK: closure (edge x y) == edges1 [(x,x), (x,y), (y,y)]
  766. 810.50 s [algebraic-graphs] OK: closure (path1 $ nub xs) == reflexiveClosure (clique1 $ nub xs)
  767. 810.50 s [algebraic-graphs] OK: closure == reflexiveClosure . transitiveClosure
  768. 810.50 s [algebraic-graphs] OK: closure == transitiveClosure . reflexiveClosure
  769. 810.50 s [algebraic-graphs] OK: closure . closure == closure
  770. 810.50 s [algebraic-graphs] OK: postSet x (closure y) == Set.fromList (reachable y x)
  771. 810.50 s [algebraic-graphs]
  772. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.reflexiveClosure ============
  773. 810.50 s [algebraic-graphs] OK: reflexiveClosure (vertex x) == edge x x
  774. 810.50 s [algebraic-graphs] OK: reflexiveClosure (edge x x) == edge x x
  775. 810.50 s [algebraic-graphs] OK: reflexiveClosure (edge x y) == edges1 [(x,x), (x,y), (y,y)]
  776. 810.50 s [algebraic-graphs] OK: reflexiveClosure . reflexiveClosure == reflexiveClosure
  777. 810.50 s [algebraic-graphs]
  778. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.symmetricClosure ============
  779. 810.50 s [algebraic-graphs] OK: symmetricClosure (vertex x) == vertex x
  780. 810.50 s [algebraic-graphs] OK: symmetricClosure (edge x y) == edges1 [(x,y), (y,x)]
  781. 810.50 s [algebraic-graphs] OK: symmetricClosure x == overlay x (transpose x)
  782. 810.50 s [algebraic-graphs] OK: symmetricClosure . symmetricClosure == symmetricClosure
  783. 810.50 s [algebraic-graphs]
  784. 810.50 s [algebraic-graphs] ============ NonEmpty.AdjacencyMap.transitiveClosure ============
  785. 810.50 s [algebraic-graphs] OK: transitiveClosure (vertex x) == vertex x
  786. 810.50 s [algebraic-graphs] OK: transitiveClosure (edge x y) == edge x y
  787. 810.50 s [algebraic-graphs] OK: transitiveClosure (path1 $ nub xs) == clique1 (nub $ xs)
  788. 810.50 s [algebraic-graphs] OK: transitiveClosure . transitiveClosure == transitiveClosure
  789. 810.50 s [algebraic-graphs]
  790. 810.50 s [algebraic-graphs] ============ NonEmpty.Graph.============
  791. 810.50 s [algebraic-graphs] OK: Axioms of non-empty graphs
  792. 810.50 s [algebraic-graphs] OK: Theorems of non-empty graphs
  793. 810.50 s [algebraic-graphs]
  794. 810.50 s [algebraic-graphs] ============ Ord (NonEmpty.Graph a) ============
  795. 810.50 s [algebraic-graphs] OK: vertex 1 < vertex 2
  796. 810.50 s [algebraic-graphs] OK: vertex 3 < edge 1 2
  797. 810.50 s [algebraic-graphs] OK: vertex 1 < edge 1 1
  798. 810.50 s [algebraic-graphs] OK: edge 1 1 < edge 1 2
  799. 810.50 s [algebraic-graphs] OK: edge 1 2 < edge 1 1 + edge 2 2
  800. 810.50 s [algebraic-graphs] OK: edge 1 2 < edge 1 3
  801. 810.50 s [algebraic-graphs] OK: x <= x + y
  802. 810.50 s [algebraic-graphs] OK: x + y <= x * y
  803. 810.50 s [algebraic-graphs]
  804. 810.50 s [algebraic-graphs] ============ Functor (NonEmpty.Graph a) ============
  805. 810.50 s [algebraic-graphs] OK: fmap f (vertex x) == vertex (f x)
  806. 810.50 s [algebraic-graphs] OK: fmap f (edge x y) == edge (f x) (f y)
  807. 810.50 s [algebraic-graphs] OK: fmap id == id
  808. 810.50 s [algebraic-graphs] OK: fmap f . fmap g == fmap (f . g)
  809. 810.50 s [algebraic-graphs]
  810. 810.50 s [algebraic-graphs] ============ Monad (NonEmpty.Graph a) ============
  811. 810.50 s [algebraic-graphs] OK: (vertex x >>= f) == f x
  812. 811.83 s [algebraic-graphs] OK: (edge x y >>= f) == connect (f x) (f y)
  813. 811.83 s [algebraic-graphs] OK: (vertices1 xs >>= f) == overlays1 (fmap f xs)
  814. 811.83 s [algebraic-graphs] OK: (x >>= vertex) == x
  815. 811.83 s [algebraic-graphs] OK: ((x >>= f) >>= g) == (x >>= (\y -> (f y) >>= g))
  816. 811.83 s [algebraic-graphs]
  817. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.toNonEmpty ============
  818. 811.83 s [algebraic-graphs] OK: toNonEmpty empty == Nothing
  819. 811.83 s [algebraic-graphs] OK: toNonEmpty (toGraph x) == Just (x :: NonEmpty.Graph a)
  820. 811.83 s [algebraic-graphs]
  821. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.vertex ============
  822. 811.83 s [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y)
  823. 811.83 s [algebraic-graphs] OK: vertexCount (vertex x) == 1
  824. 811.83 s [algebraic-graphs] OK: edgeCount (vertex x) == 0
  825. 811.83 s [algebraic-graphs] OK: size (vertex x) == 1
  826. 811.83 s [algebraic-graphs]
  827. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.edge ============
  828. 811.83 s [algebraic-graphs] OK: edge x y == connect (vertex x) (vertex y)
  829. 811.83 s [algebraic-graphs] OK: hasEdge x y (edge x y) == True
  830. 811.83 s [algebraic-graphs] OK: edgeCount (edge x y) == 1
  831. 811.83 s [algebraic-graphs] OK: vertexCount (edge 1 1) == 1
  832. 811.83 s [algebraic-graphs] OK: vertexCount (edge 1 2) == 2
  833. 811.83 s [algebraic-graphs]
  834. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.overlay ============
  835. 811.83 s [algebraic-graphs] OK: hasVertex z (overlay x y) == hasVertex z x || hasVertex z y
  836. 811.83 s [algebraic-graphs] OK: vertexCount (overlay x y) >= vertexCount x
  837. 811.83 s [algebraic-graphs] OK: vertexCount (overlay x y) <= vertexCount x + vertexCount y
  838. 811.83 s [algebraic-graphs] OK: edgeCount (overlay x y) >= edgeCount x
  839. 811.83 s [algebraic-graphs] OK: edgeCount (overlay x y) <= edgeCount x + edgeCount y
  840. 811.83 s [algebraic-graphs] OK: size (overlay x y) == size x + size y
  841. 811.83 s [algebraic-graphs] OK: vertexCount (overlay 1 2) == 2
  842. 811.83 s [algebraic-graphs] OK: edgeCount (overlay 1 2) == 0
  843. 811.83 s [algebraic-graphs]
  844. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.overlay1 ============
  845. 811.83 s [algebraic-graphs] OK: overlay1 empty x == x
  846. 811.83 s [algebraic-graphs] OK: x /= empty ==> overlay1 x y == overlay (fromJust $ toNonEmpty x) y
  847. 811.83 s [algebraic-graphs]
  848. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.connect ============
  849. 811.83 s [algebraic-graphs] OK: hasVertex z (connect x y) == hasVertex z x || hasVertex z y
  850. 811.83 s [algebraic-graphs] OK: vertexCount (connect x y) >= vertexCount x
  851. 811.83 s [algebraic-graphs] OK: vertexCount (connect x y) <= vertexCount x + vertexCount y
  852. 811.83 s [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount x
  853. 811.83 s [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount y
  854. 811.83 s [algebraic-graphs] OK: edgeCount (connect x y) >= vertexCount x * vertexCount y
  855. 811.83 s [algebraic-graphs] OK: edgeCount (connect x y) <= vertexCount x * vertexCount y + edgeCount x + edgeCount y
  856. 811.83 s [algebraic-graphs] OK: size (connect x y) == size x + size y
  857. 811.83 s [algebraic-graphs] OK: vertexCount (connect 1 2) == 2
  858. 811.83 s [algebraic-graphs] OK: edgeCount (connect 1 2) == 1
  859. 811.83 s [algebraic-graphs]
  860. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.vertices1 ============
  861. 811.83 s [algebraic-graphs] OK: vertices1 [x] == vertex x
  862. 811.83 s [algebraic-graphs] OK: hasVertex x . vertices1 == elem x
  863. 811.83 s [algebraic-graphs] OK: vertexCount . vertices1 == length . nub
  864. 811.83 s [algebraic-graphs] OK: vertexSet . vertices1 == Set.fromList . toList
  865. 811.83 s [algebraic-graphs]
  866. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.edges1 ============
  867. 811.83 s [algebraic-graphs] OK: edges1 [(x,y)] == edge x y
  868. 811.83 s [algebraic-graphs] OK: edges1 == overlays1 . fmap (uncurry edge)
  869. 811.83 s [algebraic-graphs] OK: edgeCount . edges1 == length . nub
  870. 811.83 s [algebraic-graphs]
  871. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.overlays1 ============
  872. 811.83 s [algebraic-graphs] OK: overlays1 [x] == x
  873. 811.83 s [algebraic-graphs] OK: overlays1 [x,y] == overlay x y
  874. 811.83 s [algebraic-graphs]
  875. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.connects1 ============
  876. 811.83 s [algebraic-graphs] OK: connects1 [x] == x
  877. 811.83 s [algebraic-graphs] OK: connects1 [x,y] == connect x y
  878. 811.83 s [algebraic-graphs]
  879. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.foldg1 ============
  880. 811.83 s [algebraic-graphs] OK: foldg1 vertex overlay connect == id
  881. 811.83 s [algebraic-graphs] OK: foldg1 vertex overlay (flip connect) == transpose
  882. 811.83 s [algebraic-graphs] OK: foldg1 (const 1) (+) (+) == size
  883. 811.83 s [algebraic-graphs] OK: foldg1 (== x) (||) (||) == hasVertex x
  884. 811.83 s [algebraic-graphs]
  885. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.isSubgraphOf ============
  886. 811.83 s [algebraic-graphs] OK: isSubgraphOf x (overlay x y) == True
  887. 811.83 s [algebraic-graphs] OK: isSubgraphOf (overlay x y) (connect x y) == True
  888. 811.83 s [algebraic-graphs] OK: isSubgraphOf (path1 xs) (circuit1 xs) == True
  889. 811.83 s [algebraic-graphs] OK: isSubgraphOf x y ==> x <= y
  890. 811.83 s [algebraic-graphs]
  891. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.(===) ============
  892. 811.83 s [algebraic-graphs] OK: x === x == True
  893. 811.83 s [algebraic-graphs] OK: x + y === x + y == True
  894. 811.83 s [algebraic-graphs] OK: 1 + 2 === 2 + 1 == False
  895. 811.83 s [algebraic-graphs] OK: x + y === x * y == False
  896. 811.83 s [algebraic-graphs]
  897. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.size ============
  898. 811.83 s [algebraic-graphs] OK: size (vertex x) == 1
  899. 811.83 s [algebraic-graphs] OK: size (overlay x y) == size x + size y
  900. 811.83 s [algebraic-graphs] OK: size (connect x y) == size x + size y
  901. 811.83 s [algebraic-graphs] OK: size x >= 1
  902. 811.83 s [algebraic-graphs] OK: size x >= vertexCount x
  903. 811.83 s [algebraic-graphs]
  904. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.hasVertex ============
  905. 811.83 s [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y)
  906. 811.83 s [algebraic-graphs]
  907. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.hasEdge ============
  908. 811.83 s [algebraic-graphs] OK: hasEdge x y (vertex z) == False
  909. 811.83 s [algebraic-graphs] OK: hasEdge x y (edge x y) == True
  910. 811.83 s [algebraic-graphs] OK: hasEdge x y . removeEdge x y == const False
  911. 811.83 s [algebraic-graphs] OK: hasEdge x y == elem (x,y) . edgeList
  912. 811.83 s [algebraic-graphs]
  913. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.vertexCount ============
  914. 811.83 s [algebraic-graphs] OK: vertexCount (vertex x) == 1
  915. 811.83 s [algebraic-graphs] OK: vertexCount x >= 1
  916. 811.83 s [algebraic-graphs] OK: vertexCount == length . vertexList1
  917. 811.83 s [algebraic-graphs]
  918. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.edgeCount ============
  919. 811.83 s [algebraic-graphs] OK: edgeCount (vertex x) == 0
  920. 811.83 s [algebraic-graphs] OK: edgeCount (edge x y) == 1
  921. 811.83 s [algebraic-graphs] OK: edgeCount == length . edgeList
  922. 811.83 s [algebraic-graphs]
  923. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.vertexList1 ============
  924. 811.83 s [algebraic-graphs] OK: vertexList1 (vertex x) == [x]
  925. 811.83 s [algebraic-graphs] OK: vertexList1 . vertices1 == nub . sort
  926. 811.83 s [algebraic-graphs]
  927. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.edgeList ============
  928. 811.83 s [algebraic-graphs] OK: edgeList (vertex x) == []
  929. 811.83 s [algebraic-graphs] OK: edgeList (edge x y) == [(x,y)]
  930. 811.83 s [algebraic-graphs] OK: edgeList (star 2 [3,1]) == [(2,1), (2,3)]
  931. 811.83 s [algebraic-graphs] OK: edgeList . edges1 == nub . sort . toList
  932. 811.83 s [algebraic-graphs] OK: edgeList . transpose == sort . map swap . edgeList
  933. 811.83 s [algebraic-graphs]
  934. 811.83 s [algebraic-graphs] ============ NonEmpty.Graph.vertexSet ============
  935. 811.83 s [algebraic-graphs] OK: vertexSet . vertex == Set.singleton
  936. 811.84 s [algebraic-graphs] OK: vertexSet . vertices1 == Set.fromList . toList
  937. 811.84 s [algebraic-graphs] OK: vertexSet . clique1 == Set.fromList . toList
  938. 811.84 s [algebraic-graphs]
  939. 811.84 s [algebraic-graphs] ============ NonEmpty.Graph.edgeSet ============
  940. 811.84 s [algebraic-graphs] OK: edgeSet (vertex x) == Set.empty
  941. 811.84 s [algebraic-graphs] OK: edgeSet (edge x y) == Set.singleton (x,y)
  942. 811.84 s [algebraic-graphs] OK: edgeSet . edges1 == Set.fromList . toList
  943. 811.84 s [algebraic-graphs]
  944. 811.84 s [algebraic-graphs] ============ NonEmpty.Graph.path1 ============
  945. 811.84 s [algebraic-graphs] OK: path1 [x] == vertex x
  946. 811.84 s [algebraic-graphs] OK: path1 [x,y] == edge x y
  947. 811.84 s [algebraic-graphs] OK: path1 . reverse == transpose . path1
  948. 811.84 s [algebraic-graphs]
  949. 811.84 s [algebraic-graphs] ============ NonEmpty.Graph.circuit1 ============
  950. 811.84 s [algebraic-graphs] OK: circuit1 [x] == edge x x
  951. 811.84 s [algebraic-graphs] OK: circuit1 [x,y] == edges1 [(x,y), (y,x)]
  952. 811.84 s [algebraic-graphs] OK: circuit1 . reverse == transpose . circuit1
  953. 811.84 s [algebraic-graphs]
  954. 811.84 s [algebraic-graphs] ============ NonEmpty.Graph.clique1 ============
  955. 811.84 s [algebraic-graphs] OK: clique1 [x] == vertex x
  956. 811.84 s [algebraic-graphs] OK: clique1 [x,y] == edge x y
  957. 811.84 s [algebraic-graphs] OK: clique1 [x,y,z] == edges1 [(x,y), (x,z), (y,z)]
  958. 811.84 s [algebraic-graphs] OK: clique1 (xs <> ys) == connect (clique1 xs) (clique1 ys)
  959. 811.84 s [algebraic-graphs] OK: clique1 . reverse == transpose . clique1
  960. 811.84 s [algebraic-graphs]
  961. 811.84 s [algebraic-graphs] ============ NonEmpty.Graph.biclique1 ============
  962. 811.84 s [algebraic-graphs] OK: biclique1 [x1,x2] [y1,y2] == edges1 [(x1,y1), (x1,y2), (x2,y1), (x2,y2)]
  963. 811.84 s [algebraic-graphs] OK: biclique1 xs ys == connect (vertices1 xs) (vertices1 ys)
  964. 811.84 s [algebraic-graphs]
  965. 811.84 s [algebraic-graphs] ============ NonEmpty.Graph.star ============
  966. 811.84 s [algebraic-graphs] OK: star x [] == vertex x
  967. 811.84 s [algebraic-graphs] OK: star x [y] == edge x y
  968. 811.84 s [algebraic-graphs] OK: star x [y,z] == edges1 [(x,y), (x,z)]
  969. 811.84 s [algebraic-graphs]
  970. 811.84 s [algebraic-graphs] ============ NonEmpty.Graph.stars1 ============
  971. 811.84 s [algebraic-graphs] OK: stars1 [(x, [] )] == vertex x
  972. 811.84 s [algebraic-graphs] OK: stars1 [(x, [y])] == edge x y
  973. 811.84 s [algebraic-graphs] OK: stars1 [(x, ys )] == star x ys
  974. 811.84 s [algebraic-graphs] OK: stars1 == overlays1 . fmap (uncurry star)
  975. 811.84 s [algebraic-graphs] OK: overlay (stars1 xs) (stars1 ys) == stars1 (xs <> ys)
  976. 811.84 s [algebraic-graphs]
  977. 811.84 s [algebraic-graphs] ============ NonEmpty.Graph.tree ============
  978. 811.84 s [algebraic-graphs] OK: tree (Node x []) == vertex x
  979. 811.84 s [algebraic-graphs] OK: tree (Node x [Node y [Node z []]]) == path1 [x,y,z]
  980. 811.84 s [algebraic-graphs] OK: tree (Node x [Node y [], Node z []]) == star x [y,z]
  981. 811.84 s [algebraic-graphs] OK: tree (Node 1 [Node 2 [], Node 3 [Node 4 [], Node 5 []]]) == edges1 [(1,2), (1,3), (3,4), (3,5)]
  982. 811.84 s [algebraic-graphs]
  983. 811.84 s [algebraic-graphs] ============ NonEmpty.Graph.mesh1 ============
  984. 811.84 s [algebraic-graphs] OK: mesh1 [x] [y] == vertex (x, y)
  985. 811.84 s [algebraic-graphs] OK: mesh1 xs ys == box (path1 xs) (path1 ys)
  986. 811.84 s [algebraic-graphs] OK: mesh1 [1,2,3] ['a', 'b'] == <correct result>
  987. 811.84 s [algebraic-graphs] OK: size (mesh xs ys) == max 1 (3 * length xs * length ys - length xs - length ys -1)
  988. 811.84 s [algebraic-graphs]
  989. 811.84 s [algebraic-graphs] ============ NonEmpty.Graph.torus1 ============
  990. 811.84 s [algebraic-graphs] OK: torus1 [x] [y] == edge (x,y) (x,y)
  991. 811.84 s [algebraic-graphs] OK: torus1 xs ys == box (circuit1 xs) (circuit1 ys)
  992. 811.84 s [algebraic-graphs] OK: torus1 [1,2] ['a', 'b'] == <correct result>
  993. 811.84 s [algebraic-graphs] OK: size (torus1 xs ys) == max 1 (3 * length xs * length ys)
  994. 811.84 s [algebraic-graphs]
  995. 811.84 s [algebraic-graphs] ============ NonEmpty.Graph.removeVertex1 ============
  996. 811.84 s [algebraic-graphs] OK: removeVertex1 x (vertex x) == Nothing
  997. 811.84 s [algebraic-graphs] OK: removeVertex1 1 (vertex 2) == Just (vertex 2)
  998. 811.84 s [algebraic-graphs] OK: removeVertex1 x (edge x x) == Nothing
  999. 811.84 s [algebraic-graphs] OK: removeVertex1 1 (edge 1 2) == Just (vertex 2)
  1000. 811.84 s [algebraic-graphs] OK: removeVertex1 x >=> removeVertex1 x == removeVertex1 x
  1001. 811.84 s [algebraic-graphs]
  1002. 811.84 s [algebraic-graphs] ============ NonEmpty.Graph.removeEdge ============
  1003. 811.84 s [algebraic-graphs] OK: removeEdge x y (edge x y) == vertices1 [x,y]
  1004. 811.84 s [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y
  1005. 811.84 s [algebraic-graphs] OK: removeEdge 1 1 (1 * 1 * 2 * 2) == 1 * 2 * 2
  1006. 811.84 s [algebraic-graphs] OK: removeEdge 1 2 (1 * 1 * 2 * 2) == 1 * 1 + 2 * 2
  1007. 811.84 s [algebraic-graphs] OK: size (removeEdge x y z) <= 3 * size z
  1008. 811.84 s [algebraic-graphs]
  1009. 811.84 s [algebraic-graphs] ============ NonEmpty.Graph.replaceVertex ============
  1010. 811.84 s [algebraic-graphs] OK: replaceVertex x x == id
  1011. 811.84 s [algebraic-graphs] OK: replaceVertex x y (vertex x) == vertex y
  1012. 811.84 s [algebraic-graphs] OK: replaceVertex x y == mergeVertices (== x) y
  1013. 811.84 s [algebraic-graphs]
  1014. 811.84 s [algebraic-graphs] ============ NonEmpty.Graph.mergeVertices ============
  1015. 811.84 s [algebraic-graphs] OK: mergeVertices (const False) x == id
  1016. 817.00 s [algebraic-graphs] OK: mergeVertices (== x) y == replaceVertex x y
  1017. 817.00 s [algebraic-graphs] OK: mergeVertices even 1 (0 * 2) == 1 * 1
  1018. 817.04 s [algebraic-graphs] OK: mergeVertices odd 1 (3 + 4 * 5) == 4 * 1
  1019. 817.04 s [algebraic-graphs]
  1020. 817.04 s [algebraic-graphs] ============ NonEmpty.Graph.splitVertex1 ============
  1021. 817.04 s [algebraic-graphs] OK: splitVertex1 x [x] == id
  1022. 817.04 s [algebraic-graphs] OK: splitVertex1 x [y] == replaceVertex x y
  1023. 817.04 s [algebraic-graphs] OK: splitVertex1 1 [0,1] $ 1 * (2 + 3) == (0 + 1) * (2 + 3)
  1024. 817.04 s [algebraic-graphs]
  1025. 817.04 s [algebraic-graphs] ============ NonEmpty.Graph.transpose ============
  1026. 817.04 s [algebraic-graphs] OK: transpose (vertex x) == vertex x
  1027. 817.04 s [algebraic-graphs] OK: transpose (edge x y) == edge y x
  1028. 817.04 s [algebraic-graphs] OK: transpose . transpose == id
  1029. 817.04 s [algebraic-graphs] OK: transpose (box x y) == box (transpose x) (transpose y)
  1030. 817.04 s [algebraic-graphs] OK: edgeList . transpose == sort . map swap . edgeList
  1031. 817.04 s [algebraic-graphs]
  1032. 817.04 s [algebraic-graphs] ============ NonEmpty.Graph.induce1 ============
  1033. 817.04 s [algebraic-graphs] OK: induce1 (const True ) x == Just x
  1034. 817.04 s [algebraic-graphs] OK: induce1 (const False) x == Nothing
  1035. 817.04 s [algebraic-graphs] OK: induce1 (/= x) == removeVertex1 x
  1036. 817.04 s [algebraic-graphs] OK: induce1 p >=> induce1 q == induce1 (\x -> p x && q x)
  1037. 817.04 s [algebraic-graphs]
  1038. 817.04 s [algebraic-graphs] ============ NonEmpty.Graph.induceJust1 ============
  1039. 817.04 s [algebraic-graphs] OK: induceJust1 (vertex Nothing) == Nothing
  1040. 817.04 s [algebraic-graphs] OK: induceJust1 (edge (Just x) Nothing) == Just (vertex x)
  1041. 817.04 s [algebraic-graphs] OK: induceJust1 . fmap Just == Just
  1042. 817.04 s [algebraic-graphs] OK: induceJust1 . fmap (\x -> if p x then Just x else Nothing) == induce1 p
  1043. 817.04 s [algebraic-graphs]
  1044. 817.04 s [algebraic-graphs] ============ NonEmpty.Graph.simplify ============
  1045. 817.04 s [algebraic-graphs] OK: simplify == id
  1046. 817.04 s [algebraic-graphs] OK: size (simplify x) <= size x
  1047. 817.04 s [algebraic-graphs] OK: simplify 1 === 1
  1048. 817.04 s [algebraic-graphs] OK: simplify (1 + 1) === 1
  1049. 817.04 s [algebraic-graphs] OK: simplify (1 + 2 + 1) === 1 + 2
  1050. 817.04 s [algebraic-graphs] OK: simplify (1 * 1 * 1) === 1 * 1
  1051. 817.04 s [algebraic-graphs]
  1052. 817.04 s [algebraic-graphs] ============ NonEmpty.Graph.sparsify ============
  1053. 817.04 s [algebraic-graphs] OK: sort . reachable x == sort . rights . reachable (sparsify x) . Right
  1054. 817.04 s [algebraic-graphs] OK: vertexCount (sparsify x) <= vertexCount x + size x + 1
  1055. 817.04 s [algebraic-graphs] OK: edgeCount (sparsify x) <= 3 * size x
  1056. 817.04 s [algebraic-graphs] OK: size (sparsify x) <= 3 * size x
  1057. 817.04 s [algebraic-graphs]
  1058. 817.04 s [algebraic-graphs] ============ NonEmpty.Graph.sparsifyKL ============
  1059. 817.04 s [algebraic-graphs] OK: sort . reachable x == sort . filter (<= n) . reachable (sparsifyKL n x)
  1060. 817.04 s [algebraic-graphs] OK: length (vertices $ sparsifyKL n x) <= vertexCount x + size x + 1
  1061. 817.04 s [algebraic-graphs] OK: length (edges $ sparsifyKL n x) <= 3 * size x
  1062. 817.04 s [algebraic-graphs]
  1063. 817.04 s [algebraic-graphs] ============ NonEmpty.Graph.box ============
  1064. 817.04 s [algebraic-graphs] OK: box (path1 [0,1]) (path1 ['a','b']) == <correct result>
  1065. 817.04 s [algebraic-graphs] OK: box x y ~~ box y x
  1066. 817.04 s [algebraic-graphs] OK: box x (overlay y z) == overlay (box x y) (box x z)
  1067. 817.04 s [algebraic-graphs] OK: box x (vertex ()) ~~ x
  1068. 817.04 s [algebraic-graphs] OK: box x (box y z) ~~ box (box x y) z
  1069. 817.04 s [algebraic-graphs] OK: transpose (box x y) == box (transpose x) (transpose y)
  1070. 817.04 s [algebraic-graphs] OK: vertexCount (box x y) == vertexCount x * vertexCount y
  1071. 817.04 s [algebraic-graphs] OK: edgeCount (box x y) <= vertexCount x * edgeCount y + edgeCount x * vertexCount y
  1072. 817.04 s [algebraic-graphs]
  1073. 817.04 s [algebraic-graphs] ============ Relation ============
  1074. 817.04 s [algebraic-graphs] OK: Axioms of graphs
  1075. 817.04 s [algebraic-graphs]
  1076. 817.04 s [algebraic-graphs] ============ Relation.consistent ============
  1077. 817.04 s [algebraic-graphs] OK: Consistency of the Arbitrary instance
  1078. 817.04 s [algebraic-graphs]
  1079. 817.04 s [algebraic-graphs] OK: consistent empty == True
  1080. 817.04 s [algebraic-graphs] OK: consistent (vertex x) == True
  1081. 817.04 s [algebraic-graphs] OK: consistent (overlay x y) == True
  1082. 817.04 s [algebraic-graphs] OK: consistent (connect x y) == True
  1083. 817.04 s [algebraic-graphs] OK: consistent (edge x y) == True
  1084. 817.04 s [algebraic-graphs] OK: consistent (edges xs) == True
  1085. 817.04 s [algebraic-graphs] OK: consistent (stars xs) == True
  1086. 817.04 s [algebraic-graphs]
  1087. 817.04 s [algebraic-graphs] ============ Relation.Show ============
  1088. 817.04 s [algebraic-graphs] OK: show (empty ) == "empty"
  1089. 817.04 s [algebraic-graphs] OK: show (1 ) == "vertex 1"
  1090. 817.04 s [algebraic-graphs] OK: show (1 + 2 ) == "vertices [1,2]"
  1091. 817.04 s [algebraic-graphs] OK: show (1 * 2 ) == "edge 1 2"
  1092. 817.04 s [algebraic-graphs] OK: show (1 * 2 * 3) == "edges [(1,2),(1,3),(2,3)]"
  1093. 817.04 s [algebraic-graphs] OK: show (1 * 2 + 3) == "overlay (vertex 3) (edge 1 2)"
  1094. 817.04 s [algebraic-graphs]
  1095. 817.04 s [algebraic-graphs] OK: show (vertex (-1) ) == "vertex (-1)"
  1096. 817.04 s [algebraic-graphs] OK: show (vertex (-1) + vertex (-2) ) == "vertices [-2,-1]"
  1097. 817.04 s [algebraic-graphs] OK: show (vertex (-2) * vertex (-1) ) == "edge (-2) (-1)"
  1098. 817.04 s [algebraic-graphs] OK: show (vertex (-3) * vertex (-2) * vertex (-1)) == "edges [(-3,-2),(-3,-1),(-2,-1)]"
  1099. 817.04 s [algebraic-graphs] OK: show (vertex (-3) * vertex (-2) + vertex (-1)) == "overlay (vertex (-1)) (edge (-3) (-2))"
  1100. 817.04 s [algebraic-graphs]
  1101. 817.04 s [algebraic-graphs] ============ Relation.Ord ============
  1102. 817.04 s [algebraic-graphs] OK: vertex 1 < vertex 2
  1103. 817.04 s [algebraic-graphs] OK: vertex 3 < edge 1 2
  1104. 817.04 s [algebraic-graphs] OK: vertex 1 < edge 1 1
  1105. 817.04 s [algebraic-graphs] OK: edge 1 1 < edge 1 2
  1106. 817.04 s [algebraic-graphs] OK: edge 1 2 < edge 1 1 + edge 2 2
  1107. 817.04 s [algebraic-graphs] OK: edge 1 2 < edge 1 3
  1108. 817.04 s [algebraic-graphs] OK: x <= x + y
  1109. 817.04 s [algebraic-graphs] OK: x + y <= x * y
  1110. 817.04 s [algebraic-graphs]
  1111. 817.04 s [algebraic-graphs] ============ Relation.empty ============
  1112. 817.04 s [algebraic-graphs] OK: isEmpty empty == True
  1113. 817.04 s [algebraic-graphs] OK: hasVertex x empty == False
  1114. 817.04 s [algebraic-graphs] OK: vertexCount empty == 0
  1115. 817.04 s [algebraic-graphs] OK: edgeCount empty == 0
  1116. 817.04 s [algebraic-graphs]
  1117. 817.04 s [algebraic-graphs] ============ Relation.vertex ============
  1118. 817.04 s [algebraic-graphs] OK: isEmpty (vertex x) == False
  1119. 817.04 s [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y)
  1120. 817.04 s [algebraic-graphs] OK: vertexCount (vertex x) == 1
  1121. 817.04 s [algebraic-graphs] OK: edgeCount (vertex x) == 0
  1122. 817.04 s [algebraic-graphs]
  1123. 817.05 s [algebraic-graphs] ============ Relation.edge ============
  1124. 817.05 s [algebraic-graphs] OK: edge x y == connect (vertex x) (vertex y)
  1125. 817.05 s [algebraic-graphs] OK: hasEdge x y (edge x y) == True
  1126. 817.05 s [algebraic-graphs] OK: edgeCount (edge x y) == 1
  1127. 817.05 s [algebraic-graphs] OK: vertexCount (edge 1 1) == 1
  1128. 817.05 s [algebraic-graphs] OK: vertexCount (edge 1 2) == 2
  1129. 817.05 s [algebraic-graphs]
  1130. 817.05 s [algebraic-graphs] ============ Relation.overlay ============
  1131. 817.05 s [algebraic-graphs] OK: isEmpty (overlay x y) == isEmpty x && isEmpty y
  1132. 817.05 s [algebraic-graphs] OK: hasVertex z (overlay x y) == hasVertex z x || hasVertex z y
  1133. 817.05 s [algebraic-graphs] OK: vertexCount (overlay x y) >= vertexCount x
  1134. 817.05 s [algebraic-graphs] OK: vertexCount (overlay x y) <= vertexCount x + vertexCount y
  1135. 817.05 s [algebraic-graphs] OK: edgeCount (overlay x y) >= edgeCount x
  1136. 817.05 s [algebraic-graphs] OK: edgeCount (overlay x y) <= edgeCount x + edgeCount y
  1137. 817.05 s [algebraic-graphs] OK: vertexCount (overlay 1 2) == 2
  1138. 817.05 s [algebraic-graphs] OK: edgeCount (overlay 1 2) == 0
  1139. 817.05 s [algebraic-graphs]
  1140. 817.05 s [algebraic-graphs] ============ Relation.connect ============
  1141. 817.05 s [algebraic-graphs] OK: isEmpty (connect x y) == isEmpty x && isEmpty y
  1142. 817.05 s [algebraic-graphs] OK: hasVertex z (connect x y) == hasVertex z x || hasVertex z y
  1143. 817.05 s [algebraic-graphs] OK: vertexCount (connect x y) >= vertexCount x
  1144. 817.05 s [algebraic-graphs] OK: vertexCount (connect x y) <= vertexCount x + vertexCount y
  1145. 817.05 s [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount x
  1146. 817.05 s [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount y
  1147. 817.05 s [algebraic-graphs] OK: edgeCount (connect x y) >= vertexCount x * vertexCount y
  1148. 817.05 s [algebraic-graphs] OK: edgeCount (connect x y) <= vertexCount x * vertexCount y + edgeCount x + edgeCount y
  1149. 817.05 s [algebraic-graphs] OK: vertexCount (connect 1 2) == 2
  1150. 817.05 s [algebraic-graphs] OK: edgeCount (connect 1 2) == 1
  1151. 817.05 s [algebraic-graphs]
  1152. 817.05 s [algebraic-graphs] ============ Relation.vertices ============
  1153. 817.05 s [algebraic-graphs] OK: vertices [] == empty
  1154. 817.05 s [algebraic-graphs] OK: vertices [x] == vertex x
  1155. 817.05 s [algebraic-graphs] OK: vertices == overlays . map vertex
  1156. 817.05 s [algebraic-graphs] OK: hasVertex x . vertices == elem x
  1157. 817.05 s [algebraic-graphs] OK: vertexCount . vertices == length . nub
  1158. 817.05 s [algebraic-graphs] OK: vertexSet . vertices == Set.fromList
  1159. 817.05 s [algebraic-graphs]
  1160. 817.05 s [algebraic-graphs] ============ Relation.edges ============
  1161. 817.05 s [algebraic-graphs] OK: edges [] == empty
  1162. 817.05 s [algebraic-graphs] OK: edges [(x,y)] == edge x y
  1163. 817.05 s [algebraic-graphs] OK: edges == overlays . map (uncurry edge)
  1164. 817.05 s [algebraic-graphs] OK: edgeCount . edges == length . nub
  1165. 817.05 s [algebraic-graphs]
  1166. 817.05 s [algebraic-graphs] ============ Relation.overlays ============
  1167. 817.05 s [algebraic-graphs] OK: overlays [] == empty
  1168. 817.05 s [algebraic-graphs] OK: overlays [x] == x
  1169. 817.05 s [algebraic-graphs] OK: overlays [x,y] == overlay x y
  1170. 817.05 s [algebraic-graphs] OK: overlays == foldr overlay empty
  1171. 817.05 s [algebraic-graphs] OK: isEmpty . overlays == all isEmpty
  1172. 817.05 s [algebraic-graphs]
  1173. 817.05 s [algebraic-graphs] ============ Relation.connects ============
  1174. 817.05 s [algebraic-graphs] OK: connects [] == empty
  1175. 817.05 s [algebraic-graphs] OK: connects [x] == x
  1176. 817.05 s [algebraic-graphs] OK: connects [x,y] == connect x y
  1177. 817.05 s [algebraic-graphs] OK: connects == foldr connect empty
  1178. 817.05 s [algebraic-graphs] OK: isEmpty . connects == all isEmpty
  1179. 817.05 s [algebraic-graphs]
  1180. 817.05 s [algebraic-graphs] ============ Relation.isSubgraphOf ============
  1181. 817.05 s [algebraic-graphs] OK: isSubgraphOf empty x == True
  1182. 817.05 s [algebraic-graphs] OK: isSubgraphOf (vertex x) empty == False
  1183. 817.05 s [algebraic-graphs] OK: isSubgraphOf x (overlay x y) == True
  1184. 817.05 s [algebraic-graphs] OK: isSubgraphOf (overlay x y) (connect x y) == True
  1185. 817.05 s [algebraic-graphs] OK: isSubgraphOf (path xs) (circuit xs) == True
  1186. 817.05 s [algebraic-graphs] OK: isSubgraphOf x y ==> x <= y
  1187. 817.05 s [algebraic-graphs]
  1188. 817.05 s [algebraic-graphs] ============ Relation.toGraph et al. ============
  1189. 817.05 s [algebraic-graphs] OK: toGraph == foldg Empty Vertex Overlay Connect
  1190. 817.05 s [algebraic-graphs] OK: foldg == Algebra.Graph.foldg . toGraph
  1191. 817.05 s [algebraic-graphs] OK: isEmpty == foldg True (const False) (&&) (&&)
  1192. 817.05 s [algebraic-graphs] OK: size == foldg 1 (const 1) (+) (+)
  1193. 817.05 s [algebraic-graphs] OK: hasVertex x == foldg False (==x) (||) (||)
  1194. 817.05 s [algebraic-graphs] OK: hasEdge x y == Algebra.Graph.hasEdge x y . toGraph
  1195. 817.05 s [algebraic-graphs] OK: vertexCount == Set.size . vertexSet
  1196. 817.05 s [algebraic-graphs] OK: edgeCount == Set.size . edgeSet
  1197. 817.05 s [algebraic-graphs] OK: vertexList == Set.toAscList . vertexSet
  1198. 817.05 s [algebraic-graphs] OK: edgeList == Set.toAscList . edgeSet
  1199. 817.05 s [algebraic-graphs] OK: vertexSet == foldg Set.empty Set.singleton Set.union Set.union
  1200. 817.05 s [algebraic-graphs] OK: vertexIntSet == foldg IntSet.empty IntSet.singleton IntSet.union IntSet.union
  1201. 817.05 s [algebraic-graphs] OK: edgeSet == Algebra.Graph.AdjacencyMap.edgeSet . foldg empty vertex overlay connect
  1202. 817.05 s [algebraic-graphs] OK: preSet x == Algebra.Graph.AdjacencyMap.preSet x . toAdjacencyMap
  1203. 817.05 s [algebraic-graphs] OK: preIntSet x == Algebra.Graph.AdjacencyIntMap.preIntSet x . toAdjacencyIntMap
  1204. 817.05 s [algebraic-graphs] OK: postSet x == Algebra.Graph.AdjacencyMap.postSet x . toAdjacencyMap
  1205. 817.05 s [algebraic-graphs] OK: postIntSet x == Algebra.Graph.AdjacencyIntMap.postIntSet x . toAdjacencyIntMap
  1206. 819.85 s [algebraic-graphs] OK: adjacencyList == Algebra.Graph.AdjacencyMap.adjacencyList . toAdjacencyMap
  1207. 819.85 s [algebraic-graphs] OK: adjacencyMap == Algebra.Graph.AdjacencyMap.adjacencyMap . toAdjacencyMap
  1208. 819.85 s [algebraic-graphs] OK: adjacencyIntMap == Algebra.Graph.AdjacencyIntMap.adjacencyIntMap . toAdjacencyIntMap
  1209. 819.85 s [algebraic-graphs] OK: adjacencyMapTranspose == Algebra.Graph.AdjacencyMap.adjacencyMap . toAdjacencyMapTranspose
  1210. 819.85 s [algebraic-graphs] OK: adjacencyIntMapTranspose == Algebra.Graph.AdjacencyIntMap.adjacencyIntMap . toAdjacencyIntMapTranspose
  1211. 819.85 s [algebraic-graphs] OK: dfsForest == Algebra.Graph.AdjacencyMap.dfsForest . toAdjacencyMap
  1212. 819.85 s [algebraic-graphs] OK: dfsForestFrom == Algebra.Graph.AdjacencyMap.dfsForestFrom . toAdjacencyMap
  1213. 819.85 s [algebraic-graphs] OK: dfs == Algebra.Graph.AdjacencyMap.dfs . toAdjacencyMap
  1214. 819.85 s [algebraic-graphs] OK: reachable == Algebra.Graph.AdjacencyMap.reachable . toAdjacencyMap
  1215. 819.85 s [algebraic-graphs] OK: topSort == Algebra.Graph.AdjacencyMap.topSort . toAdjacencyMap
  1216. 819.86 s [algebraic-graphs] OK: isAcyclic == Algebra.Graph.AdjacencyMap.isAcyclic . toAdjacencyMap
  1217. 819.86 s [algebraic-graphs] OK: isTopSortOf vs == Algebra.Graph.AdjacencyMap.isTopSortOf vs . toAdjacencyMap
  1218. 819.86 s [algebraic-graphs] OK: toAdjacencyMap == foldg empty vertex overlay connect
  1219. 819.86 s [algebraic-graphs] OK: toAdjacencyMapTranspose == foldg empty vertex overlay (flip connect)
  1220. 819.86 s [algebraic-graphs] OK: toAdjacencyIntMap == foldg empty vertex overlay connect
  1221. 819.86 s [algebraic-graphs] OK: toAdjacencyIntMapTranspose == foldg empty vertex overlay (flip connect)
  1222. 819.86 s [algebraic-graphs] OK: isDfsForestOf f == Algebra.Graph.AdjacencyMap.isDfsForestOf f . toAdjacencyMap
  1223. 819.86 s [algebraic-graphs] OK: isTopSortOf vs == Algebra.Graph.AdjacencyMap.isTopSortOf vs . toAdjacencyMap
  1224. 819.86 s [algebraic-graphs]
  1225. 819.86 s [algebraic-graphs] ============ Relation.foldg ============
  1226. 819.86 s [algebraic-graphs] OK: foldg empty vertex overlay connect == id
  1227. 819.86 s [algebraic-graphs] OK: foldg empty vertex overlay (flip connect) == transpose
  1228. 819.86 s [algebraic-graphs] OK: foldg 1 (const 1) (+) (+) == size
  1229. 819.86 s [algebraic-graphs] OK: foldg True (const False) (&&) (&&) == isEmpty
  1230. 819.86 s [algebraic-graphs]
  1231. 819.86 s [algebraic-graphs] ============ Relation.isEmpty ============
  1232. 819.86 s [algebraic-graphs] OK: isEmpty empty == True
  1233. 819.86 s [algebraic-graphs] OK: isEmpty (overlay empty empty) == True
  1234. 819.86 s [algebraic-graphs] OK: isEmpty (vertex x) == False
  1235. 819.86 s [algebraic-graphs] OK: isEmpty (removeVertex x $ vertex x) == True
  1236. 819.86 s [algebraic-graphs] OK: isEmpty (removeEdge x y $ edge x y) == False
  1237. 819.86 s [algebraic-graphs]
  1238. 819.86 s [algebraic-graphs] ============ Relation.hasVertex ============
  1239. 819.86 s [algebraic-graphs] OK: hasVertex x empty == False
  1240. 819.86 s [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y)
  1241. 819.86 s [algebraic-graphs] OK: hasVertex x . removeVertex x == const False
  1242. 819.86 s [algebraic-graphs]
  1243. 819.86 s [algebraic-graphs] ============ Relation.hasEdge ============
  1244. 819.86 s [algebraic-graphs] OK: hasEdge x y empty == False
  1245. 819.86 s [algebraic-graphs] OK: hasEdge x y (vertex z) == False
  1246. 819.86 s [algebraic-graphs] OK: hasEdge x y (edge x y) == True
  1247. 819.86 s [algebraic-graphs] OK: hasEdge x y . removeEdge x y == const False
  1248. 819.86 s [algebraic-graphs] OK: hasEdge x y == elem (x,y) . edgeList
  1249. 819.86 s [algebraic-graphs]
  1250. 819.86 s [algebraic-graphs] ============ Relation.vertexCount ============
  1251. 819.86 s [algebraic-graphs] OK: vertexCount empty == 0
  1252. 819.86 s [algebraic-graphs] OK: vertexCount (vertex x) == 1
  1253. 819.86 s [algebraic-graphs] OK: vertexCount == length . vertexList
  1254. 819.86 s [algebraic-graphs] OK: vertexCount x < vertexCount y ==> x < y
  1255. 819.86 s [algebraic-graphs]
  1256. 819.86 s [algebraic-graphs] ============ Relation.edgeCount ============
  1257. 819.86 s [algebraic-graphs] OK: edgeCount empty == 0
  1258. 819.86 s [algebraic-graphs] OK: edgeCount (vertex x) == 0
  1259. 819.86 s [algebraic-graphs] OK: edgeCount (edge x y) == 1
  1260. 819.86 s [algebraic-graphs] OK: edgeCount == length . edgeList
  1261. 819.86 s [algebraic-graphs]
  1262. 819.86 s [algebraic-graphs] ============ Relation.vertexList ============
  1263. 819.86 s [algebraic-graphs] OK: vertexList empty == []
  1264. 819.86 s [algebraic-graphs] OK: vertexList (vertex x) == [x]
  1265. 819.86 s [algebraic-graphs] OK: vertexList . vertices == nub . sort
  1266. 819.86 s [algebraic-graphs]
  1267. 819.86 s [algebraic-graphs] ============ Relation.vertexSet ============
  1268. 819.86 s [algebraic-graphs] OK: vertexSet empty == Set.empty
  1269. 819.86 s [algebraic-graphs] OK: vertexSet . vertex == Set.singleton
  1270. 819.86 s [algebraic-graphs] OK: vertexSet . vertices == Set.fromList
  1271. 819.86 s [algebraic-graphs]
  1272. 819.86 s [algebraic-graphs] ============ Relation.vertexIntSet ============
  1273. 819.86 s [algebraic-graphs] OK: vertexIntSet empty == IntSet.empty
  1274. 819.86 s [algebraic-graphs] OK: vertexIntSet . vertex == IntSet.singleton
  1275. 819.86 s [algebraic-graphs] OK: vertexIntSet . vertices == IntSet.fromList
  1276. 819.86 s [algebraic-graphs] OK: vertexIntSet . clique == IntSet.fromList
  1277. 819.86 s [algebraic-graphs]
  1278. 819.86 s [algebraic-graphs] ============ Relation.edgeList ============
  1279. 819.86 s [algebraic-graphs] OK: edgeList empty == []
  1280. 819.86 s [algebraic-graphs] OK: edgeList (vertex x) == []
  1281. 819.86 s [algebraic-graphs] OK: edgeList (edge x y) == [(x,y)]
  1282. 819.86 s [algebraic-graphs] OK: edgeList (star 2 [3,1]) == [(2,1), (2,3)]
  1283. 819.86 s [algebraic-graphs] OK: edgeList . edges == nub . sort
  1284. 819.86 s [algebraic-graphs]
  1285. 819.86 s [algebraic-graphs] ============ Relation.edgeSet ============
  1286. 819.86 s [algebraic-graphs] OK: edgeSet empty == Set.empty
  1287. 819.86 s [algebraic-graphs] OK: edgeSet (vertex x) == Set.empty
  1288. 819.86 s [algebraic-graphs] OK: edgeSet (edge x y) == Set.singleton (x,y)
  1289. 819.86 s [algebraic-graphs] OK: edgeSet . edges == Set.fromList
  1290. 819.86 s [algebraic-graphs]
  1291. 819.86 s [algebraic-graphs] ============ Relation.adjacencyList ============
  1292. 819.86 s [algebraic-graphs] OK: adjacencyList empty == []
  1293. 819.86 s [algebraic-graphs] OK: adjacencyList (vertex x) == [(x, [])]
  1294. 819.86 s [algebraic-graphs] OK: adjacencyList (edge 1 2) == [(1, [2]), (2, [])]
  1295. 819.86 s [algebraic-graphs] OK: adjacencyList (star 2 [3,1]) == [(1, []), (2, [1,3]), (3, [])]
  1296. 819.86 s [algebraic-graphs]
  1297. 819.86 s [algebraic-graphs] ============ Relation.preSet ============
  1298. 819.86 s [algebraic-graphs] OK: preSet x empty == Set.empty
  1299. 819.86 s [algebraic-graphs] OK: preSet x (vertex x) == Set.empty
  1300. 819.86 s [algebraic-graphs] OK: preSet 1 (edge 1 2) == Set.empty
  1301. 819.86 s [algebraic-graphs] OK: preSet y (edge x y) == Set.fromList [x]
  1302. 819.86 s [algebraic-graphs]
  1303. 819.86 s [algebraic-graphs] ============ Relation.preIntSet ============
  1304. 819.86 s [algebraic-graphs] OK: preIntSet x empty == IntSet.empty
  1305. 819.86 s [algebraic-graphs] OK: preIntSet x (vertex x) == IntSet.empty
  1306. 819.86 s [algebraic-graphs] OK: preIntSet 1 (edge 1 2) == IntSet.empty
  1307. 819.86 s [algebraic-graphs] OK: preIntSet y (edge x y) == IntSet.fromList [x]
  1308. 819.86 s [algebraic-graphs]
  1309. 819.86 s [algebraic-graphs] ============ Relation.postSet ============
  1310. 819.86 s [algebraic-graphs] OK: postSet x empty == Set.empty
  1311. 819.86 s [algebraic-graphs] OK: postSet x (vertex x) == Set.empty
  1312. 819.86 s [algebraic-graphs] OK: postSet x (edge x y) == Set.fromList [y]
  1313. 819.86 s [algebraic-graphs] OK: postSet 2 (edge 1 2) == Set.empty
  1314. 819.86 s [algebraic-graphs]
  1315. 819.86 s [algebraic-graphs] ============ Relation.postIntSet ============
  1316. 819.86 s [algebraic-graphs] OK: postIntSet x empty == IntSet.empty
  1317. 819.86 s [algebraic-graphs] OK: postIntSet x (vertex x) == IntSet.empty
  1318. 819.86 s [algebraic-graphs] OK: postIntSet 2 (edge 1 2) == IntSet.empty
  1319. 819.86 s [algebraic-graphs] OK: postIntSet x (edge x y) == IntSet.fromList [y]
  1320. 819.86 s [algebraic-graphs]
  1321. 819.86 s [algebraic-graphs] ============ Relation.path ============
  1322. 819.86 s [algebraic-graphs] OK: path [] == empty
  1323. 819.86 s [algebraic-graphs] OK: path [x] == vertex x
  1324. 819.86 s [algebraic-graphs] OK: path [x,y] == edge x y
  1325. 819.86 s [algebraic-graphs]
  1326. 819.86 s [algebraic-graphs] ============ Relation.circuit ============
  1327. 819.86 s [algebraic-graphs] OK: circuit [] == empty
  1328. 819.86 s [algebraic-graphs] OK: circuit [x] == edge x x
  1329. 819.86 s [algebraic-graphs] OK: circuit [x,y] == edges [(x,y), (y,x)]
  1330. 819.86 s [algebraic-graphs]
  1331. 819.86 s [algebraic-graphs] ============ Relation.clique ============
  1332. 819.86 s [algebraic-graphs] OK: clique [] == empty
  1333. 819.86 s [algebraic-graphs] OK: clique [x] == vertex x
  1334. 819.86 s [algebraic-graphs] OK: clique [x,y] == edge x y
  1335. 819.86 s [algebraic-graphs] OK: clique [x,y,z] == edges [(x,y), (x,z), (y,z)]
  1336. 819.86 s [algebraic-graphs] OK: clique (xs ++ ys) == connect (clique xs) (clique ys)
  1337. 819.86 s [algebraic-graphs]
  1338. 819.86 s [algebraic-graphs] ============ Relation.biclique ============
  1339. 819.86 s [algebraic-graphs] OK: biclique [] [] == empty
  1340. 819.86 s [algebraic-graphs] OK: biclique [x] [] == vertex x
  1341. 819.86 s [algebraic-graphs] OK: biclique [] [y] == vertex y
  1342. 819.86 s [algebraic-graphs] OK: biclique [x1,x2] [y1,y2] == edges [(x1,y1), (x1,y2), (x2,y1), (x2,y2)]
  1343. 819.86 s [algebraic-graphs] OK: biclique xs ys == connect (vertices xs) (vertices ys)
  1344. 819.86 s [algebraic-graphs]
  1345. 819.86 s [algebraic-graphs] ============ Relation.star ============
  1346. 819.86 s [algebraic-graphs] OK: star x [] == vertex x
  1347. 819.86 s [algebraic-graphs] OK: star x [y] == edge x y
  1348. 819.86 s [algebraic-graphs] OK: star x [y,z] == edges [(x,y), (x,z)]
  1349. 819.86 s [algebraic-graphs] OK: star x ys == connect (vertex x) (vertices ys)
  1350. 819.86 s [algebraic-graphs]
  1351. 819.86 s [algebraic-graphs] ============ Relation.stars ============
  1352. 819.86 s [algebraic-graphs] OK: stars [] == empty
  1353. 819.86 s [algebraic-graphs] OK: stars [(x, [])] == vertex x
  1354. 819.86 s [algebraic-graphs] OK: stars [(x, [y])] == edge x y
  1355. 819.86 s [algebraic-graphs] OK: stars [(x, ys)] == star x ys
  1356. 819.86 s [algebraic-graphs] OK: stars == overlays . map (uncurry star)
  1357. 819.86 s [algebraic-graphs] OK: stars . adjacencyList == id
  1358. 819.86 s [algebraic-graphs] OK: overlay (stars xs) (stars ys) == stars (xs ++ ys)
  1359. 819.86 s [algebraic-graphs]
  1360. 819.86 s [algebraic-graphs] ============ Relation.tree ============
  1361. 819.86 s [algebraic-graphs] OK: tree (Node x []) == vertex x
  1362. 819.86 s [algebraic-graphs] OK: tree (Node x [Node y [Node z []]]) == path [x,y,z]
  1363. 819.86 s [algebraic-graphs] OK: tree (Node x [Node y [], Node z []]) == star x [y,z]
  1364. 819.86 s [algebraic-graphs] OK: tree (Node 1 [Node 2 [], Node 3 [Node 4 [], Node 5 []]]) == edges [(1,2), (1,3), (3,4), (3,5)]
  1365. 819.86 s [algebraic-graphs]
  1366. 819.86 s [algebraic-graphs] ============ Relation.forest ============
  1367. 819.86 s [algebraic-graphs] OK: forest [] == empty
  1368. 819.86 s [algebraic-graphs] OK: forest [x] == tree x
  1369. 819.86 s [algebraic-graphs] OK: forest [Node 1 [Node 2 [], Node 3 []], Node 4 [Node 5 []]] == edges [(1,2), (1,3), (4,5)]
  1370. 819.86 s [algebraic-graphs] OK: forest == overlays . map tree
  1371. 819.86 s [algebraic-graphs]
  1372. 819.86 s [algebraic-graphs] ============ Relation.removeVertex ============
  1373. 819.86 s [algebraic-graphs] OK: removeVertex x (vertex x) == empty
  1374. 819.86 s [algebraic-graphs] OK: removeVertex 1 (vertex 2) == vertex 2
  1375. 819.86 s [algebraic-graphs] OK: removeVertex x (edge x x) == empty
  1376. 819.86 s [algebraic-graphs] OK: removeVertex 1 (edge 1 2) == vertex 2
  1377. 819.86 s [algebraic-graphs] OK: removeVertex x . removeVertex x == removeVertex x
  1378. 819.86 s [algebraic-graphs]
  1379. 819.86 s [algebraic-graphs] ============ Relation.removeEdge ============
  1380. 819.86 s [algebraic-graphs] OK: removeEdge x y (edge x y) == vertices [x,y]
  1381. 819.86 s [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y
  1382. 819.86 s [algebraic-graphs] OK: removeEdge x y . removeVertex x == removeVertex x
  1383. 819.86 s [algebraic-graphs] OK: removeEdge 1 1 (1 * 1 * 2 * 2) == 1 * 2 * 2
  1384. 819.86 s [algebraic-graphs] OK: removeEdge 1 2 (1 * 1 * 2 * 2) == 1 * 1 + 2 * 2
  1385. 819.86 s [algebraic-graphs]
  1386. 819.86 s [algebraic-graphs] ============ Relation.replaceVertex ============
  1387. 819.86 s [algebraic-graphs] OK: replaceVertex x x == id
  1388. 819.86 s [algebraic-graphs] OK: replaceVertex x y (vertex x) == vertex y
  1389. 819.86 s [algebraic-graphs] OK: replaceVertex x y == mergeVertices (== x) y
  1390. 819.86 s [algebraic-graphs]
  1391. 819.86 s [algebraic-graphs] ============ Relation.mergeVertices ============
  1392. 819.86 s [algebraic-graphs] OK: mergeVertices (const False) x == id
  1393. 837.85 s [algebraic-graphs] OK: mergeVertices (== x) y == replaceVertex x y
  1394. 837.85 s [algebraic-graphs] OK: mergeVertices even 1 (0 * 2) == 1 * 1
  1395. 837.89 s [algebraic-graphs] OK: mergeVertices odd 1 (3 + 4 * 5) == 4 * 1
  1396. 837.89 s [algebraic-graphs]
  1397. 837.89 s [algebraic-graphs] ============ Relation.transpose ============
  1398. 837.89 s [algebraic-graphs] OK: transpose empty == empty
  1399. 837.89 s [algebraic-graphs] OK: transpose (vertex x) == vertex x
  1400. 837.89 s [algebraic-graphs] OK: transpose (edge x y) == edge y x
  1401. 837.89 s [algebraic-graphs] OK: transpose . transpose == id
  1402. 837.89 s [algebraic-graphs] OK: edgeList . transpose == sort . map swap . edgeList
  1403. 837.89 s [algebraic-graphs]
  1404. 837.89 s [algebraic-graphs] ============ Relation.gmap ============
  1405. 837.89 s [algebraic-graphs] OK: gmap f empty == empty
  1406. 837.89 s [algebraic-graphs] OK: gmap f (vertex x) == vertex (f x)
  1407. 837.89 s [algebraic-graphs] OK: gmap f (edge x y) == edge (f x) (f y)
  1408. 837.89 s [algebraic-graphs] OK: gmap id == id
  1409. 837.89 s [algebraic-graphs] OK: gmap f . gmap g == gmap (f . g)
  1410. 837.89 s [algebraic-graphs]
  1411. 837.89 s [algebraic-graphs] ============ Relation.induce ============
  1412. 837.89 s [algebraic-graphs] OK: induce (const True ) x == x
  1413. 837.89 s [algebraic-graphs] OK: induce (const False) x == empty
  1414. 837.89 s [algebraic-graphs] OK: induce (/= x) == removeVertex x
  1415. 837.89 s [algebraic-graphs] OK: induce p . induce q == induce (\x -> p x && q x)
  1416. 837.89 s [algebraic-graphs] OK: isSubgraphOf (induce p x) x == True
  1417. 837.89 s [algebraic-graphs]
  1418. 837.89 s [algebraic-graphs] ============ Relation.compose ============
  1419. 837.89 s [algebraic-graphs] OK: compose empty x == empty
  1420. 837.89 s [algebraic-graphs] OK: compose x empty == empty
  1421. 837.89 s [algebraic-graphs] OK: compose (vertex x) y == empty
  1422. 837.89 s [algebraic-graphs] OK: compose x (vertex y) == empty
  1423. 837.89 s [algebraic-graphs] OK: compose x (compose y z) == compose (compose x y) z
  1424. 837.89 s [algebraic-graphs] OK: compose x (overlay y z) == overlay (compose x y) (compose x z)
  1425. 837.89 s [algebraic-graphs] OK: compose (overlay x y) z == overlay (compose x z) (compose y z)
  1426. 837.89 s [algebraic-graphs] OK: compose (edge x y) (edge y z) == edge x z
  1427. 837.89 s [algebraic-graphs] OK: compose (path [1..5]) (path [1..5]) == edges [(1,3),(2,4),(3,5)]
  1428. 837.89 s [algebraic-graphs] OK: compose (circuit [1..5]) (circuit [1..5]) == circuit [1,3,5,2,4]
  1429. 837.89 s [algebraic-graphs]
  1430. 837.89 s [algebraic-graphs] ============ Relation.closure ============
  1431. 837.89 s [algebraic-graphs] OK: closure empty == empty
  1432. 837.89 s [algebraic-graphs] OK: closure (vertex x) == edge x x
  1433. 837.89 s [algebraic-graphs] OK: closure (edge x x) == edge x x
  1434. 837.89 s [algebraic-graphs] OK: closure (edge x y) == edges [(x,x), (x,y), (y,y)]
  1435. 837.89 s [algebraic-graphs] OK: closure (path $ nub xs) == reflexiveClosure (clique $ nub xs)
  1436. 837.89 s [algebraic-graphs] OK: closure == reflexiveClosure . transitiveClosure
  1437. 837.89 s [algebraic-graphs] OK: closure == transitiveClosure . reflexiveClosure
  1438. 837.89 s [algebraic-graphs] OK: closure . closure == closure
  1439. 837.89 s [algebraic-graphs] OK: postSet x (closure y) == Set.fromList (reachable y x)
  1440. 837.89 s [algebraic-graphs]
  1441. 837.89 s [algebraic-graphs] ============ Relation.reflexiveClosure ============
  1442. 837.89 s [algebraic-graphs] OK: reflexiveClosure empty == empty
  1443. 837.89 s [algebraic-graphs] OK: reflexiveClosure (vertex x) == edge x x
  1444. 837.89 s [algebraic-graphs] OK: reflexiveClosure (edge x x) == edge x x
  1445. 837.89 s [algebraic-graphs] OK: reflexiveClosure (edge x y) == edges [(x,x), (x,y), (y,y)]
  1446. 837.89 s [algebraic-graphs] OK: reflexiveClosure . reflexiveClosure == reflexiveClosure
  1447. 837.89 s [algebraic-graphs]
  1448. 837.89 s [algebraic-graphs] ============ Relation.symmetricClosure ============
  1449. 837.89 s [algebraic-graphs] OK: symmetricClosure empty == empty
  1450. 837.89 s [algebraic-graphs] OK: symmetricClosure (vertex x) == vertex x
  1451. 837.89 s [algebraic-graphs] OK: symmetricClosure (edge x y) == edges [(x,y), (y,x)]
  1452. 837.89 s [algebraic-graphs] OK: symmetricClosure x == overlay x (transpose x)
  1453. 837.89 s [algebraic-graphs] OK: symmetricClosure . symmetricClosure == symmetricClosure
  1454. 837.89 s [algebraic-graphs]
  1455. 837.89 s [algebraic-graphs] ============ Relation.transitiveClosure ============
  1456. 837.89 s [algebraic-graphs] OK: transitiveClosure empty == empty
  1457. 837.89 s [algebraic-graphs] OK: transitiveClosure (vertex x) == vertex x
  1458. 837.89 s [algebraic-graphs] OK: transitiveClosure (edge x y) == edge x y
  1459. 837.89 s [algebraic-graphs] OK: transitiveClosure (path $ nub xs) == clique (nub $ xs)
  1460. 837.89 s [algebraic-graphs] OK: transitiveClosure . transitiveClosure == transitiveClosure
  1461. 837.89 s [algebraic-graphs]
  1462. 837.89 s [algebraic-graphs] ============ Relation.induceJust ============
  1463. 837.89 s [algebraic-graphs] OK: induceJust (vertex Nothing) == empty
  1464. 837.89 s [algebraic-graphs] OK: induceJust (edge (Just x) Nothing) == vertex x
  1465. 837.89 s [algebraic-graphs] OK: induceJust . gmap Just == id
  1466. 837.89 s [algebraic-graphs] OK: induceJust . gmap (\x -> if p x then Just x else Nothing) == induce p
  1467. 837.89 s [algebraic-graphs]
  1468. 837.89 s [algebraic-graphs] ============ ReflexiveRelation ============
  1469. 837.89 s [algebraic-graphs] OK: Axioms of reflexive graphs
  1470. 837.89 s [algebraic-graphs]
  1471. 837.89 s [algebraic-graphs] ============ TransitiveRelation ============
  1472. 837.89 s [algebraic-graphs] OK: Axioms of transitive graphs
  1473. 837.89 s [algebraic-graphs] OK: path xs == (clique xs :: TransitiveRelation Int)
  1474. 837.89 s [algebraic-graphs]
  1475. 837.89 s [algebraic-graphs] ============ PreorderRelation ============
  1476. 837.89 s [algebraic-graphs] OK: Axioms of preorder graphs
  1477. 837.89 s [algebraic-graphs] OK: path xs == (clique xs :: PreorderRelation Int)
  1478. 837.89 s [algebraic-graphs]
  1479. 837.89 s [algebraic-graphs] ============ Symmetric.Relation ============
  1480. 837.89 s [algebraic-graphs] OK: Axioms of undirected graphs
  1481. 837.89 s [algebraic-graphs]
  1482. 837.89 s [algebraic-graphs] ============ Symmetric.Relation.consistent ============
  1483. 837.89 s [algebraic-graphs] OK: Consistency of the Arbitrary instance
  1484. 837.89 s [algebraic-graphs]
  1485. 837.89 s [algebraic-graphs] OK: consistent empty == True
  1486. 837.89 s [algebraic-graphs] OK: consistent (vertex x) == True
  1487. 837.89 s [algebraic-graphs] OK: consistent (overlay x y) == True
  1488. 837.89 s [algebraic-graphs] OK: consistent (connect x y) == True
  1489. 837.89 s [algebraic-graphs] OK: consistent (edge x y) == True
  1490. 837.89 s [algebraic-graphs] OK: consistent (edges xs) == True
  1491. 837.89 s [algebraic-graphs] OK: consistent (stars xs) == True
  1492. 837.89 s [algebraic-graphs]
  1493. 837.89 s [algebraic-graphs] ============ Symmetric.Relation.Show ============
  1494. 837.89 s [algebraic-graphs] OK: show (empty ) == "empty"
  1495. 837.89 s [algebraic-graphs] OK: show (1 ) == "vertex 1"
  1496. 837.89 s [algebraic-graphs] OK: show (1 + 2 ) == "vertices [1,2]"
  1497. 837.89 s [algebraic-graphs] OK: show (1 * 2 ) == "edge 1 2"
  1498. 837.89 s [algebraic-graphs] OK: show (1 * 2 * 3) == "edges [(1,2),(1,3),(2,3)]"
  1499. 837.89 s [algebraic-graphs] OK: show (1 * 2 + 3) == "overlay (vertex 3) (edge 1 2)"
  1500. 837.89 s [algebraic-graphs]
  1501. 837.89 s [algebraic-graphs] OK: show (vertex (-1) ) == "vertex (-1)"
  1502. 837.89 s [algebraic-graphs] OK: show (vertex (-1) + vertex (-2) ) == "vertices [-2,-1]"
  1503. 837.89 s [algebraic-graphs] OK: show (vertex (-2) * vertex (-1) ) == "edge (-2) (-1)"
  1504. 837.89 s [algebraic-graphs] OK: show (vertex (-3) * vertex (-2) * vertex (-1)) == "edges [(-3,-2),(-3,-1),(-2,-1)]"
  1505. 837.89 s [algebraic-graphs] OK: show (vertex (-3) * vertex (-2) + vertex (-1)) == "overlay (vertex (-1)) (edge (-3) (-2))"
  1506. 837.89 s [algebraic-graphs]
  1507. 837.89 s [algebraic-graphs] OK: show (2 * 1 ) == "edge 1 2"
  1508. 837.89 s [algebraic-graphs] OK: show (1 * 2 * 1) == "edges [(1,1),(1,2)]"
  1509. 837.89 s [algebraic-graphs] OK: show (3 * 2 * 1) == "edges [(1,2),(1,3),(2,3)]"
  1510. 837.89 s [algebraic-graphs]
  1511. 837.89 s [algebraic-graphs] ============ Symmetric.Relation.toSymmetric ============
  1512. 837.89 s [algebraic-graphs] OK: toSymmetric (edge 1 2) == edge 1 2
  1513. 837.89 s [algebraic-graphs] OK: toSymmetric . fromSymmetric == id
  1514. 837.89 s [algebraic-graphs] OK: fromSymmetric . toSymmetric == symmetricClosure
  1515. 837.89 s [algebraic-graphs] OK: vertexCount . toSymmetric == vertexCount
  1516. 837.89 s [algebraic-graphs] OK: (*2) . edgeCount . toSymmetric >= edgeCount
  1517. 837.89 s [algebraic-graphs]
  1518. 837.89 s [algebraic-graphs] ============ Symmetric.Relation.fromSymmetric ============
  1519. 837.89 s [algebraic-graphs] OK: fromSymmetric (edge 1 2) == edges [(1,2), (2,1)]
  1520. 837.89 s [algebraic-graphs] OK: vertexCount . fromSymmetric == vertexCount
  1521. 837.89 s [algebraic-graphs] OK: edgeCount . fromSymmetric <= (*2) . edgeCount
  1522. 837.89 s [algebraic-graphs]
  1523. 837.89 s [algebraic-graphs] ============ Symmetric.Relation.Ord ============
  1524. 837.89 s [algebraic-graphs] OK: vertex 1 < vertex 2
  1525. 837.89 s [algebraic-graphs] OK: vertex 3 < edge 1 2
  1526. 837.89 s [algebraic-graphs] OK: vertex 1 < edge 1 1
  1527. 837.89 s [algebraic-graphs] OK: edge 1 1 < edge 1 2
  1528. 837.89 s [algebraic-graphs] OK: edge 1 2 < edge 1 1 + edge 2 2
  1529. 837.89 s [algebraic-graphs] OK: edge 2 1 < edge 1 3
  1530. 837.89 s [algebraic-graphs] OK: edge 1 2 == edge 2 1
  1531. 837.89 s [algebraic-graphs] OK: x <= x + y
  1532. 837.89 s [algebraic-graphs] OK: x + y <= x * y
  1533. 837.89 s [algebraic-graphs]
  1534. 837.89 s [algebraic-graphs] ============ Symmetric.Relation.empty ============
  1535. 837.89 s [algebraic-graphs] OK: isEmpty empty == True
  1536. 837.89 s [algebraic-graphs] OK: hasVertex x empty == False
  1537. 837.89 s [algebraic-graphs] OK: vertexCount empty == 0
  1538. 837.89 s [algebraic-graphs] OK: edgeCount empty == 0
  1539. 837.89 s [algebraic-graphs]
  1540. 837.89 s [algebraic-graphs] ============ Symmetric.Relation.vertex ============
  1541. 837.89 s [algebraic-graphs] OK: isEmpty (vertex x) == False
  1542. 837.89 s [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y)
  1543. 837.89 s [algebraic-graphs] OK: vertexCount (vertex x) == 1
  1544. 837.89 s [algebraic-graphs] OK: edgeCount (vertex x) == 0
  1545. 837.89 s [algebraic-graphs]
  1546. 837.89 s [algebraic-graphs] ============ Symmetric.Relation.edge ============
  1547. 837.89 s [algebraic-graphs] OK: edge x y == connect (vertex x) (vertex y)
  1548. 837.89 s [algebraic-graphs] OK: edge x y == edge y x
  1549. 837.89 s [algebraic-graphs] OK: edge x y == edges [(x,y), (y,x)]
  1550. 837.89 s [algebraic-graphs] OK: hasEdge x y (edge x y) == True
  1551. 837.89 s [algebraic-graphs] OK: edgeCount (edge x y) == 1
  1552. 837.89 s [algebraic-graphs] OK: vertexCount (edge 1 1) == 1
  1553. 837.89 s [algebraic-graphs] OK: vertexCount (edge 1 2) == 2
  1554. 837.89 s [algebraic-graphs]
  1555. 837.89 s [algebraic-graphs] ============ Symmetric.Relation.overlay ============
  1556. 837.89 s [algebraic-graphs] OK: isEmpty (overlay x y) == isEmpty x && isEmpty y
  1557. 837.89 s [algebraic-graphs] OK: hasVertex z (overlay x y) == hasVertex z x || hasVertex z y
  1558. 837.89 s [algebraic-graphs] OK: vertexCount (overlay x y) >= vertexCount x
  1559. 837.89 s [algebraic-graphs] OK: vertexCount (overlay x y) <= vertexCount x + vertexCount y
  1560. 837.89 s [algebraic-graphs] OK: edgeCount (overlay x y) >= edgeCount x
  1561. 837.89 s [algebraic-graphs] OK: edgeCount (overlay x y) <= edgeCount x + edgeCount y
  1562. 837.89 s [algebraic-graphs] OK: vertexCount (overlay 1 2) == 2
  1563. 837.89 s [algebraic-graphs] OK: edgeCount (overlay 1 2) == 0
  1564. 837.89 s [algebraic-graphs]
  1565. 837.89 s [algebraic-graphs] ============ Symmetric.Relation.connect ============
  1566. 837.89 s [algebraic-graphs] OK: connect x y == connect y x
  1567. 837.89 s [algebraic-graphs] OK: isEmpty (connect x y) == isEmpty x && isEmpty y
  1568. 837.89 s [algebraic-graphs] OK: hasVertex z (connect x y) == hasVertex z x || hasVertex z y
  1569. 837.89 s [algebraic-graphs] OK: vertexCount (connect x y) >= vertexCount x
  1570. 837.89 s [algebraic-graphs] OK: vertexCount (connect x y) <= vertexCount x + vertexCount y
  1571. 837.89 s [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount x
  1572. 837.89 s [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount y
  1573. 837.89 s [algebraic-graphs] OK: edgeCount (connect x y) >= vertexCount x * vertexCount y `div` 2
  1574. 837.89 s [algebraic-graphs] OK: edgeCount (connect x y) <= vertexCount x * vertexCount y + edgeCount x + edgeCount y
  1575. 837.89 s [algebraic-graphs] OK: vertexCount (connect 1 2) == 2
  1576. 837.89 s [algebraic-graphs] OK: edgeCount (connect 1 2) == 1
  1577. 837.89 s [algebraic-graphs]
  1578. 837.89 s [algebraic-graphs] ============ Symmetric.Relation.vertices ============
  1579. 837.89 s [algebraic-graphs] OK: vertices [] == empty
  1580. 837.89 s [algebraic-graphs] OK: vertices [x] == vertex x
  1581. 837.89 s [algebraic-graphs] OK: vertices == overlays . map vertex
  1582. 837.89 s [algebraic-graphs] OK: hasVertex x . vertices == elem x
  1583. 837.89 s [algebraic-graphs] OK: vertexCount . vertices == length . nub
  1584. 837.89 s [algebraic-graphs] OK: vertexSet . vertices == Set.fromList
  1585. 837.89 s [algebraic-graphs]
  1586. 837.89 s [algebraic-graphs] ============ Symmetric.Relation.edges ============
  1587. 837.89 s [algebraic-graphs] OK: edges [] == empty
  1588. 837.89 s [algebraic-graphs] OK: edges [(x,y)] == edge x y
  1589. 837.89 s [algebraic-graphs] OK: edges [(x,y), (y,x)] == edge x y
  1590. 837.89 s [algebraic-graphs]
  1591. 837.89 s [algebraic-graphs] ============ Symmetric.Relation.overlays ============
  1592. 837.89 s [algebraic-graphs] OK: overlays [] == empty
  1593. 847.40 s [algebraic-graphs] OK: overlays [x] == x
  1594. 847.43 s [algebraic-graphs] OK: overlays [x,y] == overlay x y
  1595. 847.43 s [algebraic-graphs] OK: overlays == foldr overlay empty
  1596. 847.43 s [algebraic-graphs] OK: isEmpty . overlays == all isEmpty
  1597. 847.43 s [algebraic-graphs]
  1598. 847.43 s [algebraic-graphs] ============ Symmetric.Relation.connects ============
  1599. 847.43 s [algebraic-graphs] OK: connects [] == empty
  1600. 847.43 s [algebraic-graphs] OK: connects [x] == x
  1601. 847.43 s [algebraic-graphs] OK: connects [x,y] == connect x y
  1602. 847.43 s [algebraic-graphs] OK: connects == foldr connect empty
  1603. 847.43 s [algebraic-graphs] OK: isEmpty . connects == all isEmpty
  1604. 847.43 s [algebraic-graphs] OK: connects == connects . reverse
  1605. 847.43 s [algebraic-graphs]
  1606. 847.43 s [algebraic-graphs] ============ Symmetric.Relation.isSubgraphOf ============
  1607. 847.43 s [algebraic-graphs] OK: isSubgraphOf empty x == True
  1608. 847.43 s [algebraic-graphs] OK: isSubgraphOf (vertex x) empty == False
  1609. 847.43 s [algebraic-graphs] OK: isSubgraphOf x (overlay x y) == True
  1610. 847.43 s [algebraic-graphs] OK: isSubgraphOf (overlay x y) (connect x y) == True
  1611. 847.43 s [algebraic-graphs] OK: isSubgraphOf (path xs) (circuit xs) == True
  1612. 847.43 s [algebraic-graphs] OK: isSubgraphOf x y ==> x <= y
  1613. 847.43 s [algebraic-graphs] OK: isSubgraphOf (edge x y) (edge y x) == True
  1614. 847.43 s [algebraic-graphs]
  1615. 847.43 s [algebraic-graphs] ============ Symmetric.Relation.toGraph et al. ============
  1616. 847.43 s [algebraic-graphs] OK: toGraph == foldg Empty Vertex Overlay Connect
  1617. 847.43 s [algebraic-graphs] OK: foldg == Algebra.Graph.foldg . toGraph
  1618. 847.43 s [algebraic-graphs] OK: isEmpty == foldg True (const False) (&&) (&&)
  1619. 847.43 s [algebraic-graphs] OK: size == foldg 1 (const 1) (+) (+)
  1620. 847.43 s [algebraic-graphs] OK: hasVertex x == foldg False (==x) (||) (||)
  1621. 847.43 s [algebraic-graphs] OK: hasEdge x y == Algebra.Graph.hasEdge x y . toGraph
  1622. 847.43 s [algebraic-graphs] OK: vertexCount == Set.size . vertexSet
  1623. 847.43 s [algebraic-graphs] OK: edgeCount == Set.size . edgeSet
  1624. 847.43 s [algebraic-graphs] OK: vertexList == Set.toAscList . vertexSet
  1625. 847.43 s [algebraic-graphs] OK: edgeList == Set.toAscList . edgeSet
  1626. 847.43 s [algebraic-graphs] OK: vertexSet == foldg Set.empty Set.singleton Set.union Set.union
  1627. 847.43 s [algebraic-graphs] OK: vertexIntSet == foldg IntSet.empty IntSet.singleton IntSet.union IntSet.union
  1628. 847.43 s [algebraic-graphs] OK: adjacencyList == Algebra.Graph.AdjacencyMap.adjacencyList . toAdjacencyMap
  1629. 847.43 s [algebraic-graphs] OK: adjacencyMap == Algebra.Graph.AdjacencyMap.adjacencyMap . toAdjacencyMap
  1630. 847.43 s [algebraic-graphs] OK: adjacencyIntMap == Algebra.Graph.AdjacencyIntMap.adjacencyIntMap . toAdjacencyIntMap
  1631. 847.43 s [algebraic-graphs] OK: adjacencyMapTranspose == Algebra.Graph.AdjacencyMap.adjacencyMap . toAdjacencyMapTranspose
  1632. 847.43 s [algebraic-graphs] OK: adjacencyIntMapTranspose == Algebra.Graph.AdjacencyIntMap.adjacencyIntMap . toAdjacencyIntMapTranspose
  1633. 847.43 s [algebraic-graphs] OK: dfsForest == Algebra.Graph.AdjacencyMap.dfsForest . toAdjacencyMap
  1634. 847.43 s [algebraic-graphs] OK: dfsForestFrom == Algebra.Graph.AdjacencyMap.dfsForestFrom . toAdjacencyMap
  1635. 847.43 s [algebraic-graphs] OK: dfs == Algebra.Graph.AdjacencyMap.dfs . toAdjacencyMap
  1636. 847.43 s [algebraic-graphs] OK: reachable == Algebra.Graph.AdjacencyMap.reachable . toAdjacencyMap
  1637. 847.43 s [algebraic-graphs] OK: topSort == Algebra.Graph.AdjacencyMap.topSort . toAdjacencyMap
  1638. 847.43 s [algebraic-graphs] OK: isAcyclic == Algebra.Graph.AdjacencyMap.isAcyclic . toAdjacencyMap
  1639. 847.43 s [algebraic-graphs] OK: isTopSortOf vs == Algebra.Graph.AdjacencyMap.isTopSortOf vs . toAdjacencyMap
  1640. 847.43 s [algebraic-graphs] OK: toAdjacencyMap == foldg empty vertex overlay connect
  1641. 847.43 s [algebraic-graphs] OK: toAdjacencyMapTranspose == foldg empty vertex overlay (flip connect)
  1642. 847.43 s [algebraic-graphs] OK: toAdjacencyIntMap == foldg empty vertex overlay connect
  1643. 847.43 s [algebraic-graphs] OK: toAdjacencyIntMapTranspose == foldg empty vertex overlay (flip connect)
  1644. 847.43 s [algebraic-graphs] OK: isDfsForestOf f == Algebra.Graph.AdjacencyMap.isDfsForestOf f . toAdjacencyMap
  1645. 847.43 s [algebraic-graphs] OK: isTopSortOf vs == Algebra.Graph.AdjacencyMap.isTopSortOf vs . toAdjacencyMap
  1646. 847.43 s [algebraic-graphs]
  1647. 847.43 s [algebraic-graphs] ============ Symmetric.Relation.isEmpty ============
  1648. 847.43 s [algebraic-graphs] OK: isEmpty empty == True
  1649. 847.43 s [algebraic-graphs] OK: isEmpty (overlay empty empty) == True
  1650. 847.43 s [algebraic-graphs] OK: isEmpty (vertex x) == False
  1651. 847.43 s [algebraic-graphs] OK: isEmpty (removeVertex x $ vertex x) == True
  1652. 847.43 s [algebraic-graphs] OK: isEmpty (removeEdge x y $ edge x y) == False
  1653. 847.43 s [algebraic-graphs]
  1654. 847.43 s [algebraic-graphs] ============ Symmetric.Relation.hasVertex ============
  1655. 847.43 s [algebraic-graphs] OK: hasVertex x empty == False
  1656. 847.43 s [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y)
  1657. 847.44 s [algebraic-graphs] OK: hasVertex x . removeVertex x == const False
  1658. 847.44 s [algebraic-graphs]
  1659. 847.44 s [algebraic-graphs] ============ Symmetric.Relation.hasEdge ============
  1660. 847.44 s [algebraic-graphs] OK: hasEdge x y empty == False
  1661. 847.44 s [algebraic-graphs] OK: hasEdge x y (vertex z) == False
  1662. 847.44 s [algebraic-graphs] OK: hasEdge x y (edge x y) == True
  1663. 847.44 s [algebraic-graphs] OK: hasEdge x y (edge y x) == True
  1664. 847.44 s [algebraic-graphs] OK: hasEdge x y . removeEdge x y == const False
  1665. 847.44 s [algebraic-graphs] OK: hasEdge x y == elem (min x y, max x y) . edgeList
  1666. 847.44 s [algebraic-graphs]
  1667. 847.44 s [algebraic-graphs] ============ Symmetric.Relation.vertexCount ============
  1668. 847.44 s [algebraic-graphs] OK: vertexCount empty == 0
  1669. 847.44 s [algebraic-graphs] OK: vertexCount (vertex x) == 1
  1670. 847.44 s [algebraic-graphs] OK: vertexCount == length . vertexList
  1671. 847.44 s [algebraic-graphs] OK: vertexCount x < vertexCount y ==> x < y
  1672. 847.44 s [algebraic-graphs]
  1673. 847.44 s [algebraic-graphs] ============ Symmetric.Relation.edgeCount ============
  1674. 847.44 s [algebraic-graphs] OK: edgeCount empty == 0
  1675. 847.44 s [algebraic-graphs] OK: edgeCount (vertex x) == 0
  1676. 847.44 s [algebraic-graphs] OK: edgeCount (edge x y) == 1
  1677. 847.44 s [algebraic-graphs] OK: edgeCount == length . edgeList
  1678. 847.44 s [algebraic-graphs]
  1679. 847.44 s [algebraic-graphs] ============ Symmetric.Relation.vertexList ============
  1680. 847.44 s [algebraic-graphs] OK: vertexList empty == []
  1681. 847.44 s [algebraic-graphs] OK: vertexList (vertex x) == [x]
  1682. 847.44 s [algebraic-graphs] OK: vertexList . vertices == nub . sort
  1683. 847.44 s [algebraic-graphs]
  1684. 847.44 s [algebraic-graphs] ============ Symmetric.Relation.vertexSet ============
  1685. 847.44 s [algebraic-graphs] OK: vertexSet empty == Set.empty
  1686. 847.44 s [algebraic-graphs] OK: vertexSet . vertex == Set.singleton
  1687. 847.44 s [algebraic-graphs] OK: vertexSet . vertices == Set.fromList
  1688. 847.44 s [algebraic-graphs]
  1689. 847.44 s [algebraic-graphs] ============ Symmetric.Relation.vertexIntSet ============
  1690. 847.44 s [algebraic-graphs] OK: vertexIntSet empty == IntSet.empty
  1691. 847.44 s [algebraic-graphs] OK: vertexIntSet . vertex == IntSet.singleton
  1692. 847.44 s [algebraic-graphs] OK: vertexIntSet . vertices == IntSet.fromList
  1693. 847.44 s [algebraic-graphs] OK: vertexIntSet . clique == IntSet.fromList
  1694. 847.44 s [algebraic-graphs]
  1695. 847.44 s [algebraic-graphs] ============ Symmetric.Relation.edgeList ============
  1696. 847.44 s [algebraic-graphs] OK: edgeList empty == []
  1697. 847.44 s [algebraic-graphs] OK: edgeList (vertex x) == []
  1698. 847.44 s [algebraic-graphs] OK: edgeList (edge x y) == [(min x y, max y x)]
  1699. 847.44 s [algebraic-graphs] OK: edgeList (star 2 [3,1]) == [(1,2), (2,3)]
  1700. 847.44 s [algebraic-graphs]
  1701. 847.44 s [algebraic-graphs] ============ Symmetric.Relation.edgeSet ============
  1702. 847.44 s [algebraic-graphs] OK: edgeSet empty == Set.empty
  1703. 847.44 s [algebraic-graphs] OK: edgeSet (vertex x) == Set.empty
  1704. 847.44 s [algebraic-graphs] OK: edgeSet (edge x y) == Set.singleton (min x y, max x y)
  1705. 847.44 s [algebraic-graphs]
  1706. 847.44 s [algebraic-graphs] ============ Symmetric.Relation.adjacencyList ============
  1707. 847.44 s [algebraic-graphs] OK: adjacencyList empty == []
  1708. 847.44 s [algebraic-graphs] OK: adjacencyList (vertex x) == [(x, [])]
  1709. 847.44 s [algebraic-graphs] OK: adjacencyList (edge 1 2) == [(1, [2]), (2, [1])]
  1710. 847.44 s [algebraic-graphs] OK: adjacencyList (star 2 [3,1]) == [(1, [2]), (2, [1,3]), (3, [2])]
  1711. 847.44 s [algebraic-graphs]
  1712. 847.44 s [algebraic-graphs] ============ Symmetric.Relation.neighbours ============
  1713. 847.44 s [algebraic-graphs] OK: neighbours x empty == Set.empty
  1714. 847.44 s [algebraic-graphs] OK: neighbours x (vertex x) == Set.empty
  1715. 847.44 s [algebraic-graphs] OK: neighbours x (edge x y) == Set.fromList [y]
  1716. 847.44 s [algebraic-graphs] OK: neighbours y (edge x y) == Set.fromList [x]
  1717. 847.44 s [algebraic-graphs]
  1718. 847.44 s [algebraic-graphs] ============ Symmetric.Relation.path ============
  1719. 847.44 s [algebraic-graphs] OK: path [] == empty
  1720. 847.44 s [algebraic-graphs] OK: path [x] == vertex x
  1721. 847.44 s [algebraic-graphs] OK: path [x,y] == edge x y
  1722. 847.44 s [algebraic-graphs] OK: path == path . reverse
  1723. 847.44 s [algebraic-graphs]
  1724. 847.44 s [algebraic-graphs] ============ Symmetric.Relation.circuit ============
  1725. 847.44 s [algebraic-graphs] OK: circuit [] == empty
  1726. 847.44 s [algebraic-graphs] OK: circuit [x] == edge x x
  1727. 847.44 s [algebraic-graphs] OK: circuit [x,y] == edges [(x,y), (y,x)]
  1728. 847.44 s [algebraic-graphs] OK: circuit == circuit . reverse
  1729. 847.44 s [algebraic-graphs]
  1730. 847.44 s [algebraic-graphs] ============ Symmetric.Relation.clique ============
  1731. 847.44 s [algebraic-graphs] OK: clique [] == empty
  1732. 847.44 s [algebraic-graphs] OK: clique [x] == vertex x
  1733. 847.44 s [algebraic-graphs] OK: clique [x,y] == edge x y
  1734. 847.44 s [algebraic-graphs] OK: clique [x,y,z] == edges [(x,y), (x,z), (y,z)]
  1735. 847.44 s [algebraic-graphs] OK: clique (xs ++ ys) == connect (clique xs) (clique ys)
  1736. 847.44 s [algebraic-graphs] OK: clique == clique . reverse
  1737. 847.44 s [algebraic-graphs]
  1738. 847.44 s [algebraic-graphs] ============ Symmetric.Relation.biclique ============
  1739. 847.44 s [algebraic-graphs] OK: biclique [] [] == empty
  1740. 847.44 s [algebraic-graphs] OK: biclique [x] [] == vertex x
  1741. 847.44 s [algebraic-graphs] OK: biclique [] [y] == vertex y
  1742. 847.44 s [algebraic-graphs] OK: biclique [x1,x2] [y1,y2] == edges [(x1,y1), (x1,y2), (x2,y1), (x2,y2)]
  1743. 847.44 s [algebraic-graphs] OK: biclique xs ys == connect (vertices xs) (vertices ys)
  1744. 847.44 s [algebraic-graphs]
  1745. 847.44 s [algebraic-graphs] ============ Symmetric.Relation.star ============
  1746. 847.44 s [algebraic-graphs] OK: star x [] == vertex x
  1747. 847.44 s [algebraic-graphs] OK: star x [y] == edge x y
  1748. 847.44 s [algebraic-graphs] OK: star x [y,z] == edges [(x,y), (x,z)]
  1749. 847.44 s [algebraic-graphs] OK: star x ys == connect (vertex x) (vertices ys)
  1750. 847.44 s [algebraic-graphs]
  1751. 847.44 s [algebraic-graphs] ============ Symmetric.Relation.stars ============
  1752. 847.44 s [algebraic-graphs] OK: stars [] == empty
  1753. 847.44 s [algebraic-graphs] OK: stars [(x, [])] == vertex x
  1754. 847.44 s [algebraic-graphs] OK: stars [(x, [y])] == edge x y
  1755. 847.44 s [algebraic-graphs] OK: stars [(x, ys)] == star x ys
  1756. 847.44 s [algebraic-graphs] OK: stars == overlays . map (uncurry star)
  1757. 847.44 s [algebraic-graphs] OK: stars . adjacencyList == id
  1758. 847.44 s [algebraic-graphs] OK: overlay (stars xs) (stars ys) == stars (xs ++ ys)
  1759. 847.44 s [algebraic-graphs]
  1760. 847.44 s [algebraic-graphs] ============ Symmetric.Relation.tree ============
  1761. 847.44 s [algebraic-graphs] OK: tree (Node x []) == vertex x
  1762. 847.44 s [algebraic-graphs] OK: tree (Node x [Node y [Node z []]]) == path [x,y,z]
  1763. 847.44 s [algebraic-graphs] OK: tree (Node x [Node y [], Node z []]) == star x [y,z]
  1764. 847.44 s [algebraic-graphs] OK: tree (Node 1 [Node 2 [], Node 3 [Node 4 [], Node 5 []]]) == edges [(1,2), (1,3), (3,4), (3,5)]
  1765. 847.44 s [algebraic-graphs]
  1766. 847.44 s [algebraic-graphs] ============ Symmetric.Relation.forest ============
  1767. 847.44 s [algebraic-graphs] OK: forest [] == empty
  1768. 853.12 s [algebraic-graphs] OK: forest [x] == tree x
  1769. 853.12 s [algebraic-graphs] OK: forest [Node 1 [Node 2 [], Node 3 []], Node 4 [Node 5 []]] == edges [(1,2), (1,3), (4,5)]
  1770. 853.16 s [algebraic-graphs] OK: forest == overlays . map tree
  1771. 853.16 s [algebraic-graphs]
  1772. 853.16 s [algebraic-graphs] ============ Symmetric.Relation.removeVertex ============
  1773. 853.16 s [algebraic-graphs] OK: removeVertex x (vertex x) == empty
  1774. 853.16 s [algebraic-graphs] OK: removeVertex 1 (vertex 2) == vertex 2
  1775. 853.16 s [algebraic-graphs] OK: removeVertex x (edge x x) == empty
  1776. 853.16 s [algebraic-graphs] OK: removeVertex 1 (edge 1 2) == vertex 2
  1777. 853.16 s [algebraic-graphs] OK: removeVertex x . removeVertex x == removeVertex x
  1778. 853.16 s [algebraic-graphs]
  1779. 853.16 s [algebraic-graphs] ============ Symmetric.Relation.removeEdge ============
  1780. 853.16 s [algebraic-graphs] OK: removeEdge x y (edge x y) == vertices [x,y]
  1781. 853.16 s [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y
  1782. 853.16 s [algebraic-graphs] OK: removeEdge x y . removeVertex x == removeVertex x
  1783. 853.16 s [algebraic-graphs] OK: removeEdge 1 1 (1 * 1 * 2 * 2) == 1 * 2 * 2
  1784. 853.16 s [algebraic-graphs] OK: removeEdge 1 2 (1 * 1 * 2 * 2) == 1 * 1 + 2 * 2
  1785. 853.16 s [algebraic-graphs] OK: removeEdge x y == removeEdge y x
  1786. 853.16 s [algebraic-graphs]
  1787. 853.16 s [algebraic-graphs] ============ Symmetric.Relation.replaceVertex ============
  1788. 853.16 s [algebraic-graphs] OK: replaceVertex x x == id
  1789. 853.16 s [algebraic-graphs] OK: replaceVertex x y (vertex x) == vertex y
  1790. 853.16 s [algebraic-graphs] OK: replaceVertex x y == mergeVertices (== x) y
  1791. 853.16 s [algebraic-graphs]
  1792. 853.16 s [algebraic-graphs] ============ Symmetric.Relation.mergeVertices ============
  1793. 853.16 s [algebraic-graphs] OK: mergeVertices (const False) x == id
  1794. 853.16 s [algebraic-graphs] OK: mergeVertices (== x) y == replaceVertex x y
  1795. 853.16 s [algebraic-graphs] OK: mergeVertices even 1 (0 * 2) == 1 * 1
  1796. 853.16 s [algebraic-graphs] OK: mergeVertices odd 1 (3 + 4 * 5) == 4 * 1
  1797. 853.16 s [algebraic-graphs]
  1798. 853.16 s [algebraic-graphs] ============ Symmetric.Relation.gmap ============
  1799. 853.16 s [algebraic-graphs] OK: gmap f empty == empty
  1800. 853.16 s [algebraic-graphs] OK: gmap f (vertex x) == vertex (f x)
  1801. 853.16 s [algebraic-graphs] OK: gmap f (edge x y) == edge (f x) (f y)
  1802. 853.16 s [algebraic-graphs] OK: gmap id == id
  1803. 853.16 s [algebraic-graphs] OK: gmap f . gmap g == gmap (f . g)
  1804. 853.16 s [algebraic-graphs]
  1805. 853.16 s [algebraic-graphs] ============ Symmetric.Relation.induce ============
  1806. 853.16 s [algebraic-graphs] OK: induce (const True ) x == x
  1807. 853.16 s [algebraic-graphs] OK: induce (const False) x == empty
  1808. 853.16 s [algebraic-graphs] OK: induce (/= x) == removeVertex x
  1809. 853.16 s [algebraic-graphs] OK: induce p . induce q == induce (\x -> p x && q x)
  1810. 853.16 s [algebraic-graphs] OK: isSubgraphOf (induce p x) x == True
  1811. 853.16 s [algebraic-graphs]
  1812. 853.16 s [algebraic-graphs] ============ Symmetric.Relation.induceJust ============
  1813. 853.16 s [algebraic-graphs] OK: induceJust (vertex Nothing) == empty
  1814. 853.16 s [algebraic-graphs] OK: induceJust (edge (Just x) Nothing) == vertex x
  1815. 853.16 s [algebraic-graphs] OK: induceJust . gmap Just == id
  1816. 853.16 s [algebraic-graphs] OK: induceJust . gmap (\x -> if p x then Just x else Nothing) == induce p
  1817. 853.16 s [algebraic-graphs]
  1818. 853.16 s [algebraic-graphs] ============ Example.Todo (Holiday) ============
  1819. 853.16 s [algebraic-graphs] OK: A todo list is semantically Maybe [a]
  1820. 853.16 s [algebraic-graphs] OK: The overlay operator (+) adds non-dependent items to the todo list
  1821. 853.16 s [algebraic-graphs] OK: The connect operator (*) adds dependency between items
  1822. 853.16 s [algebraic-graphs] OK: Contradictory constraints make the todo list impossible to schedule
  1823. 853.16 s [algebraic-graphs] OK: Introduce item priority to schedule the todo list
  1824. 853.16 s [algebraic-graphs] OK: Custom connect operators pull/repel arguments during scheduling
  1825. 853.16 s [algebraic-graphs]
  1826. 853.16 s [algebraic-graphs] ============ Example.Todo (Commandline) ============
  1827. 853.16 s [algebraic-graphs] OK: The pull connect operator maintains command line semantics
  1828. 853.16 s [algebraic-graphs] OK: Swapping flags are allowed by the commutative overlay opeartor
  1829. 853.16 s [algebraic-graphs] OK: The usual connect operator breaks semantics
  1830. 853.16 s [algebraic-graphs] OK: Transform command lines by adding optimisation flag
  1831. 853.16 s [algebraic-graphs]
  1832. 853.16 s [algebraic-graphs] ============ Typed ============
  1833. 853.16 s [algebraic-graphs]
  1834. 853.16 s [algebraic-graphs] ============ Typed.fromAdjacencyMap ============
  1835. 853.16 s [algebraic-graphs] OK: toGraphKL (fromAdjacencyMap (1 * 2 + 3 * 1)) == array (0,2) [(0,[1]), (1,[]), (2,[0])]
  1836. 853.16 s [algebraic-graphs] OK: toGraphKL (fromAdjacencyMap (1 * 2 + 2 * 1)) == array (0,1) [(0,[1]), (1,[0])]
  1837. 853.16 s [algebraic-graphs] OK: map (fromVertexKL h) (vertices $ toGraphKL h) == vertexList g
  1838. 853.16 s [algebraic-graphs] OK: map (\(x, y) -> (fromVertexKL h x, fromVertexKL h y)) (edges $ toGraphKL h) == edgeList g
  1839. 853.16 s [algebraic-graphs]
  1840. 853.16 s [algebraic-graphs] ============ Typed.fromAdjacencyIntMap ============
  1841. 853.16 s [algebraic-graphs] OK: toGraphKL (fromAdjacencyIntMap (1 * 2 + 3 * 1)) == array (0,2) [(0,[1]), (1,[]), (2,[0])]
  1842. 853.16 s [algebraic-graphs] OK: toGraphKL (fromAdjacencyIntMap (1 * 2 + 2 * 1)) == array (0,1) [(0,[1]), (1,[0])]
  1843. 853.16 s [algebraic-graphs] OK: map (fromVertexKL h) (vertices $ toGraphKL h) == IntSet.toAscList (vertexIntSet g)
  1844. 853.16 s [algebraic-graphs] OK: map (\(x, y) -> (fromVertexKL h x, fromVertexKL h y)) (edges $ toGraphKL h) == edgeList g
  1845. 853.16 s [algebraic-graphs]
  1846. 853.16 s [algebraic-graphs] ============ Typed.dfsForest ============
  1847. 853.16 s [algebraic-graphs] OK: forest (dfsForest % edge 1 1) == vertex 1
  1848. 853.16 s [algebraic-graphs] OK: forest (dfsForest % edge 1 2) == edge 1 2
  1849. 853.16 s [algebraic-graphs] OK: forest (dfsForest % edge 2 1) == vertices [1, 2]
  1850. 853.16 s [algebraic-graphs] OK: isSubgraphOf (forest $ dfsForest % x) x == True
  1851. 853.16 s [algebraic-graphs] OK: dfsForest % forest (dfsForest % x) == dfsForest % x
  1852. 853.16 s [algebraic-graphs] OK: dfsForest % vertices vs == map (\v -> Node v []) (nub $ sort vs)
  1853. 853.16 s [algebraic-graphs] OK: dfsForest % (3 * (1 + 4) * (1 + 5)) == <correct result>
  1854. 853.16 s [algebraic-graphs]
  1855. 853.16 s [algebraic-graphs] ============ Typed.dfsForestFrom ============
  1856. 853.16 s [algebraic-graphs] OK: forest $ (dfsForestFrom % edge 1 1) [1] == vertex 1
  1857. 853.16 s [algebraic-graphs] OK: forest $ (dfsForestFrom % edge 1 2) [0] == empty
  1858. 853.16 s [algebraic-graphs] OK: forest $ (dfsForestFrom % edge 1 2) [1] == edge 1 2
  1859. 853.16 s [algebraic-graphs] OK: forest $ (dfsForestFrom % edge 1 2) [2] == vertex 2
  1860. 853.16 s [algebraic-graphs] OK: forest $ (dfsForestFrom % edge 1 2) [2,1] == vertices [1,2]
  1861. 853.16 s [algebraic-graphs] OK: isSubgraphOf (forest $ dfsForestFrom % x $ vs) x == True
  1862. 853.16 s [algebraic-graphs] OK: dfsForestFrom % x $ vertexList x == dfsForest % x
  1863. 853.16 s [algebraic-graphs] OK: dfsForestFrom % vertices vs $ vs == map (\v -> Node v []) (nub vs)
  1864. 853.16 s [algebraic-graphs] OK: dfsForestFrom % x $ [] == []
  1865. 853.16 s [algebraic-graphs] OK: dfsForestFrom % (3 * (1 + 4) * (1 + 5)) $ [1,4] == <correct result>
  1866. 853.16 s [algebraic-graphs]
  1867. 853.16 s [algebraic-graphs] ============ Typed.dfs ============
  1868. 853.16 s [algebraic-graphs] OK: dfs % edge 1 1 $ [1] == [1]
  1869. 853.16 s [algebraic-graphs] OK: dfs % edge 1 2 $ [0] == []
  1870. 853.16 s [algebraic-graphs] OK: dfs % edge 1 2 $ [1] == [1,2]
  1871. 853.16 s [algebraic-graphs] OK: dfs % edge 1 2 $ [2] == [2]
  1872. 853.16 s [algebraic-graphs] OK: dfs % edge 1 2 $ [1,2] == [1,2]
  1873. 853.16 s [algebraic-graphs] OK: dfs % edge 1 2 $ [2,1] == [2,1]
  1874. 853.16 s [algebraic-graphs] OK: dfs % x $ [] == []
  1875. 853.16 s [algebraic-graphs]
  1876. 853.16 s [algebraic-graphs] OK: dfs % (3 * (1 + 4) * (1 + 5)) $ [1,4] == [1,5,4]
  1877. 853.16 s [algebraic-graphs] OK: and [ hasVertex v x | v <- dfs % x $ vs ] == True
  1878. 853.16 s [algebraic-graphs]
  1879. 853.16 s [algebraic-graphs] ============ Typed.topSort ============
  1880. 853.16 s [algebraic-graphs] OK: topSort % (1 * 2 + 3 * 1) == [3,1,2]
  1881. 853.16 s [algebraic-graphs] OK: topSort % (1 * 2 + 2 * 1) == [1,2]
  1882. 853.16 s [algebraic-graphs]
  1883. 853.16 s [algebraic-graphs] ============ Graph.Undirected ============
  1884. 853.16 s [algebraic-graphs] OK: Axioms of undirected graphs
  1885. 853.16 s [algebraic-graphs]
  1886. 853.16 s [algebraic-graphs] ============ Graph.Undirected.Show ============
  1887. 853.16 s [algebraic-graphs] OK: show (empty ) == "empty"
  1888. 853.16 s [algebraic-graphs] OK: show (1 ) == "vertex 1"
  1889. 853.16 s [algebraic-graphs] OK: show (1 + 2 ) == "vertices [1,2]"
  1890. 853.16 s [algebraic-graphs] OK: show (1 * 2 ) == "edge 1 2"
  1891. 853.16 s [algebraic-graphs] OK: show (1 * 2 * 3) == "edges [(1,2),(1,3),(2,3)]"
  1892. 853.16 s [algebraic-graphs] OK: show (1 * 2 + 3) == "overlay (vertex 3) (edge 1 2)"
  1893. 853.16 s [algebraic-graphs]
  1894. 853.16 s [algebraic-graphs] OK: show (vertex (-1) ) == "vertex (-1)"
  1895. 853.16 s [algebraic-graphs] OK: show (vertex (-1) + vertex (-2) ) == "vertices [-2,-1]"
  1896. 853.16 s [algebraic-graphs] OK: show (vertex (-2) * vertex (-1) ) == "edge (-2) (-1)"
  1897. 853.16 s [algebraic-graphs] OK: show (vertex (-3) * vertex (-2) * vertex (-1)) == "edges [(-3,-2),(-3,-1),(-2,-1)]"
  1898. 853.16 s [algebraic-graphs] OK: show (vertex (-3) * vertex (-2) + vertex (-1)) == "overlay (vertex (-1)) (edge (-3) (-2))"
  1899. 853.16 s [algebraic-graphs]
  1900. 853.16 s [algebraic-graphs] OK: show (2 * 1 ) == "edge 1 2"
  1901. 853.16 s [algebraic-graphs] OK: show (1 * 2 * 1) == "edges [(1,1),(1,2)]"
  1902. 853.16 s [algebraic-graphs] OK: show (3 * 2 * 1) == "edges [(1,2),(1,3),(2,3)]"
  1903. 853.16 s [algebraic-graphs]
  1904. 853.16 s [algebraic-graphs] ============ Graph.Undirected.toUndirected ============
  1905. 853.16 s [algebraic-graphs] OK: toUndirected (edge 1 2) == edge 1 2
  1906. 853.16 s [algebraic-graphs] OK: toUndirected . fromUndirected == id
  1907. 853.16 s [algebraic-graphs] OK: vertexCount . toUndirected == vertexCount
  1908. 853.16 s [algebraic-graphs] OK: (*2) . edgeCount . toUndirected >= edgeCount
  1909. 853.16 s [algebraic-graphs]
  1910. 853.16 s [algebraic-graphs] ============ Graph.Undirected.fromUndirected ============
  1911. 853.16 s [algebraic-graphs] OK: fromUndirected (edge 1 2) == edges [(1,2),(2,1)]
  1912. 853.16 s [algebraic-graphs] OK: toUndirected . fromUndirected == id
  1913. 853.16 s [algebraic-graphs] OK: vertexCount . fromUndirected == vertexCount
  1914. 853.16 s [algebraic-graphs] OK: edgeCount . fromUndirected <= (*2) . edgeCount
  1915. 853.16 s [algebraic-graphs]
  1916. 853.16 s [algebraic-graphs] ============ Graph.Undirected.complement ================
  1917. 853.16 s [algebraic-graphs] OK: complement empty == empty
  1918. 853.16 s [algebraic-graphs] OK: complement (vertex x) == vertex x
  1919. 853.16 s [algebraic-graphs] OK: complement (edge 1 1) == edge 1 1
  1920. 853.16 s [algebraic-graphs] OK: complement (edge 1 2) == vertices [1, 2]
  1921. 853.16 s [algebraic-graphs] OK: complement (star 1 [2, 3]) == overlay (vertex 1) (edge 2 3)
  1922. 853.16 s [algebraic-graphs] OK: complement . complement == id
  1923. 853.16 s [algebraic-graphs]
  1924. 853.16 s [algebraic-graphs] ============ Graph.Undirected.Ord ============
  1925. 853.16 s [algebraic-graphs] OK: vertex 1 < vertex 2
  1926. 853.16 s [algebraic-graphs] OK: vertex 3 < edge 1 2
  1927. 853.16 s [algebraic-graphs] OK: vertex 1 < edge 1 1
  1928. 853.16 s [algebraic-graphs] OK: edge 1 1 < edge 1 2
  1929. 853.16 s [algebraic-graphs] OK: edge 1 2 < edge 1 1 + edge 2 2
  1930. 853.16 s [algebraic-graphs] OK: edge 2 1 < edge 1 3
  1931. 853.16 s [algebraic-graphs] OK: edge 1 2 == edge 2 1
  1932. 853.16 s [algebraic-graphs] OK: x <= x + y
  1933. 853.16 s [algebraic-graphs] OK: x + y <= x * y
  1934. 853.16 s [algebraic-graphs]
  1935. 853.16 s [algebraic-graphs] ============ Graph.Undirected.empty ============
  1936. 853.16 s [algebraic-graphs] OK: isEmpty empty == True
  1937. 853.16 s [algebraic-graphs] OK: hasVertex x empty == False
  1938. 853.16 s [algebraic-graphs] OK: vertexCount empty == 0
  1939. 853.16 s [algebraic-graphs] OK: edgeCount empty == 0
  1940. 853.16 s [algebraic-graphs]
  1941. 853.16 s [algebraic-graphs] ============ Graph.Undirected.vertex ============
  1942. 853.16 s [algebraic-graphs] OK: isEmpty (vertex x) == False
  1943. 853.16 s [algebraic-graphs] OK: hasVertex x (vertex y) == (x == y)
  1944. 853.16 s [algebraic-graphs] OK: vertexCount (vertex x) == 1
  1945. 853.16 s [algebraic-graphs] OK: edgeCount (vertex x) == 0
  1946. 853.16 s [algebraic-graphs]
  1947. 853.16 s [algebraic-graphs] ============ Graph.Undirected.edge ============
  1948. 853.16 s [algebraic-graphs] OK: edge x y == connect (vertex x) (vertex y)
  1949. 853.16 s [algebraic-graphs] OK: edge x y == edge y x
  1950. 860.23 s [algebraic-graphs] OK: edge x y == edges [(x,y), (y,x)]
  1951. 860.23 s [algebraic-graphs] OK: hasEdge x y (edge x y) == True
  1952. 860.23 s [algebraic-graphs] OK: edgeCount (edge x y) == 1
  1953. 860.27 s [algebraic-graphs] OK: vertexCount (edge 1 1) == 1
  1954. 860.27 s [algebraic-graphs] OK: vertexCount (edge 1 2) == 2
  1955. 860.27 s [algebraic-graphs]
  1956. 860.27 s [algebraic-graphs] ============ Graph.Undirected.overlay ============
  1957. 860.27 s [algebraic-graphs] OK: isEmpty (overlay x y) == isEmpty x && isEmpty y
  1958. 860.27 s [algebraic-graphs] OK: hasVertex z (overlay x y) == hasVertex z x || hasVertex z y
  1959. 860.27 s [algebraic-graphs] OK: vertexCount (overlay x y) >= vertexCount x
  1960. 860.27 s [algebraic-graphs] OK: vertexCount (overlay x y) <= vertexCount x + vertexCount y
  1961. 860.27 s [algebraic-graphs] OK: edgeCount (overlay x y) >= edgeCount x
  1962. 860.27 s [algebraic-graphs] OK: edgeCount (overlay x y) <= edgeCount x + edgeCount y
  1963. 860.27 s [algebraic-graphs] OK: vertexCount (overlay 1 2) == 2
  1964. 860.27 s [algebraic-graphs] OK: edgeCount (overlay 1 2) == 0
  1965. 860.27 s [algebraic-graphs]
  1966. 860.27 s [algebraic-graphs] ============ Graph.Undirected.connect ============
  1967. 860.27 s [algebraic-graphs] OK: connect x y == connect y x
  1968. 860.27 s [algebraic-graphs] OK: isEmpty (connect x y) == isEmpty x && isEmpty y
  1969. 860.27 s [algebraic-graphs] OK: hasVertex z (connect x y) == hasVertex z x || hasVertex z y
  1970. 860.27 s [algebraic-graphs] OK: vertexCount (connect x y) >= vertexCount x
  1971. 860.27 s [algebraic-graphs] OK: vertexCount (connect x y) <= vertexCount x + vertexCount y
  1972. 860.27 s [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount x
  1973. 860.27 s [algebraic-graphs] OK: edgeCount (connect x y) >= edgeCount y
  1974. 860.27 s [algebraic-graphs] OK: edgeCount (connect x y) >= vertexCount x * vertexCount y `div` 2
  1975. 860.27 s [algebraic-graphs] OK: edgeCount (connect x y) <= vertexCount x * vertexCount y + edgeCount x + edgeCount y
  1976. 860.27 s [algebraic-graphs] OK: vertexCount (connect 1 2) == 2
  1977. 860.27 s [algebraic-graphs] OK: edgeCount (connect 1 2) == 1
  1978. 860.27 s [algebraic-graphs]
  1979. 860.27 s [algebraic-graphs] ============ Graph.Undirected.vertices ============
  1980. 860.27 s [algebraic-graphs] OK: vertices [] == empty
  1981. 860.27 s [algebraic-graphs] OK: vertices [x] == vertex x
  1982. 860.27 s [algebraic-graphs] OK: vertices == overlays . map vertex
  1983. 860.27 s [algebraic-graphs] OK: hasVertex x . vertices == elem x
  1984. 860.27 s [algebraic-graphs] OK: vertexCount . vertices == length . nub
  1985. 860.27 s [algebraic-graphs] OK: vertexSet . vertices == Set.fromList
  1986. 860.27 s [algebraic-graphs]
  1987. 860.27 s [algebraic-graphs] ============ Graph.Undirected.edges ============
  1988. 860.27 s [algebraic-graphs] OK: edges [] == empty
  1989. 860.27 s [algebraic-graphs] OK: edges [(x,y)] == edge x y
  1990. 860.27 s [algebraic-graphs] OK: edges [(x,y), (y,x)] == edge x y
  1991. 860.27 s [algebraic-graphs]
  1992. 860.27 s [algebraic-graphs] ============ Graph.Undirected.overlays ============
  1993. 860.27 s [algebraic-graphs] OK: overlays [] == empty
  1994. 860.27 s [algebraic-graphs] OK: overlays [x] == x
  1995. 860.27 s [algebraic-graphs] OK: overlays [x,y] == overlay x y
  1996. 860.27 s [algebraic-graphs] OK: overlays == foldr overlay empty
  1997. 860.27 s [algebraic-graphs] OK: isEmpty . overlays == all isEmpty
  1998. 860.27 s [algebraic-graphs]
  1999. 860.27 s [algebraic-graphs] ============ Graph.Undirected.connects ============
  2000. 860.27 s [algebraic-graphs] OK: connects [] == empty
  2001. 860.27 s [algebraic-graphs] OK: connects [x] == x
  2002. 860.27 s [algebraic-graphs] OK: connects [x,y] == connect x y
  2003. 860.27 s [algebraic-graphs] OK: connects == foldr connect empty
  2004. 860.27 s [algebraic-graphs] OK: isEmpty . connects == all isEmpty
  2005. 860.27 s [algebraic-graphs] OK: connects == connects . reverse
  2006. 860.27 s [algebraic-graphs]
  2007. 860.27 s [algebraic-graphs] ============ Graph.Undirected.isSubgraphOf ============
  2008. 860.27 s [algebraic-graphs] OK: isSubgraphOf empty x == True
  2009. 860.27 s [algebraic-graphs] OK: isSubgraphOf (vertex x) empty == False
  2010. 860.27 s [algebraic-graphs] OK: isSubgraphOf x (overlay x y) == True
  2011. 860.27 s [algebraic-graphs] OK: isSubgraphOf (overlay x y) (connect x y) == True
  2012. 860.27 s [algebraic-graphs] OK: isSubgraphOf (path xs) (circuit xs) == True
  2013. 860.27 s [algebraic-graphs] OK: isSubgraphOf x y ==> x <= y
  2014. 860.27 s [algebraic-graphs] OK: isSubgraphOf (edge x y) (edge y x) == True
  2015. 860.27 s [algebraic-graphs]
  2016. 860.27 s [algebraic-graphs] ============ Graph.Undirected.path ============
  2017. 860.27 s [algebraic-graphs] OK: path [] == empty
  2018. 860.27 s [algebraic-graphs] OK: path [x] == vertex x
  2019. 860.27 s [algebraic-graphs] OK: path [x,y] == edge x y
  2020. 860.27 s [algebraic-graphs] OK: path == path . reverse
  2021. 860.27 s [algebraic-graphs]
  2022. 860.27 s [algebraic-graphs] ============ Graph.Undirected.circuit ============
  2023. 860.27 s [algebraic-graphs] OK: circuit [] == empty
  2024. 860.27 s [algebraic-graphs] OK: circuit [x] == edge x x
  2025. 860.27 s [algebraic-graphs] OK: circuit [x,y] == edges [(x,y), (y,x)]
  2026. 860.27 s [algebraic-graphs] OK: circuit == circuit . reverse
  2027. 860.27 s [algebraic-graphs]
  2028. 860.27 s [algebraic-graphs] ============ Graph.Undirected.clique ============
  2029. 860.27 s [algebraic-graphs] OK: clique [] == empty
  2030. 860.27 s [algebraic-graphs] OK: clique [x] == vertex x
  2031. 860.27 s [algebraic-graphs] OK: clique [x,y] == edge x y
  2032. 860.27 s [algebraic-graphs] OK: clique [x,y,z] == edges [(x,y), (x,z), (y,z)]
  2033. 860.27 s [algebraic-graphs] OK: clique (xs ++ ys) == connect (clique xs) (clique ys)
  2034. 860.27 s [algebraic-graphs] OK: clique == clique . reverse
  2035. 860.27 s [algebraic-graphs]
  2036. 860.27 s [algebraic-graphs] ============ Graph.Undirected.biclique ============
  2037. 860.27 s [algebraic-graphs] OK: biclique [] [] == empty
  2038. 860.27 s [algebraic-graphs] OK: biclique [x] [] == vertex x
  2039. 860.27 s [algebraic-graphs] OK: biclique [] [y] == vertex y
  2040. 860.27 s [algebraic-graphs] OK: biclique [x1,x2] [y1,y2] == edges [(x1,y1), (x1,y2), (x2,y1), (x2,y2)]
  2041. 860.27 s [algebraic-graphs] OK: biclique xs ys == connect (vertices xs) (vertices ys)
  2042. 860.27 s [algebraic-graphs]
  2043. 860.27 s [algebraic-graphs] ============ Graph.Undirected.star ============
  2044. 860.27 s [algebraic-graphs] OK: star x [] == vertex x
  2045. 860.27 s [algebraic-graphs] OK: star x [y] == edge x y
  2046. 860.27 s [algebraic-graphs] OK: star x [y,z] == edges [(x,y), (x,z)]
  2047. 860.27 s [algebraic-graphs] OK: star x ys == connect (vertex x) (vertices ys)
  2048. 860.27 s [algebraic-graphs]
  2049. 860.27 s [algebraic-graphs] ============ Graph.Undirected.stars ============
  2050. 860.27 s [algebraic-graphs] OK: stars [] == empty
  2051. 860.27 s [algebraic-graphs] OK: stars [(x, [])] == vertex x
  2052. 860.27 s [algebraic-graphs] OK: stars [(x, [y])] == edge x y
  2053. 860.27 s [algebraic-graphs] OK: stars [(x, ys)] == star x ys
  2054. 860.27 s [algebraic-graphs] OK: stars == overlays . map (uncurry star)
  2055. 860.27 s [algebraic-graphs] OK: stars . adjacencyList == id
  2056. 860.27 s [algebraic-graphs] OK: overlay (stars xs) (stars ys) == stars (xs ++ ys)
  2057. 860.27 s [algebraic-graphs]
  2058. 860.27 s [algebraic-graphs] ============ Graph.Undirected.tree ============
  2059. 860.27 s [algebraic-graphs] OK: tree (Node x []) == vertex x
  2060. 860.27 s [algebraic-graphs] OK: tree (Node x [Node y [Node z []]]) == path [x,y,z]
  2061. 860.27 s [algebraic-graphs] OK: tree (Node x [Node y [], Node z []]) == star x [y,z]
  2062. 860.27 s [algebraic-graphs] OK: tree (Node 1 [Node 2 [], Node 3 [Node 4 [], Node 5 []]]) == edges [(1,2), (1,3), (3,4), (3,5)]
  2063. 860.27 s [algebraic-graphs]
  2064. 860.27 s [algebraic-graphs] ============ Graph.Undirected.forest ============
  2065. 860.27 s [algebraic-graphs] OK: forest [] == empty
  2066. 860.27 s [algebraic-graphs] OK: forest [x] == tree x
  2067. 860.27 s [algebraic-graphs] OK: forest [Node 1 [Node 2 [], Node 3 []], Node 4 [Node 5 []]] == edges [(1,2), (1,3), (4,5)]
  2068. 860.27 s [algebraic-graphs] OK: forest == overlays . map tree
  2069. 860.27 s [algebraic-graphs]
  2070. 860.27 s [algebraic-graphs] ============ Graph.Undirected.removeVertex ============
  2071. 860.27 s [algebraic-graphs] OK: removeVertex x (vertex x) == empty
  2072. 860.27 s [algebraic-graphs] OK: removeVertex 1 (vertex 2) == vertex 2
  2073. 860.27 s [algebraic-graphs] OK: removeVertex x (edge x x) == empty
  2074. 860.27 s [algebraic-graphs] OK: removeVertex 1 (edge 1 2) == vertex 2
  2075. 860.27 s [algebraic-graphs] OK: removeVertex x . removeVertex x == removeVertex x
  2076. 860.27 s [algebraic-graphs]
  2077. 860.27 s [algebraic-graphs] ============ Graph.Undirected.removeEdge ============
  2078. 860.27 s [algebraic-graphs] OK: removeEdge x y (edge x y) == vertices [x,y]
  2079. 860.27 s [algebraic-graphs] OK: removeEdge x y . removeEdge x y == removeEdge x y
  2080. 860.27 s [algebraic-graphs] OK: removeEdge x y . removeVertex x == removeVertex x
  2081. 860.27 s [algebraic-graphs] OK: removeEdge 1 1 (1 * 1 * 2 * 2) == 1 * 2 * 2
  2082. 860.27 s [algebraic-graphs] OK: removeEdge 1 2 (1 * 1 * 2 * 2) == 1 * 1 + 2 * 2
  2083. 860.27 s [algebraic-graphs] OK: removeEdge x y == removeEdge y x
  2084. 860.27 s [algebraic-graphs]
  2085. 860.27 s [algebraic-graphs] ============ Graph.Undirected.replaceVertex ============
  2086. 860.27 s [algebraic-graphs] OK: replaceVertex x x == id
  2087. 860.27 s [algebraic-graphs] OK: replaceVertex x y (vertex x) == vertex y
  2088. 860.27 s [algebraic-graphs] OK: replaceVertex x y == mergeVertices (== x) y
  2089. 860.27 s [algebraic-graphs]
  2090. 860.27 s [algebraic-graphs] ============ Graph.Undirected.mergeVertices ============
  2091. 860.27 s [algebraic-graphs] OK: mergeVertices (const False) x == id
  2092. 860.28 s [algebraic-graphs] OK: mergeVertices (== x) y == replaceVertex x y
  2093. 860.28 s [algebraic-graphs] OK: mergeVertices even 1 (0 * 2) == 1 * 1
  2094. 860.28 s [algebraic-graphs] OK: mergeVertices odd 1 (3 + 4 * 5) == 4 * 1
  2095. 860.28 s [algebraic-graphs]
  2096. 860.28 s [algebraic-graphs] ============ Graph.Undirected.gmap ============
  2097. 860.28 s [algebraic-graphs] OK: gmap f empty == empty
  2098. 860.28 s [algebraic-graphs] OK: gmap f (vertex x) == vertex (f x)
  2099. 860.28 s [algebraic-graphs] OK: gmap f (edge x y) == edge (f x) (f y)
  2100. 860.28 s [algebraic-graphs] OK: gmap id == id
  2101. 860.28 s [algebraic-graphs] OK: gmap f . gmap g == gmap (f . g)
  2102. 860.28 s [algebraic-graphs]
  2103. 860.28 s [algebraic-graphs] ============ Graph.Undirected.induce ============
  2104. 860.28 s [algebraic-graphs] OK: induce (const True ) x == x
  2105. 860.28 s [algebraic-graphs] OK: induce (const False) x == empty
  2106. 860.28 s [algebraic-graphs] OK: induce (/= x) == removeVertex x
  2107. 860.28 s [algebraic-graphs] OK: induce p . induce q == induce (\x -> p x && q x)
  2108. 860.28 s [algebraic-graphs] OK: isSubgraphOf (induce p x) x == True
  2109. 860.28 s [algebraic-graphs]
  2110. 860.28 s [algebraic-graphs] ============ Graph.Undirected.induceJust ============
  2111. 860.28 s [algebraic-graphs] OK: induceJust (vertex Nothing) == empty
  2112. 860.28 s [algebraic-graphs] OK: induceJust (edge (Just x) Nothing) == vertex x
  2113. 860.28 s [algebraic-graphs] OK: induceJust . gmap Just == id
  2114. 860.28 s [algebraic-graphs] OK: induceJust . gmap (\x -> if p x then Just x else Nothing) == induce p
  2115. 860.28 s [algebraic-graphs] Test suite main: PASS
  2116. 860.28 s [algebraic-graphs] Test suite logged to: dist/test/algebraic-graphs-0.7-main.log
  2117. 860.28 s [algebraic-graphs] 1 of 1 test suites (1 of 1 test cases) passed.
  2118. 860.28 s [algebraic-graphs] checkPhase completed in 1 minutes 34 seconds
  2119. 860.28 s [algebraic-graphs] Phase: haddockPhase
  2120. 860.40 s [algebraic-graphs] Preprocessing library for algebraic-graphs-0.7..
  2121. 860.41 s [algebraic-graphs] Running Haddock on library for algebraic-graphs-0.7..
  2122. 860.45 s [algebraic-graphs] Warning: --source-* options are ignored when --hyperlinked-source is enabled.
  2123. 860.72 s [algebraic-graphs] 100% ( 58 / 58) in 'Algebra.Graph.AdjacencyMap'
  2124. 860.80 s [algebraic-graphs] 100% ( 56 / 56) in 'Algebra.Graph.AdjacencyIntMap'
  2125. 860.84 s [algebraic-graphs] Warning: 'nub' is out of scope.
  2126. 860.84 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2127. 860.84 s [algebraic-graphs] Warning: 'sort' is out of scope.
  2128. 860.84 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2129. 860.84 s [algebraic-graphs] 93% ( 14 / 15) in 'Algebra.Graph.AdjacencyIntMap.Algorithm'
  2130. 860.84 s [algebraic-graphs] Missing documentation for:
  2131. 860.84 s [algebraic-graphs] Cycle (src/Algebra/Graph/AdjacencyIntMap/Algorithm.hs:227)
  2132. 860.93 s [algebraic-graphs] Warning: 'IsList' is out of scope.
  2133. 860.93 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2134. 860.93 s [algebraic-graphs] 100% ( 19 / 19) in 'Algebra.Graph.Internal'
  2135. 861.01 s [algebraic-graphs] 100% ( 61 / 61) in 'Algebra.Graph'
  2136. 861.09 s [algebraic-graphs] Warning: 'mplus' is out of scope.
  2137. 861.09 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2138. 861.09 s [algebraic-graphs] Warning: 'vertexCount' is out of scope.
  2139. 861.09 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2140. 861.09 s [algebraic-graphs] Warning: 'hasVertex' is out of scope.
  2141. 861.09 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2142. 861.09 s [algebraic-graphs] Warning: 'vertexSet' is out of scope.
  2143. 861.09 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2144. 861.09 s [algebraic-graphs] Warning: 'isEmpty' is out of scope.
  2145. 861.09 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2146. 861.09 s [algebraic-graphs] Warning: 'edgeList' is out of scope.
  2147. 861.09 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2148. 861.09 s [algebraic-graphs] Warning: 'adjacencyList' is out of scope.
  2149. 861.09 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2150. 861.09 s [algebraic-graphs] Warning: 'box' is out of scope.
  2151. 861.09 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2152. 861.09 s [algebraic-graphs] Warning: 'edgeCount' is out of scope.
  2153. 861.09 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2154. 861.09 s [algebraic-graphs] 100% ( 42 / 42) in 'Algebra.Graph.HigherKinded.Class'
  2155. 861.21 s [algebraic-graphs] Warning: 'nub' is out of scope.
  2156. 861.21 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2157. 861.21 s [algebraic-graphs] 100% ( 63 / 63) in 'Algebra.Graph.Bipartite.AdjacencyMap'
  2158. 861.28 s [algebraic-graphs] Warning: 'isRight' is out of scope.
  2159. 861.28 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2160. 861.28 s [algebraic-graphs] 100% ( 25 / 25) in 'Algebra.Graph.Bipartite.AdjacencyMap.Algorithm'
  2161. 861.38 s [algebraic-graphs] 100% ( 37 / 37) in 'Algebra.Graph.Label'
  2162. 861.53 s [algebraic-graphs] Warning: 'isEmpty' is out of scope.
  2163. 861.53 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2164. 861.53 s [algebraic-graphs] Warning: 'empty' is out of scope.
  2165. 861.53 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2166. 861.53 s [algebraic-graphs] Warning: 'vertexList' is out of scope.
  2167. 861.53 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2168. 861.53 s [algebraic-graphs] Warning: 'edges' is out of scope.
  2169. 861.53 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2170. 861.53 s [algebraic-graphs] Warning: 'adjacencyList' is out of scope.
  2171. 861.53 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2172. 861.53 s [algebraic-graphs] Warning: 'stars' is out of scope.
  2173. 861.53 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2174. 861.53 s [algebraic-graphs] 100% ( 51 / 51) in 'Algebra.Graph.NonEmpty.AdjacencyMap'
  2175. 861.59 s [algebraic-graphs] Warning: 'nub' is out of scope.
  2176. 861.59 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2177. 861.59 s [algebraic-graphs] Warning: 'sort' is out of scope.
  2178. 861.59 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2179. 861.59 s [algebraic-graphs] 93% ( 15 / 16) in 'Algebra.Graph.AdjacencyMap.Algorithm'
  2180. 861.59 s [algebraic-graphs] Missing documentation for:
  2181. 861.59 s [algebraic-graphs] Cycle (src/Algebra/Graph/AdjacencyMap/Algorithm.hs:228)
  2182. 861.64 s [algebraic-graphs] 100% ( 44 / 44) in 'Algebra.Graph.Acyclic.AdjacencyMap'
  2183. 861.68 s [algebraic-graphs] 100% ( 8 / 8) in 'Algebra.Graph.ToGraph'
  2184. 861.71 s [algebraic-graphs]
  2185. 861.71 s [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:171:32: warning: [-Wtype-equality-requires-operators]
  2186. 861.71 s [algebraic-graphs] The use of ‘~’ without TypeOperators
  2187. 861.71 s [algebraic-graphs] will become an error in a future GHC release.
  2188. 861.71 s [algebraic-graphs] Suggested fix: Perhaps you intended to use TypeOperators
  2189. 861.71 s [algebraic-graphs] |
  2190. 861.71 s [algebraic-graphs] 171 | vertexIntSet :: ToVertex t ~ Int => t -> IntSet
  2191. 861.71 s [algebraic-graphs] | ^
  2192. 861.71 s [algebraic-graphs]
  2193. 861.71 s [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:197:29: warning: [-Wtype-equality-requires-operators]
  2194. 861.71 s [algebraic-graphs] The use of ‘~’ without TypeOperators
  2195. 861.71 s [algebraic-graphs] will become an error in a future GHC release.
  2196. 861.71 s [algebraic-graphs] Suggested fix: Perhaps you intended to use TypeOperators
  2197. 861.71 s [algebraic-graphs] |
  2198. 861.71 s [algebraic-graphs] 197 | preIntSet :: ToVertex t ~ Int => Int -> t -> IntSet
  2199. 861.71 s [algebraic-graphs] | ^
  2200. 861.71 s [algebraic-graphs]
  2201. 861.71 s [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:215:30: warning: [-Wtype-equality-requires-operators]
  2202. 861.71 s [algebraic-graphs] The use of ‘~’ without TypeOperators
  2203. 861.71 s [algebraic-graphs] will become an error in a future GHC release.
  2204. 861.71 s [algebraic-graphs] Suggested fix: Perhaps you intended to use TypeOperators
  2205. 861.71 s [algebraic-graphs] |
  2206. 861.71 s [algebraic-graphs] 215 | postIntSet :: ToVertex t ~ Int => Int -> t -> IntSet
  2207. 861.71 s [algebraic-graphs] | ^
  2208. 861.71 s [algebraic-graphs]
  2209. 861.71 s [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:303:37: warning: [-Wtype-equality-requires-operators]
  2210. 861.71 s [algebraic-graphs] The use of ‘~’ without TypeOperators
  2211. 861.71 s [algebraic-graphs] will become an error in a future GHC release.
  2212. 861.71 s [algebraic-graphs] Suggested fix: Perhaps you intended to use TypeOperators
  2213. 861.71 s [algebraic-graphs] |
  2214. 861.71 s [algebraic-graphs] 303 | toAdjacencyIntMap :: ToVertex t ~ Int => t -> AIM.AdjacencyIntMap
  2215. 861.71 s [algebraic-graphs] | ^
  2216. 861.71 s [algebraic-graphs]
  2217. 861.71 s [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:312:46: warning: [-Wtype-equality-requires-operators]
  2218. 861.71 s [algebraic-graphs] The use of ‘~’ without TypeOperators
  2219. 861.71 s [algebraic-graphs] will become an error in a future GHC release.
  2220. 861.71 s [algebraic-graphs] Suggested fix: Perhaps you intended to use TypeOperators
  2221. 861.71 s [algebraic-graphs] |
  2222. 861.71 s [algebraic-graphs] 312 | toAdjacencyIntMapTranspose :: ToVertex t ~ Int => t -> AIM.AdjacencyIntMap
  2223. 861.71 s [algebraic-graphs] | ^
  2224. 861.71 s [algebraic-graphs]
  2225. 861.72 s [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:452:43: warning: [-Wtype-equality-requires-operators]
  2226. 861.72 s [algebraic-graphs] The use of ‘~’ without TypeOperators
  2227. 861.72 s [algebraic-graphs] will become an error in a future GHC release.
  2228. 861.72 s [algebraic-graphs] Suggested fix: Perhaps you intended to use TypeOperators
  2229. 861.72 s [algebraic-graphs] |
  2230. 861.72 s [algebraic-graphs] 452 | adjacencyIntMap :: (ToGraph t, ToVertex t ~ Int) => t -> IntMap IntSet
  2231. 861.72 s [algebraic-graphs] | ^
  2232. 861.72 s [algebraic-graphs]
  2233. 861.72 s [algebraic-graphs] src/Algebra/Graph/ToGraph.hs:471:52: warning: [-Wtype-equality-requires-operators]
  2234. 861.72 s [algebraic-graphs] The use of ‘~’ without TypeOperators
  2235. 861.72 s [algebraic-graphs] will become an error in a future GHC release.
  2236. 861.72 s [algebraic-graphs] Suggested fix: Perhaps you intended to use TypeOperators
  2237. 861.72 s [algebraic-graphs] |
  2238. 861.72 s [algebraic-graphs] 471 | adjacencyIntMapTranspose :: (ToGraph t, ToVertex t ~ Int) => t -> IntMap IntSet
  2239. 861.72 s [algebraic-graphs] | ^
  2240. 861.83 s [algebraic-graphs] Warning: 'AdjacencyMap' is out of scope.
  2241. 861.83 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2242. 861.83 s [algebraic-graphs] 100% ( 56 / 56) in 'Algebra.Graph.Relation'
  2243. 861.89 s [algebraic-graphs] 100% ( 48 / 48) in 'Algebra.Graph.Relation.Symmetric'
  2244. 861.96 s [algebraic-graphs] Warning: 'vertexList' is out of scope.
  2245. 861.96 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2246. 861.96 s [algebraic-graphs] 100% ( 53 / 53) in 'Algebra.Graph.NonEmpty'
  2247. 862.04 s [algebraic-graphs] 100% ( 49 / 49) in 'Algebra.Graph.Labelled.AdjacencyMap'
  2248. 862.21 s [algebraic-graphs] 100% ( 49 / 49) in 'Algebra.Graph.Labelled'
  2249. 862.24 s [algebraic-graphs]
  2250. 862.24 s [algebraic-graphs] src/Algebra/Graph/Labelled.hs:74:10: warning: [-Wredundant-constraints]
  2251. 862.24 s [algebraic-graphs] • Redundant constraint: Eq e
  2252. 862.24 s [algebraic-graphs] • In the instance declaration for ‘Ord (Graph e a)’
  2253. 862.24 s [algebraic-graphs] |
  2254. 862.24 s [algebraic-graphs] 74 | instance (Eq e, Monoid e, Ord a, Ord e) => Ord (Graph e a) where
  2255. 862.24 s [algebraic-graphs] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  2256. 862.25 s [algebraic-graphs] 100% ( 6 / 6) in 'Algebra.Graph.Labelled.Example.Network'
  2257. 862.26 s [algebraic-graphs] 100% ( 5 / 5) in 'Algebra.Graph.Labelled.Example.Automaton'
  2258. 862.28 s [algebraic-graphs] 100% ( 14 / 14) in 'Algebra.Graph.Export'
  2259. 862.28 s [algebraic-graphs]
  2260. 862.28 s [algebraic-graphs] src/Algebra/Graph/Export.hs:185:41: warning: [-Wtype-equality-requires-operators]
  2261. 862.28 s [algebraic-graphs] The use of ‘~’ without TypeOperators
  2262. 862.28 s [algebraic-graphs] will become an error in a future GHC release.
  2263. 862.28 s [algebraic-graphs] Suggested fix: Perhaps you intended to use TypeOperators
  2264. 862.28 s [algebraic-graphs] |
  2265. 862.28 s [algebraic-graphs] 185 | export :: (Ord a, ToGraph g, ToVertex g ~ a) => (a -> Doc s) -> (a -> a -> Doc s) -> g -> Doc s
  2266. 862.28 s [algebraic-graphs] | ^
  2267. 862.29 s [algebraic-graphs] Warning: 'Graph' is out of scope.
  2268. 862.29 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2269. 862.29 s [algebraic-graphs] 100% ( 11 / 11) in 'Algebra.Graph.Export.Dot'
  2270. 862.30 s [algebraic-graphs]
  2271. 862.30 s [algebraic-graphs] src/Algebra/Graph/Export/Dot.hs:121:63: warning: [-Wtype-equality-requires-operators]
  2272. 862.30 s [algebraic-graphs] The use of ‘~’ without TypeOperators
  2273. 862.30 s [algebraic-graphs] will become an error in a future GHC release.
  2274. 862.30 s [algebraic-graphs] Suggested fix: Perhaps you intended to use TypeOperators
  2275. 862.30 s [algebraic-graphs] |
  2276. 862.30 s [algebraic-graphs] 121 | export :: (IsString s, Monoid s, Ord a, ToGraph g, ToVertex g ~ a) => Style a s -> g -> s
  2277. 862.30 s [algebraic-graphs] | ^
  2278. 862.30 s [algebraic-graphs]
  2279. 862.30 s [algebraic-graphs] src/Algebra/Graph/Export/Dot.hs:165:78: warning: [-Wtype-equality-requires-operators]
  2280. 862.30 s [algebraic-graphs] The use of ‘~’ without TypeOperators
  2281. 862.30 s [algebraic-graphs] will become an error in a future GHC release.
  2282. 862.30 s [algebraic-graphs] Suggested fix: Perhaps you intended to use TypeOperators
  2283. 862.30 s [algebraic-graphs] |
  2284. 862.30 s [algebraic-graphs] 165 | exportAsIs :: (IsString s, Monoid s, Ord (ToVertex g), ToGraph g, ToVertex g ~ s) => g -> s
  2285. 862.30 s [algebraic-graphs] | ^
  2286. 862.34 s [algebraic-graphs] 100% ( 50 / 50) in 'Algebra.Graph.Undirected'
  2287. 862.38 s [algebraic-graphs] 100% ( 27 / 27) in 'Algebra.Graph.Class'
  2288. 862.40 s [algebraic-graphs] Warning: 'Transitive' is out of scope.
  2289. 862.40 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2290. 862.40 s [algebraic-graphs] 100% ( 5 / 5) in 'Algebra.Graph.Relation.Transitive'
  2291. 862.41 s [algebraic-graphs] Warning: 'Reflexive' is out of scope.
  2292. 862.41 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2293. 862.41 s [algebraic-graphs] 100% ( 5 / 5) in 'Algebra.Graph.Relation.Reflexive'
  2294. 862.42 s [algebraic-graphs] Warning: 'Preorder' is out of scope.
  2295. 862.42 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2296. 862.42 s [algebraic-graphs] 100% ( 5 / 5) in 'Algebra.Graph.Relation.Preorder'
  2297. 862.43 s [algebraic-graphs] 0% ( 0 / 8) in 'Algebra.Graph.Example.Todo'
  2298. 862.43 s [algebraic-graphs] Missing documentation for:
  2299. 862.43 s [algebraic-graphs] Module header
  2300. 862.43 s [algebraic-graphs] Todo (src/Algebra/Graph/Example/Todo.hs:13)
  2301. 862.43 s [algebraic-graphs] todo (src/Algebra/Graph/Example/Todo.hs:41)
  2302. 862.43 s [algebraic-graphs] low (src/Algebra/Graph/Example/Todo.hs:22)
  2303. 862.43 s [algebraic-graphs] high (src/Algebra/Graph/Example/Todo.hs:26)
  2304. 862.43 s [algebraic-graphs] ~*~ (src/Algebra/Graph/Example/Todo.hs:34)
  2305. 862.43 s [algebraic-graphs] >*< (src/Algebra/Graph/Example/Todo.hs:38)
  2306. 862.43 s [algebraic-graphs] priority (src/Algebra/Graph/Example/Todo.hs:30)
  2307. 862.45 s [algebraic-graphs] Warning: 'array' is out of scope.
  2308. 862.45 s [algebraic-graphs] If you qualify the identifier, haddock can try to link it anyway.
  2309. 862.45 s [algebraic-graphs] 90% ( 10 / 11) in 'Data.Graph.Typed'
  2310. 862.45 s [algebraic-graphs] Missing documentation for:
  2311. 862.45 s [algebraic-graphs] scc (src/Data/Graph/Typed.hs:191)
  2312. 862.68 s [algebraic-graphs] Warning: Algebra.Graph.Labelled: could not find link destinations for:
  2313. 862.68 s [algebraic-graphs]
  2314. 862.68 s [algebraic-graphs] - Algebra.Graph.Labelled.Focus
  2315. 865.54 s [algebraic-graphs] Documentation created: dist/doc/html/algebraic-graphs/index.html,
  2316. 865.54 s [algebraic-graphs] dist/doc/html/algebraic-graphs/algebraic-graphs.txt
  2317. 865.66 s [algebraic-graphs] Preprocessing test suite 'main' for algebraic-graphs-0.7..
  2318. 865.66 s [algebraic-graphs] Phase: installPhase
  2319. 865.67 s [algebraic-graphs] Installing library in /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/lib/ghc-9.4.8/x86_64-linux-ghc-9.4.8/algebraic-graphs-0.7-HAx3uQBsFBrCFjzVNVlr0F
  2320. 866.38 s [algebraic-graphs] Phase: fixupPhase
  2321. 866.40 s [algebraic-graphs] shrinking RPATHs of ELF executables and libraries in /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7
  2322. 866.42 s [algebraic-graphs] shrinking /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/lib/ghc-9.4.8/x86_64-linux-ghc-9.4.8/libHSalgebraic-graphs-0.7-HAx3uQBsFBrCFjzVNVlr0F-ghc9.4.8.so
  2323. 866.43 s [algebraic-graphs] checking for references to /build/ in /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7...
  2324. 866.48 s [algebraic-graphs] patching script interpreter paths in /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7
  2325. 866.49 s [algebraic-graphs] stripping (with command strip and flags -S -p) in /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/lib
  2326. 866.76 s [algebraic-graphs] shrinking RPATHs of ELF executables and libraries in /nix/store/bd0rv8qd20dfba7jwqs33dcw23plc5jq-algebraic-graphs-0.7-doc
  2327. 866.77 s [algebraic-graphs] checking for references to /build/ in /nix/store/bd0rv8qd20dfba7jwqs33dcw23plc5jq-algebraic-graphs-0.7-doc...
  2328. 866.81 s [algebraic-graphs] patching script interpreter paths in /nix/store/bd0rv8qd20dfba7jwqs33dcw23plc5jq-algebraic-graphs-0.7-doc
  2329. 866.96 s [post-build-hook] Uploading to cachix cache "sellout": /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7 /nix/store/bd0rv8qd20dfba7jwqs33dcw23plc5jq-algebraic-graphs-0.7-doc
  2330. 867.51 s [post-build-hook] Pushing 2 paths (37 are already present) using zstd to cache sellout ⏳
  2331. 867.51 s [post-build-hook]
  2332. 867.90 s [post-build-hook] Pushing /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7 (24.72 MiB)
  2333. 868.01 s [post-build-hook] Pushing /nix/store/bd0rv8qd20dfba7jwqs33dcw23plc5jq-algebraic-graphs-0.7-doc (11.26 MiB)
  2334. 869.74 s [post-build-hook]
  2335. 869.74 s [post-build-hook] All done.
  2336. 869.76 s [post-build-hook] Uploading to the NixCI cache: /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7 /nix/store/bd0rv8qd20dfba7jwqs33dcw23plc5jq-algebraic-graphs-0.7-doc
  2337. 869.80 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  2338. 869.81 s [post-build-hook] copying 2 paths...
  2339. 869.81 s [post-build-hook] copying path '/nix/store/bd0rv8qd20dfba7jwqs33dcw23plc5jq-algebraic-graphs-0.7-doc' to 'https://cache.nix-ci.com'...
  2340. 871.35 s [post-build-hook] copying path '/nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7' to 'https://cache.nix-ci.com'...
  2341. 876.23 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  2342. 876.47 s [post-build-hook] copying 1 paths...
  2343. 876.47 s [post-build-hook] copying path '/nix/store/pkxsn9c82g3jd25gsvx2jpg7w9nl19qf-algebraic-graphs-0.7.drv' to 'https://cache.nix-ci.com'...
  2344. 876.71 s Progress: 6 of 10 built, 152 of 152 downloaded from cache
  2345. 876.77 s Building ghc-9.4.8-with-packages
  2346. 876.84 s [ghc-9.4.8-with-packages] /nix/store/iwqw5xnc7zqlhkh89a1v3r3jmwkfja1c-doctest-0.24.2/nix-support:
  2347. 876.84 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2348. 876.86 s [ghc-9.4.8-with-packages] /nix/store/aba6vbkwdrz87az76asqhggfn865lfls-ghc-compat-plugin-0.1.0.1/nix-support:
  2349. 876.86 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2350. 876.86 s [ghc-9.4.8-with-packages] /nix/store/jnriapj24daab47wfpylsbz3sw82mrm5-hedgehog-1.5/nix-support:
  2351. 876.86 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2352. 876.86 s [ghc-9.4.8-with-packages] /nix/store/jnriapj24daab47wfpylsbz3sw82mrm5-hedgehog-1.5/nix-support:
  2353. 876.86 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2354. 876.87 s [ghc-9.4.8-with-packages] /nix/store/qwpjg0whfp59bvjbbd3zj7d7av19frrj-Cabal-3.12.1.0/nix-support:
  2355. 876.87 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2356. 876.90 s [ghc-9.4.8-with-packages] /nix/store/9awxkcf7mf8r2p73q0p3jwkkz5jhxk1j-cabal-doctest-1.0.12/nix-support:
  2357. 876.90 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2358. 876.92 s [ghc-9.4.8-with-packages] /nix/store/nc67nabvnkd3ax812zzkp7imag2axafb-temporary-1.3/nix-support:
  2359. 876.92 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2360. 876.92 s [ghc-9.4.8-with-packages] /nix/store/nc67nabvnkd3ax812zzkp7imag2axafb-temporary-1.3/nix-support:
  2361. 876.92 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2362. 876.92 s [ghc-9.4.8-with-packages] /nix/store/kj3xbib9gbydn80c6pa58jw0diwy299l-ansi-terminal-1.1.3/nix-support:
  2363. 876.92 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2364. 876.93 s [ghc-9.4.8-with-packages] /nix/store/kj3xbib9gbydn80c6pa58jw0diwy299l-ansi-terminal-1.1.3/nix-support:
  2365. 876.93 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2366. 876.93 s [ghc-9.4.8-with-packages] /nix/store/lnpm1wipjx78xjmaxv1z5j8dd4a1symh-async-2.2.5/nix-support:
  2367. 876.93 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2368. 876.93 s [ghc-9.4.8-with-packages] /nix/store/lnpm1wipjx78xjmaxv1z5j8dd4a1symh-async-2.2.5/nix-support:
  2369. 876.93 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2370. 876.93 s [ghc-9.4.8-with-packages] /nix/store/ma738ihzlsdhviinksypvlawhgvm4l27-barbies-2.1.1.0/nix-support:
  2371. 876.93 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2372. 876.94 s [ghc-9.4.8-with-packages] /nix/store/ma738ihzlsdhviinksypvlawhgvm4l27-barbies-2.1.1.0/nix-support:
  2373. 876.94 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2374. 876.94 s [ghc-9.4.8-with-packages] /nix/store/742z4r79i4qmrvya67kiqhl548nzdf3m-concurrent-output-1.10.21/nix-support:
  2375. 876.94 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2376. 876.95 s [ghc-9.4.8-with-packages] /nix/store/742z4r79i4qmrvya67kiqhl548nzdf3m-concurrent-output-1.10.21/nix-support:
  2377. 876.95 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2378. 876.95 s [ghc-9.4.8-with-packages] /nix/store/i4ldl1p4vwmpp2wbgi8wdhnff23s8qa5-lifted-async-0.10.2.7/nix-support:
  2379. 876.95 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2380. 876.95 s [ghc-9.4.8-with-packages] /nix/store/i4ldl1p4vwmpp2wbgi8wdhnff23s8qa5-lifted-async-0.10.2.7/nix-support:
  2381. 876.95 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2382. 876.95 s [ghc-9.4.8-with-packages] /nix/store/gw4glgrkcallqjhqkdl05n6mgi5i6hrl-mmorph-1.2.1/nix-support:
  2383. 876.95 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2384. 876.96 s [ghc-9.4.8-with-packages] /nix/store/gw4glgrkcallqjhqkdl05n6mgi5i6hrl-mmorph-1.2.1/nix-support:
  2385. 876.96 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2386. 876.96 s [ghc-9.4.8-with-packages] /nix/store/vr4aizxdpc8ac8lgnznvgv4wrj6m1966-monad-control-1.0.3.1/nix-support:
  2387. 876.96 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2388. 876.96 s [ghc-9.4.8-with-packages] /nix/store/vr4aizxdpc8ac8lgnznvgv4wrj6m1966-monad-control-1.0.3.1/nix-support:
  2389. 876.96 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2390. 876.96 s [ghc-9.4.8-with-packages] /nix/store/sv8ac9brw0kq58zasvn25kb01wmvg3hg-pretty-show-1.10/nix-support:
  2391. 876.96 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2392. 876.96 s [ghc-9.4.8-with-packages] /nix/store/sv8ac9brw0kq58zasvn25kb01wmvg3hg-pretty-show-1.10/nix-support:
  2393. 876.96 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2394. 876.96 s [ghc-9.4.8-with-packages] /nix/store/ii90bl7i0ixvvyynac5mca5f5j7f0a9r-primitive-0.9.1.0/nix-support:
  2395. 876.96 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2396. 876.97 s [ghc-9.4.8-with-packages] /nix/store/ii90bl7i0ixvvyynac5mca5f5j7f0a9r-primitive-0.9.1.0/nix-support:
  2397. 876.97 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2398. 876.97 s [ghc-9.4.8-with-packages] /nix/store/zgrpvklwnz2bmffl035si31i2ccw75yq-random-1.2.1.3/nix-support:
  2399. 876.97 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2400. 876.97 s [ghc-9.4.8-with-packages] /nix/store/zgrpvklwnz2bmffl035si31i2ccw75yq-random-1.2.1.3/nix-support:
  2401. 876.97 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2402. 876.97 s [ghc-9.4.8-with-packages] /nix/store/0ibwnsmddvmk8x5iay5xxj7ajf0mdgcb-resourcet-1.3.0/nix-support:
  2403. 876.97 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2404. 876.98 s [ghc-9.4.8-with-packages] /nix/store/0ibwnsmddvmk8x5iay5xxj7ajf0mdgcb-resourcet-1.3.0/nix-support:
  2405. 876.98 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2406. 876.98 s [ghc-9.4.8-with-packages] /nix/store/fikzg289cm63ny4j3f9rsijf0bvf28nw-safe-exceptions-0.1.7.4/nix-support:
  2407. 876.98 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2408. 876.98 s [ghc-9.4.8-with-packages] /nix/store/fikzg289cm63ny4j3f9rsijf0bvf28nw-safe-exceptions-0.1.7.4/nix-support:
  2409. 876.98 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2410. 876.98 s [ghc-9.4.8-with-packages] /nix/store/ivxwj8agwmpzhd6izc4x43a1axi6w5d4-transformers-base-0.4.6/nix-support:
  2411. 876.98 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2412. 876.98 s [ghc-9.4.8-with-packages] /nix/store/ivxwj8agwmpzhd6izc4x43a1axi6w5d4-transformers-base-0.4.6/nix-support:
  2413. 876.98 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2414. 876.99 s [ghc-9.4.8-with-packages] /nix/store/nl85bjrjxv9j580rbljrxh93zzfbd108-wl-pprint-annotated-0.1.0.1/nix-support:
  2415. 876.99 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2416. 876.99 s [ghc-9.4.8-with-packages] /nix/store/nl85bjrjxv9j580rbljrxh93zzfbd108-wl-pprint-annotated-0.1.0.1/nix-support:
  2417. 876.99 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2418. 876.99 s [ghc-9.4.8-with-packages] /nix/store/xmpz5r3lk1rxsgyk6y46s2w58ampfr5g-Cabal-syntax-3.12.1.0/nix-support:
  2419. 876.99 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2420. 877.01 s [ghc-9.4.8-with-packages] /nix/store/xmpz5r3lk1rxsgyk6y46s2w58ampfr5g-Cabal-syntax-3.12.1.0/nix-support:
  2421. 877.01 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2422. 877.02 s [ghc-9.4.8-with-packages] /nix/store/ia9jprsrywhzs37iqjcz1pn2iy58y4lw-ansi-terminal-types-1.1.3/nix-support:
  2423. 877.02 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2424. 877.03 s [ghc-9.4.8-with-packages] /nix/store/ia9jprsrywhzs37iqjcz1pn2iy58y4lw-ansi-terminal-types-1.1.3/nix-support:
  2425. 877.03 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2426. 877.04 s [ghc-9.4.8-with-packages] /nix/store/35lsnsldhvy7y1i21v86kns2ah0hx72c-hashable-1.4.7.0/nix-support:
  2427. 877.04 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2428. 877.04 s [ghc-9.4.8-with-packages] /nix/store/35lsnsldhvy7y1i21v86kns2ah0hx72c-hashable-1.4.7.0/nix-support:
  2429. 877.04 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2430. 877.04 s [ghc-9.4.8-with-packages] /nix/store/zcdz6f0k3aa1j82s8p0prglf1929dqs0-distributive-0.6.2.1/nix-support:
  2431. 877.04 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2432. 877.04 s [ghc-9.4.8-with-packages] /nix/store/zcdz6f0k3aa1j82s8p0prglf1929dqs0-distributive-0.6.2.1/nix-support:
  2433. 877.04 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2434. 877.05 s [ghc-9.4.8-with-packages] /nix/store/d3x3gda2rr1kw1a43zw8nxdk895k4hsi-constraints-0.14.2/nix-support:
  2435. 877.05 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2436. 877.05 s [ghc-9.4.8-with-packages] /nix/store/d3x3gda2rr1kw1a43zw8nxdk895k4hsi-constraints-0.14.2/nix-support:
  2437. 877.05 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2438. 877.06 s [ghc-9.4.8-with-packages] /nix/store/w5z12hdpc93yhrvj7ifvf6rgzh1ljbik-lifted-base-0.2.3.12/nix-support:
  2439. 877.06 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2440. 877.06 s [ghc-9.4.8-with-packages] /nix/store/w5z12hdpc93yhrvj7ifvf6rgzh1ljbik-lifted-base-0.2.3.12/nix-support:
  2441. 877.06 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2442. 877.06 s [ghc-9.4.8-with-packages] /nix/store/j0ff9h4skzj85n7gyq8s7155g6fakm9b-transformers-compat-0.7.2/nix-support:
  2443. 877.06 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2444. 877.07 s [ghc-9.4.8-with-packages] /nix/store/j0ff9h4skzj85n7gyq8s7155g6fakm9b-transformers-compat-0.7.2/nix-support:
  2445. 877.07 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2446. 877.07 s [ghc-9.4.8-with-packages] /nix/store/wjm51pw64gsp5q0hq4yvs22agi7in0c7-splitmix-0.1.3.1/nix-support:
  2447. 877.07 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2448. 877.08 s [ghc-9.4.8-with-packages] /nix/store/wjm51pw64gsp5q0hq4yvs22agi7in0c7-splitmix-0.1.3.1/nix-support:
  2449. 877.08 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2450. 877.08 s [ghc-9.4.8-with-packages] /nix/store/mdd2swfjg0d2sr8jmq1dq0bz8hr97g8d-unliftio-core-0.2.1.0/nix-support:
  2451. 877.08 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2452. 877.08 s [ghc-9.4.8-with-packages] /nix/store/mdd2swfjg0d2sr8jmq1dq0bz8hr97g8d-unliftio-core-0.2.1.0/nix-support:
  2453. 877.08 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2454. 877.08 s [ghc-9.4.8-with-packages] /nix/store/jz7zl0maj20ixq8xrm6xp8vlylbvf4g0-base-orphans-0.9.3/nix-support:
  2455. 877.08 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2456. 877.09 s [ghc-9.4.8-with-packages] /nix/store/jz7zl0maj20ixq8xrm6xp8vlylbvf4g0-base-orphans-0.9.3/nix-support:
  2457. 877.09 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2458. 877.09 s [ghc-9.4.8-with-packages] /nix/store/qgxv995bh9irf0jg9miqsrx61glq39zq-os-string-2.0.8/nix-support:
  2459. 877.09 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2460. 877.09 s [ghc-9.4.8-with-packages] /nix/store/qgxv995bh9irf0jg9miqsrx61glq39zq-os-string-2.0.8/nix-support:
  2461. 877.09 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2462. 877.10 s [ghc-9.4.8-with-packages] /nix/store/w021h6br7mi8p3npc0b1p0aq79gb02sb-tagged-0.8.9/nix-support:
  2463. 877.10 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2464. 877.10 s [ghc-9.4.8-with-packages] /nix/store/w021h6br7mi8p3npc0b1p0aq79gb02sb-tagged-0.8.9/nix-support:
  2465. 877.10 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2466. 877.10 s [ghc-9.4.8-with-packages] /nix/store/9bswyvp3x7ifdb7n4r6xsa7hg70lrd6s-boring-0.2.2/nix-support:
  2467. 877.10 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2468. 877.10 s [ghc-9.4.8-with-packages] /nix/store/9bswyvp3x7ifdb7n4r6xsa7hg70lrd6s-boring-0.2.2/nix-support:
  2469. 877.10 s [ghc-9.4.8-with-packages] propagated-build-inputs: Keeping existing link to /nix/store/4asr4dcyl5y2ymb38clx5x5fm7cdmp1i-algebraic-graphs-0.7/nix-support/propagated-build-inputs
  2470. 877.74 s [ghc-9.4.8-with-packages] Warning: haddock-interfaces: /nix/store/jnriapj24daab47wfpylsbz3sw82mrm5-hedgehog-1.5/share/doc/x86_64-linux-ghc-9.4.8/hedgehog-1.5/html/hedgehog.haddock doesn't exist or isn't a file
  2471. 877.74 s [ghc-9.4.8-with-packages] Warning: haddock-html: /nix/store/jnriapj24daab47wfpylsbz3sw82mrm5-hedgehog-1.5/share/doc/x86_64-linux-ghc-9.4.8/hedgehog-1.5/html doesn't exist or isn't a directory
  2472. 878.70 s [post-build-hook] Uploading to cachix cache "sellout": /nix/store/s9gb9l49gyan7rrbq504iq6jsy4cyb86-ghc-9.4.8-with-packages
  2473. 879.33 s [post-build-hook] Pushing 1 paths (120 are already present) using zstd to cache sellout ⏳
  2474. 879.33 s [post-build-hook]
  2475. 879.83 s [post-build-hook] Pushing /nix/store/s9gb9l49gyan7rrbq504iq6jsy4cyb86-ghc-9.4.8-with-packages (4.85 MiB)
  2476. 881.48 s [post-build-hook]
  2477. 881.48 s [post-build-hook] All done.
  2478. 881.50 s [post-build-hook] Uploading to the NixCI cache: /nix/store/s9gb9l49gyan7rrbq504iq6jsy4cyb86-ghc-9.4.8-with-packages
  2479. 881.58 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  2480. 881.75 s [post-build-hook] copying 1 paths...
  2481. 881.75 s [post-build-hook] copying path '/nix/store/s9gb9l49gyan7rrbq504iq6jsy4cyb86-ghc-9.4.8-with-packages' to 'https://cache.nix-ci.com'...
  2482. 882.80 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  2483. 883.08 s [post-build-hook] copying 1 paths...
  2484. 883.08 s [post-build-hook] copying path '/nix/store/dd9qk6kzaqmn8f762yqlxyzrvpzzisds-ghc-9.4.8-with-packages.drv' to 'https://cache.nix-ci.com'...
  2485. 883.31 s Progress: 7 of 9 built, 152 of 152 downloaded from cache
  2486. 883.40 s Building ghc-shell-for-packages
  2487. 883.52 s [post-build-hook] Uploading to cachix cache "sellout": /nix/store/6kln287kdq0aa7i4baxk2a23kz5fh21l-ghc-shell-for-packages-0
  2488. 884.15 s [post-build-hook] Pushing 1 paths (322 are already present) using zstd to cache sellout ⏳
  2489. 884.15 s [post-build-hook]
  2490. 884.56 s [post-build-hook] Pushing /nix/store/6kln287kdq0aa7i4baxk2a23kz5fh21l-ghc-shell-for-packages-0 (256.00 B)
  2491. 885.55 s [post-build-hook]
  2492. 885.55 s [post-build-hook] All done.
  2493. 885.57 s [post-build-hook] Uploading to the NixCI cache: /nix/store/6kln287kdq0aa7i4baxk2a23kz5fh21l-ghc-shell-for-packages-0
  2494. 885.64 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  2495. 885.68 s [post-build-hook] copying 1 paths...
  2496. 885.68 s [post-build-hook] copying path '/nix/store/6kln287kdq0aa7i4baxk2a23kz5fh21l-ghc-shell-for-packages-0' to 'https://cache.nix-ci.com'...
  2497. 886.04 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  2498. 886.37 s [post-build-hook] copying 1 paths...
  2499. 886.37 s [post-build-hook] copying path '/nix/store/brdmmm2i6z0j22jd9sfgrh1pkpx6b5z9-ghc-shell-for-packages-0.drv' to 'https://cache.nix-ci.com'...
  2500. 886.60 s Progress: 8 of 9 built, 152 of 152 downloaded from cache