A formalism is developed which makes it possible to express the equations of motion of a non-holonomic system in Poisson bracket form. The main difficulty which has to be overcome arises from the fact that the Lagrangian co-ordinates and their corresponding momenta do not form a canonical set. However, at each instant of time, these variables can be expressed in a unique way as functions of a canonical set called the locally free co-ordinates and momenta. Poisson brackets can be formed with respect to the locally free variables, and it is shown that these lead to the correct equations of motion for a general dynamical system subject to a given set of non-holonomic constraints. Hamilton's principle applies to a non-holonomic system, so a principal function can be formed, and its properties are studied in the second part of this paper. In addition to the usual Hamilton-Jacobi equation, the principal function satisfies a set of equations corresponding to the set of constraints. It is shown that these equations imply an indefinite or non-integrable principal function. A non-integrable function is one for which the order of double differentiation is not reversible. A precise method is given for defining the principal function for a non-holonomic system, and it is shown how this leads to indefiniteness in its second derivatives.