bot1.1
----------
The key insight for proving a lower bound on the amount of turn 
for the controller was the use of a Taylor series approximation 
for the movement of the direction vector around the unit circle. 

By gradually building up the order of the approximation, I could 
prove higher order approximations using lower order approximations. 
In essence, the sequence of differential cuts ended up being: 

xdir <= 1 & ydir <= 1
ydir <= av*t
xdir >= 1 - (av*t)^2/2
ydir >= av*t - (av*t)^3/6
xdir <= 1 - (av*t)^2/2 + (av*t)^4/24

which now provides both upper and lower bounds on the coordinate of 
the direction vector. 

bot 2.0/2.1
----------
The above bounds were crucial for avoiding the obstacle, as they
made it possible to prove that after drifting, the car continues 
moving in a direction that is now away from the obstacle. 

bot 4.0 
----------
The key insight here was first to set the taylor series
approximations equal to the upper and lower bounds on x, then 
solve these equations for the turning velocity. Using only the 2nd 
and 4th order approximations, this results in a bound of 

12*(0.5 - sqrt(0.25-(1-x_u)/6)) <= alpha^2 <= 2 - 2x_l

and so as long as alpha^2 is within this range, the approximations 
guarantee the car turns sufficiently far enough. This arises to the
conditioning that this range must be non-empty, so the necessary 
condition that 

12*(0.5 - sqrt(0.25-(1-x_u)/6)) <= 2 - 2x_l

which ensures that the range (x_l,x_u) is large enough to be feasible. 

bot2D
----------
The key insight for proving the 2D model was to first linearize the model
like we did in labs, and then try to translate components in the linear 
model into a 2D model. We linearize the 2D model by making our model utilize
the car's perspective (w.r.t. the axis the car is on), which is similar 
to the previous models, and then translate the directions w.r.t. the car into 
the actual direction w.r.t. the original x,y coordinate system to guarantee our 
safety. This way we can recreate the proofs from the previous models and use it 
to prove a 2D model.

Linearizing our model, we needed to add extra initial conditions to indicate
a random direction and assignments in the end to translate our model back 
into the original cartesian coordinates in order to check for safety conditions. 
Then we can apply the same invariants/differential cuts to prove our 2D model. 
We are also assuming that the obstacle is in front of the car (the car is driving 
toward the obstacle) as we found that having an arbitrary location for the obstacle 
would be hard to prove while traveling in a random direction. We represent the 
direction w.r.t. the car as xdir and ydir and the random direction w.r.t. the 
original coordinate as dx, dy. Then after drawing out a diagram, we calculated that 
in order to translate the new direction in terms of old direction is 
<-(xdir*dx+ydir*dy), (ydir*dx-xdir*dy)>. 
