public static void normalizeNotProposition(Proposition self) {
    { Stella_Object argument = (self.arguments.theArray)[0];
      Proposition proposition = null;

      if (Logic.variableP(argument)) {
        { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

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

            try {
              Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
              stream000.nativeStream.println("ERROR: Can't yet handle propositional variables within negations.");
              Logic.helpSignalPropositionError(stream000, Logic.KWD_ERROR);

            } finally {
              Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$000);
            }
          }
          throw ((PropositionError)(PropositionError.newPropositionError(stream000.theStringReader()).fillInStackTrace()));
        }
      }
      proposition = ((Proposition)(argument));
      if (proposition.kind == Logic.KWD_EQUIVALENT) {
        Proposition.normalizeProposition(proposition);
      }
      { Keyword testValue000 = proposition.kind;

        if ((testValue000 == Logic.KWD_ISA) ||
            ((testValue000 == Logic.KWD_PREDICATE) ||
             (testValue000 == Logic.KWD_FUNCTION))) {
          if (BooleanWrapper.coerceWrappedBooleanToBoolean(proposition.variableTypeP())) {
            Proposition.overlayWithConstantProposition(self, Logic.FALSE_PROPOSITION);
          }
          else {
            Proposition.normalizeProposition(proposition);
          }
        }
        else if (testValue000 == Logic.KWD_CONSTANT) {
          { GeneralizedSymbol testValue001 = proposition.operator;

            if (testValue001 == Logic.SGT_STELLA_TRUE) {
              Proposition.overlayWithConstantProposition(self, Logic.FALSE_PROPOSITION);
            }
            else if (testValue001 == Logic.SGT_STELLA_FALSE) {
              Proposition.overlayWithConstantProposition(self, Logic.TRUE_PROPOSITION);
            }
            else {
            }
          }
        }
        else {
          Proposition.invertProposition(proposition);
          Proposition.overlayProposition(self, proposition);
        }
      }
    }
  }