code: boolean rule1(final IFactory factory, final Inclusion[] gcis) {
          boolean result = false;
  
          // TODO: make this "binarisation" more efficient by doing it for all
          // elements rather than relying on multiple calls to this rule and 
          // stripping off one Role for each call.
          if (lhs.length > 2) {
              result = true;
  
              final int k = lhs.length - 1;
              int[] newLhs1 = new int[k];
              System.arraycopy(lhs, 0, newLhs1, 0, newLhs1.length);
              int u = factory.getRole(newLhs1);
  
              int[] newLhs2 = { u, lhs[k] };
  
              gcis[0] = new RI(newLhs1, u);
              gcis[1] = new RI(newLhs2, rhs);
          }
  
          return result;
      }
docs: r<sub>1</sub> &#8728; &#133; &#8728; r<sub>k</sub> &#8849; s &rarr;
  {r<sub>1</sub> &#8728; &#133; &#8728; r<sub>k-1</sub> &#8849; u, u
  &#8728; r<sub>k</sub> &#8849; s}
  
  @param gcis
  @return