public static Description evaluateDescriptionTerm(Cons term, boolean checkforduplicateP) {
    { Description description = Logic.createDescription(Stella.NULL_INTEGER, false);

      if (((GeneralizedSymbol)(term.value)) == Logic.SYM_LOGIC_THE_ONLY) {
        KeyValueList.setDynamicSlotValue(description.dynamicSlots, Logic.SYM_LOGIC_IOTAp, Stella.TRUE_WRAPPER, Stella.FALSE_WRAPPER);
      }
      else {
      }
      { Object old$Descriptionunderconstruction$000 = Logic.$DESCRIPTIONUNDERCONSTRUCTION$.get();
        Object old$Evaluationmode$000 = Logic.$EVALUATIONMODE$.get();
        Object old$Variableidcounter$000 = Logic.$VARIABLEIDCOUNTER$.get();

        try {
          Native.setSpecial(Logic.$DESCRIPTIONUNDERCONSTRUCTION$, description);
          Native.setSpecial(Logic.$EVALUATIONMODE$, Logic.KWD_DESCRIPTION);
          Native.setIntSpecial(Logic.$VARIABLEIDCOUNTER$, ((Integer)(Logic.$VARIABLEIDCOUNTER$.get())).intValue());
          { Cons iovars = null;
            Proposition proposition = null;
            Proposition unused = null;

            { Object [] caller_MV_returnarray = new Object[2];

              iovars = Logic.buildQuantifiedProposition(term, true, caller_MV_returnarray);
              proposition = ((Proposition)(caller_MV_returnarray[0]));
              unused = ((Proposition)(caller_MV_returnarray[1]));
            }
            unused = unused;
            description.ioVariables = Logic.copyConsListToVariablesVector(iovars);
            if (!(((Cons)(Logic.$LOGICVARIABLETABLE$.get())) == Stella.NIL)) {
              { Object old$Externalvariables$000 = Logic.$EXTERNALVARIABLES$.get();

                try {
                  Native.setSpecial(Logic.$EXTERNALVARIABLES$, Stella.NIL);
                  Proposition.collectExternalVariables(proposition);
                  if (!(((Cons)(Logic.$EXTERNALVARIABLES$.get())) == Stella.NIL)) {
                    KeyValueList.setDynamicSlotValue(description.dynamicSlots, Logic.SYM_LOGIC_EXTERNAL_VARIABLES, Logic.copyConsListToVariablesVector(((Cons)(Logic.$EXTERNALVARIABLES$.get()))), null);
                  }

                } finally {
                  Logic.$EXTERNALVARIABLES$.set(old$Externalvariables$000);
                }
              }
            }
            description.proposition = ((proposition != null) ? proposition : Logic.TRUE_PROPOSITION);
          }
          return (Description.finishBuildingDescription(description, checkforduplicateP, Logic.KWD_TOP_LEVEL));

        } finally {
          Logic.$VARIABLEIDCOUNTER$.set(old$Variableidcounter$000);
          Logic.$EVALUATIONMODE$.set(old$Evaluationmode$000);
          Logic.$DESCRIPTIONUNDERCONSTRUCTION$.set(old$Descriptionunderconstruction$000);
        }
      }
    }
  }