  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)