public static Skolem createLogicalList(List list) {
    { Proposition listprop = Logic.beginCreatingFunctionProposition(Logic.SGT_PL_KERNEL_KB_LISTOF, list.theConsList);
      Proposition duplicate = ((!Logic.descriptionModeP()) ? Proposition.findDuplicateFunctionProposition(listprop) : ((Proposition)(null)));
      Skolem skolem = null;

      if (duplicate != null) {
        return (((Skolem)((duplicate.arguments.theArray)[(duplicate.arguments.length() - 1)])));
      }
      { Object old$Context$000 = Stella.$CONTEXT$.get();
        Object old$Module$000 = Stella.$MODULE$.get();

        try {
          Native.setSpecial(Stella.$CONTEXT$, listprop.homeContext);
          Native.setSpecial(Stella.$MODULE$, ((Context)(Stella.$CONTEXT$.get())).baseModule);
          skolem = Logic.createSkolem(Logic.SGT_PL_KERNEL_KB_LIST, null);

        } finally {
          Stella.$MODULE$.set(old$Module$000);
          Stella.$CONTEXT$.set(old$Context$000);
        }
      }
      (listprop.arguments.theArray)[(list.length())] = skolem;
      skolem.definingProposition = listprop;
      Logic.addDependentPropositionLink(skolem, listprop);
      KeyValueList.setDynamicSlotValue(listprop.dynamicSlots, Logic.SYM_LOGIC_UNFASTENEDp, null, null);
      return (skolem);
    }
  }