public static Stella_Object generateDescription(Description self) {
    if (Description.namedDescriptionP(self)) {
      return (Logic.internalStellaOperatorToKif(self.descriptionName()));
    }
    else if (((Description)(KeyValueList.dynamicSlotValue(self.dynamicSlots, Logic.SYM_LOGIC_COMPLEMENT_DESCRIPTION, null))) != null) {
      return (Cons.list$(Cons.cons(Logic.SYM_STELLA_NOT, Cons.cons(Logic.internalStellaOperatorToKif(((Description)(KeyValueList.dynamicSlotValue(self.dynamicSlots, Logic.SYM_LOGIC_COMPLEMENT_DESCRIPTION, null))).descriptionName()), Cons.cons(Stella.NIL, Stella.NIL)))));
    }
    else {
      return (Cons.list$(Cons.cons(Logic.SYM_LOGIC_KAPPA, Cons.cons(Logic.generateVariables(self.ioVariables, true), Cons.cons(Cons.cons(Description.generateDescriptionProposition(self, false), Stella.NIL), Stella.NIL)))));
    }
  }