set_option new_elaborator true

definition f : bool → bool → nat
| _ _ := 10

example : f tt tt = 10 :=
rfl

definition g : bool → bool → bool → nat
| tt _  tt := 1
| _  ff ff := 2
| _  _  _  := 3

example : g tt tt tt = 1 := rfl
example : g tt ff tt = 1 := rfl
example : g tt ff ff = 2 := rfl
example : g ff ff ff = 2 := rfl
example : g ff tt tt = 3 := rfl
