public static void prettyPrintAssertion(Proposition proposition, OutputStream stream) {
    { Symbol operator = Logic.SYM_STELLA_ASSERT;
      Surrogate name = ((Surrogate)(KeyValueList.dynamicSlotValue(proposition.dynamicSlots, Logic.SYM_STELLA_SURROGATE_VALUE_INVERSE, null)));
      TruthValue truthvalue = ((TruthValue)(Stella_Object.accessInContext(proposition.truthValue, proposition.homeContext, false)));

      if (name != null) {
        Logic.prettyPrintNamedRule(name, stream);
        return;
      }
      if ((truthvalue == Logic.DEFAULT_TRUE_TRUTH_VALUE) ||
          (truthvalue == Logic.DEFAULT_FALSE_TRUTH_VALUE)) {
        operator = Logic.SYM_LOGIC_PRESUME;
      }
      else if ((truthvalue == Logic.UNKNOWN_TRUTH_VALUE) ||
          (truthvalue == null)) {
        operator = Logic.SYM_STELLA_RETRACT;
      }
      { Object old$Printmode$000 = Logic.$PRINTMODE$.get();
        Object old$Printlogicalformstream$000 = Logic.$PRINTLOGICALFORMSTREAM$.get();
        Object old$Indentcounter$000 = Logic.$INDENTCOUNTER$.get();

        try {
          Native.setSpecial(Logic.$PRINTMODE$, Logic.KWD_ORIGINAL);
          Native.setSpecial(Logic.$PRINTLOGICALFORMSTREAM$, stream);
          Native.setIntSpecial(Logic.$INDENTCOUNTER$, 8);
          stream.nativeStream.print("(" + operator + " ");
          Logic.prettyPrintLogicalForm(proposition, stream);
          stream.nativeStream.println(")");

        } finally {
          Logic.$INDENTCOUNTER$.set(old$Indentcounter$000);
          Logic.$PRINTLOGICALFORMSTREAM$.set(old$Printlogicalformstream$000);
          Logic.$PRINTMODE$.set(old$Printmode$000);
        }
      }
    }
  }