*/
  public static void unassertProposition(Proposition self) {
    if (self != null) {
      { boolean equivalenceP = self.kind == Logic.KWD_EQUIVALENT;

        if (Proposition.trueP(self)) {
          if (equivalenceP) {
            Proposition.updateEquivalenceProposition(self, Logic.KWD_RETRACT_TRUE);
          }
          else {
            Proposition.updatePropositionTruthValue(self, Logic.KWD_RETRACT_TRUE);
          }
        }
        else if (Proposition.falseP(self)) {
          if (equivalenceP) {
            Proposition.updateEquivalenceProposition(self, Logic.KWD_RETRACT_FALSE);
          }
          else {
            Proposition.updatePropositionTruthValue(self, Logic.KWD_RETRACT_FALSE);
          }
        }
        else if (Proposition.inconsistentP(self)) {
          if (equivalenceP) {
            Proposition.deassignTruthValue(self, Logic.KWD_RETRACT_INCONSISTENT);
            Proposition.updateEquivalenceProposition(self, Logic.KWD_RETRACT_TRUE);
            Proposition.updateEquivalenceProposition(self, Logic.KWD_RETRACT_FALSE);
          }
          else {
            Proposition.deassignTruthValue(self, Logic.KWD_RETRACT_INCONSISTENT);
            Proposition.updatePropositionTruthValue(self, Logic.KWD_RETRACT_TRUE);
            Proposition.updatePropositionTruthValue(self, Logic.KWD_RETRACT_FALSE);
          }
        }
      }
    }
  }