First order theories
A theory is a collection of constants, functions,
and predicates, and formulas that define their behavior, which
are called the theory axioms - and often these axioms
dictate a particular domain of discourse as well.
When we work within a theory, the basics of what we will be
describing is pinned down, and we only have to express things
that are specific to our problem. A classic example of a theory
is the integers. When we work in that theory, the domain of
discourse is the integers, the functions are plus, minus and
times, the predicates include less-than, the constants base 10
integers, and so on.
Satisfiability Modulo Theory (SMT) Solvers
SMT solvers can find models for formulas in certain theories.
This class was all about the
activity
in which you wrote a program that generated a first order
formula in the theory of Linear Integer Arithmetic (ILA), and
then used the Z3 SAT solver to find a model, which ultimately
provided the solution to a "Subset Sum" problem.
Christopher W Brown