  Legal properties involve reasoning about data values and time. Metric
first-order temporal logic (MFOTL) provides a rich formalism for specifying
legal properties. While MFOTL has been successfully used for verifying legal
properties over operational systems via runtime monitoring, no solution exists
for MFOTL-based verification in early-stage system development captured by
requirements. Given a legal property and system requirements, both formalized
in MFOTL, the compliance of the property can be verified on the requirements
via satisfiability checking. In this paper, we propose a practical, sound, and
complete (within a given bound) satisfiability checking approach for MFOTL. The
approach, based on satisfiability modulo theories (SMT), employs a
counterexample-guided strategy to incrementally search for a satisfying
solution. We implemented our approach using the Z3 SMT solver and evaluated it
on five case studies spanning the healthcare, business administration, banking
and aviation domains. Our results indicate that our approach can efficiently
determine whether legal properties of interest are met, or generate
counterexamples that lead to compliance violations.
