public static void collapseValueOfChainsForIoVariables(Vector iovariables) {
    { PatternVariable tightestvariable = null;

      { PatternVariable vbl = null;
        Vector vector000 = iovariables;
        int index000 = 0;
        int length000 = vector000.length();
        int i = Stella.NULL_INTEGER;
        int iter000 = 0;

        for (;index000 < length000; index000 = index000 + 1, iter000 = iter000 + 1) {
          vbl = ((PatternVariable)((vector000.theArray)[index000]));
          i = iter000;
          if (!(vbl == PatternVariable.innermostVariableOf(vbl))) {
            tightestvariable = PatternVariable.innermostVariableOf(vbl);
            (iovariables.theArray)[i] = tightestvariable;
            tightestvariable.skolemName = vbl.skolemName;
            { PatternVariable object000 = tightestvariable;
              Cons value000 = Stella.NIL;
              Stella_Object oldValue000 = object000.variableValueInverse;
              Stella_Object newValue000 = Stella_Object.updateInContext(oldValue000, value000, object000.homeContext, false);

              if (!((oldValue000 != null) &&
                  (oldValue000.primaryType() == Logic.SGT_STELLA_CS_VALUE))) {
                object000.variableValueInverse = newValue000;
              }
            }
          }
        }
      }
    }
  }