!1      !"#$%&'()*+,-./0  Safe-Inferred 1234567891589123456789None #Create an arc between two vertices.:Remove types from arcs. Direct successors of a vertex.  Direct predecessors of a vertex. &Is first vertex a successor of second?(Is first vertex a predecessor of second?%;<=>?@ABC :D EFGHIJKLM%;<=>?@ABC :D EFGHIJKLM;<=>?@ABC :D EFGHIJKLMNoneAConvert Graph to String with functions to show vertices and arcs.;Invoke Graphviz and Imagemagick to display graph on screen.NOPNOPNone6Is first vertex a (recursive) parent of second vertex?The  of an .NGet list of vertices in the order they were visited by the depth-first search.SGet list of vertices in the order they were last visited by the depth-first search.8Walk graph in depth-first order and number the vertices.#QRSTUVWXYZ[\]^_`abcdefgh QRSTUVWXYZ[\]^_`abcdefghNone 1Vertices dominating the vertex given as argument.!jCompute dominator sets. N.B. currently a naive algorithm is implemented with time-complexity O(vertex^2).ijk !lm !ijk !lmNone'#Entry vertices of reducible cycles.2nopqrstuvwxyz{|}~"#$%&'n"#$%&'n opqrstuvwxyz{~}|"%$#&'None()*()*()* None+,-./0+,-./0+.-,/0None1  !"#$%&'()*+,-./01 ! "%$#&'(0/+.-,*)      !"#$%&'()*+,*-./01 2 3 4 5 6 7889:;<=>?@AABCDEEFGHIJKLMNOPQRSTUUVWXYZ[\]]!^_`abcdefghi'ajklmmanopqrstuvwxyz{|}~ libgraph-1.3Data.Graph.LibgraphData.Graph.Libgraph.UnionFindData.Graph.Libgraph.CoreData.Graph.Libgraph.DotData.Graph.Libgraph.DepthFirstData.Graph.Libgraph.DominanceData.Graph.Libgraph.CyclesData.Graph.Libgraph.DagifyData.Graph.Libgraph.AlgoDebugGraphrootverticesarcsArcsourcetargetarc-->succspredsisSuccisPredmapGraphmapArcsshowWithescapedisplayEdgeType CrossEdgeFwdEdgeBackEdgeTreeEdgeDfs isAncestor getEdgetype getPreorder getPostordergetDfsDomsets getDominators getDomsets CycleTree Irreducible Reducible getCycles getRedHeadersdagifyremovecollapse Judgement UnassessedWrongRightfindFaulty_dag findFaultyUFpsimfromList singletonpointfindunion simpleGraph SimpleGraphroot' vertices'arcs' SimpleArcsource'target' unitGraphmapArcsVmapArcVmapArc filterArclookup'fstElemupdatesndListfstList showVertexshowArcvNameDfsStategraph' spanning'stackseentimenum' lastVisit'Succsnum lastVisitspanninggraphvisit addToSpanning pushSuccspopvisitedAllChildrensee$fShowEdgeType $fShowDfssetsdom $fShowDomsets CycleNest getVertexndfs backPreds nonBackPreds vertexTypeheaderbodyworklistuf VertexType IrredHeadRedHeadSelfHeadNonHeadS cycleTreesimplifychildren isRedHeadstate0 getCycleNestanalyselabelReducibleworkmergemerge'analyseBackPreds!!!chasechase'dfsGraphmodifyVertexTypeaddToNonBackPredsOf addToBodyaddWorkuf_finduf_union showVType showHeader$fShowCycleNestrewire