code: private static boolean intersectProp(int[] verts, int a, int b, int c, int d) {
          // Eliminate improper cases.
          if (collinear(verts, a, b, c) || collinear(verts, a, b, d) || collinear(verts, c, d, a)
                  || collinear(verts, c, d, b))
              return false;
  
          return (left(verts, a, b, c) ^ left(verts, a, b, d)) && (left(verts, c, d, a) ^ left(verts, c, d, b));
      }
docs: intersection is ensured by using strict leftness.