HeavyWater,
I recall the subject was hardly touched in graduate school, but Dirac and Bergmann did a great deal of work on constraint theory in the 1950s to develop a canonical description of general relativity. If that's your focus you can check out Dirac's paper at
http://rspa.royalsocietypublishing.org/content/246/1246/333 (free PDF online).
Constraint theory has many other applications, and it is not too difficult to understand if you're familiar with canonical formalism. One usually starts with a Lagrangian or the corresponding Hamiltonian, identifies any dependencies between the coordinates, velocities, or momenta (whether arising naturally within the dynamics or imposed by fiat) and calls them
primary constraints. Then one identifies whether the requirement that these constraints be maintained over times lead to additional constraints; if so, one calls them
secondary constraints. Write all primary or secondary constraints in the form of equations equal to zero, multiplied by a factor (to be determined later). Add these functions multiplied by their undetermined multipliers to the Hamiltonian (which, since they're equal to zero, won't change its value). This is the
extended Hamiltonian.
Now comes the trick. You can write Hamilton's equations of motion, like
dA/dt = [A,H], using the extended Hamiltonian, where the brackets mean Poisson brackets for classical physics, commutator for the quantum physics version. Every term in the extended Hamiltonian generates a bracket term in the equation of motion, including the constraint terms and their coeeficients. However, the fact that those extra brackets contain a function (i.e., a constraint) which is equal to zero doesn't mean the entire bracket can just be eliminated (otherwise, why did you add it to the Hamiltonian in the first place?). One computes the brackets
anyway, thus generating new terms in the equations of motion, and only imposes the constraint (that the constraint relation equals zero)
after all brackets are computed. One says that the constraints are only
weakly equal to zero (usually denoted with an approximately equal sign). In quantum physics, constraints are imposed
only on the states, not the operators.
But before proceeding to the equations of motion, a simplification process is performed. Calculate the Poisson bracket of every known constraint with every other known constraint, and also with the original Hamiltonian (the version which does not have constraints added). Each constraint whose bracket vanishes
weakly with all other constraints and the unconstrained Hamiltonian is relabeled a
first class constraint. If this process generates new constraints, they are relabeled
second class constraints. If a contradiction is found, the original Lagrangian or Hamiltonian is invalid. If there are second class constraints, one then tries to form linear combinations of them which will weakly Poisson commute with each other and the Hamiltonian; if they do, they are relabeled first class constraints. Any remaining second class constraints are in pairs and represent unphysical degrees of freedom; therefore, their coordinates are eliminated from the description of the system, and their corresponding constraints are eliminated from the extended Hamiltonian. The result is the
Dirac Hamiltonian. All equations of motion can then be written in the form of brackets with the Dirac Hamiltonian. The Dirac Hamiltonian will contain first class constraints, multiplied by an undetermined coefficient. This undetermined coefficient is a gauge freedom and will appear in the equations of motion. The gauge may be fixed in various ways (whole new subject).
I apologize if this is too long, but it is interesting and neglected. For instance, one can treat time as an operator in quantum mechanics using constraints, which has applications in relativity. The result is a Hamiltonian which vanishes (the problem of time) but nevertheless generates motion (but that's another whole new subject).
Elemental