Define a hypergraph as a set $V$ of vertices and a set $E$ of hyperedges, where a hyperedge is a non-empty subset of $V$. (This is a generalisation of an undirected graph, in which edges are allowed to connect any number of nodes, rather than just two.)
Define a cycle in a hypergraph as a cyclic sequence $C$ of vertices $v_0,v_1,\dots,v_n,v_0$, such that
(i) there is no hyperedge that includes all of the members of $C$; and
(ii) for every adjacent pair of vertices in $C$, there is a hyperedge that includes them both.
I'm looking for a simple and straightforward algorithm to detect whether any given hypergraph has a cycle. I feel like it should be obvious but it's not coming to me.
In case it helps: the hypergraphs I'm dealing with are reduced (meaning that no hyperedge is a subset of any other hyperedge), and also have the property that there is at least one hyperedge that contains each vertex.