∀ {s : String.Slice} (motive : String.Slice.Pattern.SearchStep s → Sort u_1) (s_1 endPos : s.Pos)
  (h_1 : (s_2 endPos : s.Pos) → motive (String.Slice.Pattern.SearchStep.matched s_2 endPos))
  (h_2 : (startPos endPos : s.Pos) → motive (String.Slice.Pattern.SearchStep.rejected startPos endPos)),
  (match String.Slice.Pattern.SearchStep.matched s_1 endPos with
    | String.Slice.Pattern.SearchStep.matched s_2 endPos => h_1 s_2 endPos
    | String.Slice.Pattern.SearchStep.rejected startPos endPos => h_2 startPos endPos) =
    h_1 s_1 endPos