* @param relationref
   * @return TruthValue
   */
  public static TruthValue satisfiesP(Stella_Object instanceortuple, Stella_Object relationref) {
    { Description description = Logic.coerceToDescription(relationref, null);

      if (description != null) {
        Logic.finalizeObjects();
        { Object old$Context$000 = Stella.$CONTEXT$.get();
          Object old$Module$000 = Stella.$MODULE$.get();

          try {
            Native.setSpecial(Stella.$CONTEXT$, Logic.getQueryContext());
            Native.setSpecial(Stella.$MODULE$, ((Context)(Stella.$CONTEXT$.get())).baseModule);
            if (Stella_Object.isaP(instanceortuple, Logic.SGT_STELLA_COLLECTION) ||
                Stella_Object.consP(instanceortuple)) {
              { Vector vector = Logic.coerceToVector(instanceortuple);

                if (vector != null) {
                  return (Logic.vectorSatisfiesDescriptionP(vector, description));
                }
              }
            }
            else {
              { LogicObject instance = Logic.coerceToInstance(instanceortuple, null);

                if (instance != null) {
                  return (Logic.instanceSatisfiesDescriptionP(instance, description));
                }
              }
            }

          } finally {
            Stella.$MODULE$.set(old$Module$000);
            Stella.$CONTEXT$.set(old$Context$000);
          }
        }
      }
      return (Logic.UNKNOWN_TRUTH_VALUE);
    }
  }