public static Proposition createProposition(Symbol kind, int argumentcount) {
    Logic.enforceCodeOnly();
    { Proposition proposition = Proposition.newProposition();

      proposition.arguments = Vector.newVector(argumentcount);
      proposition.kind = Stella.internKeyword(kind.symbolName);
      if ((kind == Logic.SYM_STELLA_FUNCTION) ||
          ((kind == Logic.SYM_STELLA_PREDICATE) ||
           (kind == Logic.SYM_STELLA_ISA))) {
      }
      else {
        proposition.operator = ((Surrogate)(Logic.$OPERATOR_NAME_TO_SURROGATE_TABLE$.lookup(proposition.kind)));
      }
      if (Logic.descriptionModeP()) {
        KeyValueList.setDynamicSlotValue(proposition.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTIVEp, Stella.TRUE_WRAPPER, Stella.FALSE_WRAPPER);
      }
      KeyValueList.setDynamicSlotValue(proposition.dynamicSlots, Logic.SYM_LOGIC_UNFASTENEDp, Stella.TRUE_WRAPPER, null);
      return (proposition);
    }
  }