1. A rule stored in a tangible computer-readable memory, the rule adapted to be programmatically applied by a computer to automatically detect occurrences of a particular problem in a deployment of a software application, said rule comprising: a plurality of atomic gates having predicates for detecting occurrences of a plurality of conditions in the deployment of the software application; and a plurality of operator gates configured to detect predefined logical combinations of outputs of the atomic gates to generate a rule output, said rule output indicating whether the problem is currently detected in the deployment; wherein the rule contains a plurality of free logical variables which can be assigned values, the free logical variables configured for use in input pattern matching and output binding substitutions to supply information to a remedy for the problem, each substitution comprising an assignment of a value to a variable; wherein the rule comprises a logic rule expressed in a first order logic language.