  Verifying specifications for large-scale control systems is of utmost
importance, but can be hard in practice as most formal verification methods can
not handle high-dimensional dynamics. Contract theory has been proposed as a
modular alternative to formal verification in which specifications are defined
by assumptions on the inputs to a component and guarantees on its outputs. In
this paper, we present linear-programming-based tools for verifying contracts
for control systems. We first consider the problem of verifying contracts
defined by time-invariant inequalities for unperturbed systems. We use
$k$-induction to show that contract verification can be achieved by considering
a collection of implications between inequalities, which are then recast as
linear programs. We then move our attention to perturbed systems. We present a
comparison-based framework, verifying that a perturbed system satisfies a
contract by checking that the corresponding unperturbed system satisfies a
robustified (and $\epsilon$-approximated) contract. In both cases, we present
explicit algorithms for contract verification, proving their correctness and
analyzing their complexity. We also demonstrate the verification process for
two case studies, one considering a two-vehicle autonomous driving scenario,
and one considering formation control of a multi-agent system.
