public static void updateDescriptionExtension(Proposition self) {
    if (Logic.descriptionModeP() ||
        ((BooleanWrapper)(KeyValueList.dynamicSlotValue(self.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTIVEp, Stella.FALSE_WRAPPER))).wrapperValue) {
      return;
    }
    { Keyword testValue000 = self.kind;

      if ((testValue000 == Logic.KWD_ISA) ||
          ((testValue000 == Logic.KWD_PREDICATE) ||
           (testValue000 == Logic.KWD_FUNCTION))) {
        { NamedDescription description = Logic.getDescription(((Surrogate)(self.operator)));

          { Stella_Object arg = null;
            Vector vector000 = self.arguments;
            int index000 = 0;
            int length000 = vector000.length();

            for (;index000 < length000; index000 = index000 + 1) {
              arg = (vector000.theArray)[index000];
              { Surrogate testValue001 = Stella_Object.safePrimaryType(arg);

                if (Surrogate.subtypeOfP(testValue001, Logic.SGT_LOGIC_PATTERN_VARIABLE)) {
                  { PatternVariable arg000 = ((PatternVariable)(arg));

                    return;
                  }
                }
                else if (Surrogate.subtypeOfP(testValue001, Logic.SGT_LOGIC_SKOLEM)) {
                  { Skolem arg000 = ((Skolem)(arg));

                    if ((NamedDescription.classDescriptionP(description) &&
                        Logic.literalTypeP(description.surrogateValueInverse)) ||
                        (((Boolean)(Logic.$SUPPRESSINSERTIONINTOCLASSEXTENSIONp$.get())).booleanValue() ||
                         ((BooleanWrapper)(KeyValueList.dynamicSlotValue(arg000.dynamicSlots, Logic.SYM_LOGIC_HYPOTHESIZED_INSTANCEp, Stella.FALSE_WRAPPER))).wrapperValue)) {
                      return;
                    }
                  }
                }
                else if (Surrogate.subtypeOfP(testValue001, Logic.SGT_LOGIC_LOGIC_OBJECT)) {
                  { LogicObject arg000 = ((LogicObject)(arg));

                    if (((BooleanWrapper)(KeyValueList.dynamicSlotValue(arg000.dynamicSlots, Logic.SYM_LOGIC_HYPOTHESIZED_INSTANCEp, Stella.FALSE_WRAPPER))).wrapperValue) {
                      return;
                    }
                  }
                }
                else {
                }
              }
            }
          }
          { SequenceIndex extension = NamedDescription.getDescriptionExtension(description, true);

            if (!((Boolean)(Logic.$LOADINGREGENERABLEOBJECTSp$.get())).booleanValue()) {
              extension.insert(self);
            }
          }
        }
      }
      else {
      }
    }
  }