∀ (pat : ByteArray) (stackPos : ℕ) (hst : stackPos < pat.size) (motive : ℕ → ℕ → Prop),
  (∀ (x : ℕ), String.Slice.Pattern.Model.ForwardSliceSearcher.PartialMatch✝ pat pat x (stackPos + 1) → motive x x) →
    (∀ (x : ℕ),
        ¬String.Slice.Pattern.Model.ForwardSliceSearcher.PartialMatch✝¹ pat pat x (stackPos + 1) →
          x ≠ 0 →
            motive (x - 1)
                (String.Slice.Pattern.Model.ForwardSliceSearcher.prefixFunction.go✝ pat stackPos hst (x - 1)) →
              motive x (String.Slice.Pattern.Model.ForwardSliceSearcher.prefixFunction.go✝¹ pat stackPos hst (x - 1))) →
      ∀ (k : ℕ), motive k (String.Slice.Pattern.Model.ForwardSliceSearcher.prefixFunction.go✝² pat stackPos hst k)