  The Dirac-Bergmann algorithm is a recipe for converting a theory with a
singular Lagrangian into a constrained Hamiltonian system. Constrained
Hamiltonian systems include gauge theories -- general relativity,
electromagnetism, Yang Mills, string theory, etc. The Dirac-Bergmann algorithm
is elegant but at the same time rather complicated. It consists of a large
number of logical steps linked together by a subtle chain of reasoning.
Examples of the Dirac-Bergmann algorithm found in the literature are designed
to isolate and illustrate just one or two of those logical steps. In this paper
I analyze a finite-dimensional system that exhibits all of the major steps in
the algorithm. The system includes primary and secondary constraints, first and
second class constraints, restrictions on Lagrange multipliers, and both
physical and gauge degrees of freedom. This relatively simple system provides a
platform for discussing the Dirac conjecture, constructing Dirac brackets, and
applying gauge conditions.
