Try this: [apply] [grind =] for pattern: [@getElem? (Vector #5 _) `[Nat] _ _ _ (@HAppend.hAppend (Vector _ #4) (Vector _ #3) (Vector _ _) _ #2 #1) #0] Try this: [apply] [grind =] for pattern: [@getElem? (List #2) `[Nat] _ _ _ (@dropLast _ #1) #0]