Let $M$ be an $m\times n$ matrix with all elements in $\{1,0\}$, $m >> n$. Let $\mathbf{v}_0, \ldots, \mathbf{v}_n$ be the columns of $M$.
I want to find all sets of columns $S = \{\mathbf{v}_{i_1}, \ldots, \mathbf{v}_{i_k}\}$ so that for every row there is at least one column $\mathbf{v}_{i_j}, \ldots, \mathbf{v}_{i_k}$ that has a $1$ in that row, with the constraint that $S$ is minimal in the sense that deleting any element of $S$ means $S$ no longer meets these requirements.
Without the minimalness constraint, this is a trivial instance of (monotone) SAT - define a variable corresponding to each column of $M$, and just read the CNF clauses from the rows of $M$.
How can I approach the problem as described? I tried encoding the minimalness requirement as additional boolean constraints (which would make the problem regular SAT and I could use a SAT solver), but this gives $n^m$ additional clauses in CNF form, which is intractably large.