public static void invertAtomicProposition(Proposition self) {
    { Proposition newatomicproposition = Logic.createProposition(Logic.SYM_STELLA_NOT, 1);
      Vector newnotarguments = newatomicproposition.arguments;
      Proposition newnotproposition = self;

      (newnotarguments.theArray)[0] = newatomicproposition;
      newatomicproposition.kind = self.kind;
      newatomicproposition.operator = self.operator;
      newatomicproposition.arguments = self.arguments;
      if (BooleanWrapper.coerceWrappedBooleanToBoolean(self.variableTypeP())) {
        KeyValueList.setDynamicSlotValue(self.dynamicSlots, Logic.SYM_LOGIC_VARIABLE_TYPEp, null, null);
        KeyValueList.setDynamicSlotValue(newatomicproposition.dynamicSlots, Logic.SYM_LOGIC_VARIABLE_TYPEp, Stella.TRUE_WRAPPER, null);
      }
      if (((BooleanWrapper)(KeyValueList.dynamicSlotValue(self.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTIVEp, Stella.FALSE_WRAPPER))).wrapperValue) {
        KeyValueList.setDynamicSlotValue(newatomicproposition.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTIVEp, Stella.TRUE_WRAPPER, Stella.FALSE_WRAPPER);
      }
      newnotproposition.kind = Logic.KWD_NOT;
      newnotproposition.operator = Logic.SGT_LOGIC_NOT;
      newnotproposition.arguments = newnotarguments;
    }
  }