public Derivation switchVars(VarInfo[] old_vars, VarInfo[] new_vars) {
   TernaryDerivation result = this.clone();
   result.base1 = new_vars[ArraysMDE.indexOf(old_vars, result.base1)];
   result.base2 = new_vars[ArraysMDE.indexOf(old_vars, result.base2)];
   result.base3 = new_vars[ArraysMDE.indexOf(old_vars, result.base3)];
   return result;
 }
  public InvariantStatus check_modified(long[] a1, long[] a2, int count) {
    if ((a1 == null) || (a2 == null)) return InvariantStatus.FALSIFIED;

    int result = ArraysMDE.indexOf(a2, a1);

    if (result == -1) return InvariantStatus.FALSIFIED;
    else return InvariantStatus.NO_CHANGE;
  }