Equation contractEquation(int i, Value inValue, boolean stable) {
    final EKey key = new EKey(method, new InOut(i, inValue), stable);
    final Result result;
    HashSet<EKey> keys = new HashSet<>();
    for (int argI = 0; argI < conditionValue.args.size(); argI++) {
      BasicValue arg = conditionValue.args.get(argI);
      if (arg instanceof NthParamValue npv && npv.n == i) {
        keys.add(new EKey(conditionValue.method, new InOut(argI, inValue), conditionValue.stableCall, true));
      }
    }
    if (keys.isEmpty()) {
      result = Value.Top;
    } else {
      result = new Pending(Collections.singleton(new Component(Value.Top, keys)));
    }
    return new Equation(key, result);
  }
Equation contractEquation(int i, Value inValue, boolean stable)