Austin Davis (awdavis)
David Wise (dwise)
15-424 Fall 2014

================================================================================
Simple 1
--------------------------------------------------------------------------------

  This controller is for two robots, a leader and a follower, moving in the
  plane with no obstacles.
  We have made some initial assumptions about the problem for simplicity:
  * We assume that the leading robot is moving with constant velocity in a
    straight line.
  * We also assume that the follower robot can change its velocity and direction
    instantaneously and discontinuously.

  The following-distance properties are proven in simple1.proof.

================================================================================
Simple 2
--------------------------------------------------------------------------------

  This controller is for two robots, a leader and a follower, moving in the plane 
  with no obstacles.
  We have made some initial assumptions about the problem for simplicity:
  * We assume that the leading robot is moving with constant velocity in a
    straight line (constant direction).
  * We also assume that the follower robot has the same initial direction and
    velocity as the leader robot.

  The following-distance properties are proven in simple2.proof.

================================================================================
Complete 1D
--------------------------------------------------------------------------------
  This controller is for two robots, a leader and a follower, moving on a line 
  with no obstacles. We assume neither robot can move backwards, and we require
  both robots to have a piecewise constant acceleration. Additionally, the leader
  has a maximum velocity which for simplicity is enforced in the domain constraint.

  We use a single time-trigger, and the  maximum length of the time-triggered 
  interval can be set by the follower each iteration to allow it to evolve for 
  as much time as it wants before making the next control decision.

  The following-distance properties are not yet proven.

================================================================================
Intermediate
--------------------------------------------------------------------------------

  This controller is for two robots, a leader and a follower, moving in the
  plane with no obstacles.
  We have made some initial assumptions about the problem for simplicity:
  * We assume that the y-component of the leading robot's velocity is always
    nonnegative. We will use an event trigger to ensure this.
  * We also assume that the follower robot can change its velocity 
    instantaneously.
  At each iteration, the follower robot will try to move to be the minimum
  following-distance behind the previous position of the leader robot.

  There are two main branches of the proof, one for proving that the follower
  maintains the minimum following-distance property, and one for proving that
  the follower maintains the maximum following-distance property. For our
  controller, we succeeded in proving the minimum following-distance property.
  The maximum distance property is almost proved, with one open goal remaining.

  The major proof steps are outlined below.

  Minimum following-distance branch:
  Condition: (lx - fx)^2 + (ly - fy)^2 >= minfd^2

	* Generalization (for minfd branch):
	fy <= ly - minfd

	* Loop invariant (for minfd branch):
	A > 0 & B > 0 & T > 0 & minr > 0 &
	minfd > 0 & maxfd > minfd & ldy >= 0 & lv >= 0 &
	ly - fy >= minfd & ldx^2 + ldy^2 = 1

	* Differential cut for ly - fy >= minfd (on minfd branch):
	fy + (T - t) * fvy <= ly - minfd

  Maximum following-distance branch:
  Condition: (lx - fx)^2 + (ly - fy)^2 <= maxfd^2

  	* Loop invariant (for maxfd branch):
  	A > 0 & B > 0 & T > 0 & minr > 0 &
	minfd > 0 & maxfd > minfd & ldy >= 0 & lv >= 0 &
	(lx - fx)^2 + (ly - minfd - fy)^2 <= (maxfd - minfd)^2 &
	ldx^2 + ldy^2 = 1

	* Differential cut (for maxfd branch):
	ldx^2 + ldy^2 = 1

  	* Generalization for (lx - fx)^2 + (ly - fy)^2 <= maxfd^2 part of box split (for maxfd branch):
  	(lx - fx)^2 + (ly - minfd - fy)^2 <= (maxfd - minfd)^2

  	* Generalization:
  	d <= d1 + d2 & 
  	d1 + d2 <= maxfd - minfd

  	* Generalization to prove d1 + d2 <= maxfd - minfd:
  	d1 <= (maxfd - minfd) * (1 - t / T) &
  	d2 <= (maxfd - minfd) * (t / T)

================================================================================
Complete
--------------------------------------------------------------------------------

  This controller is for two robots, a leader and a follower, moving in the
  plane with no obstacles. Our only restricting assumption is that the leader
  must make "wide turns," for some given restriction on wide turns, and it we
  also think it is useful to assume that the leader has a maximum velocity.

  This is intended as an example of the type of model we'd like to be able to 
  prove, but it is incomplete because the actual strategy the follower would
  need to employ to stay safe would likely be very nontrivial. The follower
  can only choose an acceleration and turning radius, and can't change direction
  during the time-triggered interval.

  The following-distance properties are not yet proven.