public static TruthValue unaryDescriptionSpecializesDescriptionP(Description sub, Description renamed_Super) {
    if (((Boolean)(Logic.$REVERSEPOLARITYp$.get())).booleanValue()) {
      return (Logic.UNKNOWN_TRUTH_VALUE);
    }
    if (LogicObject.collectionImpliesCollectionP(sub, renamed_Super)) {
      return (Logic.TRUE_TRUTH_VALUE);
    }
    { Object old$PrintreadablyP$000 = Stella.$PRINTREADABLYp$.get();

      try {
        Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
        if ((Stella.$TRACED_KEYWORDS$ != null) &&
            Stella.$TRACED_KEYWORDS$.membP(Logic.KWD_GOAL_TREE)) {
          {
            System.out.println();
            System.out.println("Prototype Subsumption Test:");
            System.out.println("   sub=" + sub);
            System.out.println("   super=" + renamed_Super);
          }
;
        }

      } finally {
        Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$000);
      }
    }
    { TruthValue result = Logic.UNKNOWN_TRUTH_VALUE;

      try {
        { Object old$Context$000 = Stella.$CONTEXT$.get();

          try {
            Native.setSpecial(Stella.$CONTEXT$, Logic.getInferenceCache(((Module)(Stella.$MODULE$.get())), Logic.KWD_META));
            result = Logic.callAsk(Description.createQueryIterator(renamed_Super, Stella.vector(Cons.cons(Description.getPrototype(sub), Stella.NIL))));

          } finally {
            Stella.$CONTEXT$.set(old$Context$000);
          }
        }
      } catch (LogicException e) {
        Stella.STANDARD_ERROR.nativeStream.print(Stella.exceptionMessage(e));
      }
      if ((Stella.$TRACED_KEYWORDS$ != null) &&
          Stella.$TRACED_KEYWORDS$.membP(Logic.KWD_GOAL_TREE)) {
        System.out.println();
      }
      return (result);
    }
  }