public static boolean propositionalArgumentP(Stella_Object argument) {
    if (Stella_Object.safePrimaryType(argument) == Logic.SGT_STELLA_CONS) {
      { Cons argument000 = ((Cons)(argument));

        { Stella_Object operator = argument000.value;
          Stella_Object firstarg = argument000.rest.value;

          if ((!(operator == Logic.SYM_PL_KERNEL_KB_VALUE)) &&
              Logic.holdsOperatorP(operator)) {
            return (true);
          }
          if (Stella_Object.symbolP(operator)) {
            { GeneralizedSymbol testValue000 = ((GeneralizedSymbol)(operator));

              if ((testValue000 == Logic.SYM_STELLA_AND) ||
                  ((testValue000 == Logic.SYM_STELLA_OR) ||
                   ((testValue000 == Logic.SYM_STELLA_NOT) ||
                    ((testValue000 == Logic.SYM_STELLA_EXISTS) ||
                     ((testValue000 == Logic.SYM_STELLA_FORALL) ||
                      (testValue000 == Logic.SYM_STELLA_e)))))) {
                return (true);
              }
              else {
                { LogicObject predicate = Logic.evaluatePredicate(((GeneralizedSymbol)(operator)), firstarg);
                  int arity = 0;

                  if (predicate != null) {
                    if (Surrogate.subtypeOfP(Stella_Object.safePrimaryType(predicate), Logic.SGT_LOGIC_NAMED_DESCRIPTION)) {
                      { NamedDescription predicate000 = ((NamedDescription)(predicate));

                        if (Logic.functionP(predicate000)) {
                          arity = predicate000.arity();
                          if ((arity == -1) ||
                              (arity == argument000.length())) {
                            return (false);
                          }
                          else {
                            return (true);
                          }
                        }
                        else {
                          return (true);
                        }
                      }
                    }
                    else {
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    else {
    }
    return (false);
  }