* @return boolean
   */
  public static boolean logicClassP(Stella_Class self) {
    { boolean testValue000 = false;

      if (((NamedDescription)(KeyValueList.dynamicSlotValue(self.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTION, null))) != null) {
        testValue000 = true;
      }
      else {
        {
          { boolean foundP000 = false;

            { Stella_Class c = null;
              Cons iter000 = self.classAllSuperClasses;

              loop000 : for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
                c = ((Stella_Class)(iter000.value));
                if ((((NamedDescription)(KeyValueList.dynamicSlotValue(c.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTION, null))) != null) ||
                    (c == ((Stella_Class)(Logic.SGT_STELLA_THING.surrogateValue)))) {
                  foundP000 = true;
                  break loop000;
                }
              }
            }
            testValue000 = foundP000;
          }
          if (!testValue000) {
            testValue000 = (self == ((Stella_Class)(Logic.SGT_STELLA_THING.surrogateValue))) ||
                (Stella_Class.subclassOfP(self, ((Stella_Class)(Logic.SGT_STELLA_LITERAL.surrogateValue))) ||
                 (self == ((Stella_Class)(Logic.SGT_LOGIC_PROPOSITION.surrogateValue))));
          }
        }
      }
      if (testValue000) {
        return (true);
      }
    }
    if (!self.classFinalizedP) {
      { List badsupers = Surrogate.collectBadSuperClasses(self.classType, List.list(Stella.NIL));

        if (badsupers.emptyP()) {
          { Object old$PrintreadablyP$000 = Stella.$PRINTREADABLYp$.get();

            try {
              Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
              Stella.STANDARD_WARNING.nativeStream.println("WARNING: Could not determine whether " + self + " is a logic class, because it is not finalized.");
              Logic.helpSignalPropositionError(Stella.STANDARD_WARNING, Logic.KWD_WARNING);

            } finally {
              Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$000);
            }
          }
        }
        else {
          { Object old$PrintreadablyP$001 = Stella.$PRINTREADABLYp$.get();

            try {
              Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
              {
                Stella.STANDARD_WARNING.nativeStream.println("WARNING: Could not determine whether " + self + " is a logic class, because it is not finalized.");
                Stella.STANDARD_WARNING.nativeStream.println("   It has these undefined or bad supers: " + badsupers.theConsList);
              }
;
              Logic.helpSignalPropositionError(Stella.STANDARD_WARNING, Logic.KWD_WARNING);

            } finally {
              Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$001);
            }
          }
        }
      }
    }
    return (false);
  }