def f (xs ys : List α) : Nat := match xs, ys with | [], [] => 0 | _, [] => 1 | _, _ => 2 #check fun {α : Type} (motive : List α → List α → Type) (h1 : Unit → motive [] []) (h2 : (x : List α) → motive x []) (h3 : (x x_1 : List α) → motive x x_1) => f.match_1 (motive := motive) [] [] h1 h2 h3