public static SequenceIndex selectIsaPropositions(Cons pattern) {
    { Stella_Object renamed_Object = pattern.rest.rest.value;
      SequenceIndex index = Logic.unfilteredDependentIsaPropositions(renamed_Object);

      if (Surrogate.subtypeOfP(Stella_Object.safePrimaryType(index), Logic.SGT_LOGIC_PAGING_INDEX)) {
        { PagingIndex index000 = ((PagingIndex)(index));

          if (((Keyword)(index000.selectionPattern.value)) == Logic.KWD_ISA) {
            return (index000);
          }
        }
      }
      else {
      }
      { Cons sequence = index.theSequence;
        Cons filteredsequence = Stella.NIL;

        if (sequence == Stella.NIL) {
          return (Logic.NIL_NON_PAGING_INDEX);
        }
        { Proposition prop = null;
          Cons iter000 = sequence;

          for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
            prop = ((Proposition)(iter000.value));
            if ((prop.kind == Logic.KWD_ISA) &&
                (!prop.deletedP())) {
              filteredsequence = Cons.cons(prop, filteredsequence);
            }
          }
        }
        if (filteredsequence == Stella.NIL) {
          return (Logic.NIL_NON_PAGING_INDEX);
        }
        else {
          { NonPagingIndex self000 = NonPagingIndex.newNonPagingIndex();

            self000.theSequence = filteredsequence;
            { NonPagingIndex value000 = self000;

              return (value000);
            }
          }
        }
      }
    }
  }