public static boolean testDisjointTermsP(Stella_Object term1, Stella_Object term2) {
    if (Surrogate.subtypeOfP(Stella_Object.safePrimaryType(term1), Logic.SGT_LOGIC_DESCRIPTION)) {
      { Description term1000 = ((Description)(term1));

        if (Surrogate.subtypeOfP(Stella_Object.safePrimaryType(term2), Logic.SGT_LOGIC_DESCRIPTION)) {
          { Description term2000 = ((Description)(term2));

            if (Logic.currentInferenceLevel() == Logic.REFUTATION_INFERENCE) {
              return (Description.expensiveDisjointTermsP(term1000, term2000));
            }
            else {
              return (Description.disjointTermsP(term1000, term2000));
            }
          }
        }
        else {
          return (false);
        }
      }
    }
    else {
      return (false);
    }
  }