All the stepping stones have been completed.  A more detailed description
of each stepping stone is available in the files.

project_ss1.key - P controller
project_ss2.key - PI controller
project_ss3.key - PI controller (With random forces)
project_ss4.key - PID controller (With random forces)
project_ss5.key - PID controller (With random forces, +Vmin,Vmax,Vset)


Overview of proof challenges

1. This proof was trival, but helped to set up an initial model.
2. The primary challenge in this proof was dealing with the I term.
   Without a hard maximum value, it is challenging to prove that the 
   I term will not devolve and become unbounded, leading to an unsafe
   controller.  Furthermore, with a standard time triggered controller,
   this is more likely because the controller can evolve for all amounts of
   time < T.  I decided to implement an Imax hard limit.  This is done in
   practice as well, so it was a satisfactory resolution.
3. This proof was a natural extension from part 2.  However, I noticed that
   The derivitive term would be significantly impacted by the introduction
   of random forces, and that is why I decided to introduce the random forces
   instead of the derivative term in this step.
4. This step was suprisingly challenging.  Intially, I attempted to prove
   the controller of the form  a := Kp*(-v) + Ki*I + Kd*(-a-F).  However, 
   in this controller, the derivative term does not always oppose the 
   change in velocity, specifically in iterations where the acceleration
   changes direction.  Therefore, I was forced to slightly modify the 
   controller to act on current acceleration.
5. This step was relatively straightforward, but complicated the algebra.

Throughout most of the proofs, I was forced to use cuts to guide Keymaera
in the algebraic computations because the inequalities were quite large.
