  An arbitrary $m\times n$ Boolean matrix $M$ can be decomposed {\em exactly}
as $M =U\circ V$, where $U$ (resp. $V$) is an $m\times k$ (resp. $k\times n$)
Boolean matrix and $\circ$ denotes the Boolean matrix multiplication operator.
We first prove an exact formula for the Boolean matrix $J$ such that $M =M\circ
J^T$ holds, where $J$ is maximal in the sense that if any 0 element in $J$ is
changed to a 1 then this equality no longer holds. Since minimizing $k$ is
NP-hard, we propose two heuristic algorithms for finding suboptimal but good
decomposition. We measure the performance (in minimizing $k$) of our algorithms
on several real datasets in comparison with other representative heuristic
algorithms for Boolean matrix decomposition (BMD). The results on some popular
benchmark datasets demonstrate that one of our proposed algorithms performs as
well or better on most of them. Our algorithms have a number of other
advantages: They are based on exact mathematical formula, which can be
interpreted intuitively. They can be used for approximation as well with
competitive "coverage." Last but not least, they also run very fast. Due to
interpretability issues in data mining, we impose the condition, called the
"column use condition," that the columns of the factor matrix $U$ must form a
subset of the columns of $M$.
