## Parameters

`module G : Sig.G`

## Signature

`module S : Stdlib.Set.S with type elt = G.vertex`
`val strong_articulation_points : G.t -> G.vertex list`

Computes the strong articulation points of the given strongly connected directed graph. The result is undefined if the input graph is not directed and strongly connected.

A strong articulation point is a vertex that when removed from the original graph disconnects that graph into two or more components.

The implementation traverses the graph by iterating over predecessors; for unidirectional graphs prefer `Connectivity`.

Implements the algorithm from Italiano, Laura, and Santaroni, TCS 447 (2012), "Finding strong bridges and strong articulation points in linear time". Complexity: O(V + E)

`val sstrong_articulation_points : G.t -> S.t`

As for `strong_articulation_points` but returns a set.