Each ship leaves a ``footprint'' on the water. That is, grid cells take on a particular value depending on where the ships are.
Example:
. This
says that a destroyer at (6,5) going across means that there is water
at (5,4).
This can be made into a clause by negating the antecendent:

Total:
.