public static void startupSpecialists() {
    { Object old$Module$000 = Stella.$MODULE$.get();
      Object old$Context$000 = Stella.$CONTEXT$.get();

      try {
        Native.setSpecial(Stella.$MODULE$, Stella.getStellaModule("/LOGIC", Stella.$STARTUP_TIME_PHASE$ > 1));
        Native.setSpecial(Stella.$CONTEXT$, ((Module)(Stella.$MODULE$.get())));
        if (Stella.currentStartupTimePhaseP(2)) {
          _StartupSpecialists.helpStartupSpecialists1();
          Logic.SGT_PL_KERNEL_KB_SUPERRELATION = ((Surrogate)(GeneralizedSymbol.internRigidSymbolWrtModule("SUPERRELATION", Stella.getStellaModule("/PL-KERNEL-KB", true), 1)));
          Logic.SGT_PL_KERNEL_KB_PROPER_SUBRELATION = ((Surrogate)(GeneralizedSymbol.internRigidSymbolWrtModule("PROPER-SUBRELATION", Stella.getStellaModule("/PL-KERNEL-KB", true), 1)));
          Logic.SGT_PL_KERNEL_KB_PROPER_SUPERRELATION = ((Surrogate)(GeneralizedSymbol.internRigidSymbolWrtModule("PROPER-SUPERRELATION", Stella.getStellaModule("/PL-KERNEL-KB", true), 1)));
          Logic.SGT_PL_KERNEL_KB_EQUIVALENT_RELATION = ((Surrogate)(GeneralizedSymbol.internRigidSymbolWrtModule("EQUIVALENT-RELATION", Stella.getStellaModule("/PL-KERNEL-KB", true), 1)));
          Logic.SGT_PL_KERNEL_KB_SYNONYM = ((Surrogate)(GeneralizedSymbol.internRigidSymbolWrtModule("SYNONYM", Stella.getStellaModule("/PL-KERNEL-KB", true), 1)));
          Logic.SYM_LOGIC_STARTUP_SPECIALISTS = ((Symbol)(GeneralizedSymbol.internRigidSymbolWrtModule("STARTUP-SPECIALISTS", null, 0)));
        }
        if (Stella.currentStartupTimePhaseP(5)) {
          { Stella_Class renamed_Class = Stella.defineClassFromStringifiedSource("COMPUTED-PROCEDURE", "(DEFCLASS COMPUTED-PROCEDURE (THING) :DOCUMENTATION \"Each instance denotes a programming language \nfunction that computes some procedure.  The slot 'procedure-name'\nprovides the name of the procedure.  The slot 'procedure-function'\npoints to the STELLA function object carrying out the computation.\nIf neither is supplied, the procedure will be looked up by extracting\nits name from the name of the instance.  Pointing to a function object\ninstead of just the code gives us access to argument type information.\nNote that we support external non-STELLA functions by creating a dummy\nSTELLA function object during registration of the computation (see\n`register-computation-function' and friends).\" :PUBLIC? TRUE :PUBLIC-SLOTS ((PROCEDURE-NAME :TYPE SYMBOL) (PROCEDURE-FUNCTION :TYPE FUNCTION)))");

            renamed_Class.classConstructorCode = Native.find_java_method("edu.isi.powerloom.logic.ComputedProcedure", "newComputedProcedure", new java.lang.Class [] {});
            renamed_Class.classSlotAccessorCode = Native.find_java_method("edu.isi.powerloom.logic.ComputedProcedure", "accessComputedProcedureSlotValue", new java.lang.Class [] {Native.find_java_class("edu.isi.powerloom.logic.ComputedProcedure"), Native.find_java_class("edu.isi.stella.Symbol"), Native.find_java_class("edu.isi.stella.Stella_Object"), java.lang.Boolean.TYPE});
          }
          { Stella_Class renamed_Class = Stella.defineClassFromStringifiedSource("SUBSTRING-POSITION-ITERATOR", "(DEFCLASS SUBSTRING-POSITION-ITERATOR (ITERATOR) :SLOTS ((SUPER-STRING :TYPE STRING :REQUIRED? TRUE) (SUB-STRING :TYPE STRING :REQUIRED? TRUE) (START :TYPE INTEGER :INITIALLY 0) (SUB-LENGTH :TYPE INTEGER :INITIALLY (LENGTH (SUB-STRING SELF)))))");

            renamed_Class.classConstructorCode = Native.find_java_method("edu.isi.powerloom.logic.SubstringPositionIterator", "newSubstringPositionIterator", new java.lang.Class [] {Native.find_java_class("java.lang.String"), Native.find_java_class("java.lang.String")});
            renamed_Class.classSlotAccessorCode = Native.find_java_method("edu.isi.powerloom.logic.SubstringPositionIterator", "accessSubstringPositionIteratorSlotValue", new java.lang.Class [] {Native.find_java_class("edu.isi.powerloom.logic.SubstringPositionIterator"), Native.find_java_class("edu.isi.stella.Symbol"), Native.find_java_class("edu.isi.stella.Stella_Object"), java.lang.Boolean.TYPE});
          }
          { Stella_Class renamed_Class = Stella.defineClassFromStringifiedSource("FORK-PROOF-ADJUNCT", "(DEFCLASS FORK-PROOF-ADJUNCT (PROOF-ADJUNCT) :SLOTS ((CONDITION-JUSTIFICATION :TYPE JUSTIFICATION) (DOWN-FRAME :TYPE CONTROL-FRAME)))");

            renamed_Class.classConstructorCode = Native.find_java_method("edu.isi.powerloom.logic.ForkProofAdjunct", "newForkProofAdjunct", new java.lang.Class [] {});
            renamed_Class.classSlotAccessorCode = Native.find_java_method("edu.isi.powerloom.logic.ForkProofAdjunct", "accessForkProofAdjunctSlotValue", new java.lang.Class [] {Native.find_java_class("edu.isi.powerloom.logic.ForkProofAdjunct"), Native.find_java_class("edu.isi.stella.Symbol"), Native.find_java_class("edu.isi.stella.Stella_Object"), java.lang.Boolean.TYPE});
          }
          { Stella_Class renamed_Class = Stella.defineClassFromStringifiedSource("SAVED-INFERENCE-LEVEL-PROOF-ADJUNCT", "(DEFCLASS SAVED-INFERENCE-LEVEL-PROOF-ADJUNCT (PROOF-ADJUNCT) :SLOTS ((SAVED-INFERENCE-LEVEL :TYPE INFERENCE-LEVEL) (INFERENCE-LEVEL :TYPE INFERENCE-LEVEL) (DOWN-FRAME :TYPE CONTROL-FRAME)))");

            renamed_Class.classConstructorCode = Native.find_java_method("edu.isi.powerloom.logic.SavedInferenceLevelProofAdjunct", "newSavedInferenceLevelProofAdjunct", new java.lang.Class [] {});
            renamed_Class.classSlotAccessorCode = Native.find_java_method("edu.isi.powerloom.logic.SavedInferenceLevelProofAdjunct", "accessSavedInferenceLevelProofAdjunctSlotValue", new java.lang.Class [] {Native.find_java_class("edu.isi.powerloom.logic.SavedInferenceLevelProofAdjunct"), Native.find_java_class("edu.isi.stella.Symbol"), Native.find_java_class("edu.isi.stella.Stella_Object"), java.lang.Boolean.TYPE});
          }
          { Stella_Class renamed_Class = Stella.defineClassFromStringifiedSource("SAVED-CONTEXT-PROOF-ADJUNCT", "(DEFCLASS SAVED-CONTEXT-PROOF-ADJUNCT (PROOF-ADJUNCT) :SLOTS ((SAVED-CONTEXT :TYPE CONTEXT) (DOWN-FRAME :TYPE CONTROL-FRAME)))");

            renamed_Class.classConstructorCode = Native.find_java_method("edu.isi.powerloom.logic.SavedContextProofAdjunct", "newSavedContextProofAdjunct", new java.lang.Class [] {});
            renamed_Class.classSlotAccessorCode = Native.find_java_method("edu.isi.powerloom.logic.SavedContextProofAdjunct", "accessSavedContextProofAdjunctSlotValue", new java.lang.Class [] {Native.find_java_class("edu.isi.powerloom.logic.SavedContextProofAdjunct"), Native.find_java_class("edu.isi.stella.Symbol"), Native.find_java_class("edu.isi.stella.Stella_Object"), java.lang.Boolean.TYPE});
          }
        }
        if (Stella.currentStartupTimePhaseP(6)) {
          Stella.finalizeClasses();
        }
        if (Stella.currentStartupTimePhaseP(7)) {
          _StartupSpecialists.helpStartupSpecialists2();
          _StartupSpecialists.helpStartupSpecialists3();
        }
        if (Stella.currentStartupTimePhaseP(8)) {
          Stella.finalizeSlots();
          Stella.cleanupUnfinalizedClasses();
        }
        if (Stella.currentStartupTimePhaseP(9)) {
          Stella_Object.inModule(((StringWrapper)(Stella_Object.copyConsTree(StringWrapper.wrapString("LOGIC")))));
          Logic.defineExplanationPhrase(Logic.KWD_FORK_THEN, Logic.KWD_TECHNICAL, "by FORK-introduction of its THEN argument", Stella.NIL);
          Logic.defineExplanationPhrase(Logic.KWD_FORK_THEN, Logic.KWD_LAY, "since the condition and THEN-clause of a FORK-proposition succeeded", Stella.NIL);
          Logic.defineExplanationPhrase(Logic.KWD_FORK_ELSE, Logic.KWD_TECHNICAL, "by FORK-introduction of its ELSE argument", Stella.NIL);
          Logic.defineExplanationPhrase(Logic.KWD_FORK_ELSE, Logic.KWD_LAY, "since the condition and ELSE-clause of a FORK-proposition succeeded", Stella.NIL);
          Stella.defineStellaGlobalVariableFromStringifiedSource("(DEFGLOBAL *PROTOTYPE-ID-COUNTER* INTEGER 0)");
          Logic.defineExplanationPhrase(Logic.KWD_COLLECT_MEMBERS, Logic.KWD_TECHNICAL, "since it was proven by the COLLECT-MEMBERS specialist", Stella.NIL);
          Logic.defineExplanationPhrase(Logic.KWD_COLLECT_MEMBERS, Logic.KWD_LAY, "because of a specialized COLLECT-MEMBERS reasoning procedure", Stella.NIL);
          Logic.defineExplanationPhrase(Logic.KWD_IST_INTRODUCTION, Logic.KWD_TECHNICAL, "by IST-Introduction", Stella.NIL);
          Logic.defineExplanationPhrase(Logic.KWD_IST_INTRODUCTION, Logic.KWD_LAY, "because its argument is true", Stella.NIL);
          Logic.defineExplanationPhrase(Logic.KWD_IST_INTRODUCTION, Logic.KWD_LAY, "because its argument is partly true", Cons.cons(Logic.KWD_PARTIAL, Stella.NIL));
          Stella.defineStellaGlobalVariableFromStringifiedSource("(DEFGLOBAL *ACCELERATE-FRAME-COMPUTATIONS?* BOOLEAN TRUE :DOCUMENTATION \"Used to test how big is the effect of the frame\nspecialists.\")");
        }

      } finally {
        Stella.$CONTEXT$.set(old$Context$000);
        Stella.$MODULE$.set(old$Module$000);
      }
    }
  }