build devShells.x86_64-linux.ghc948

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