lista concat em z3

Existe uma maneira de concatenar duas listas no z3? Semelhante ao operador @ em ML? Eu estava pensando em defini-lo sozinho, mas eu não acho que o z3 suporta definições de funções recursivas, ou seja,

define-fun concat ( (List l1) (List l2) List 
   (ite (isNil l1) (l2) (concat (tail l1) (insert (head l1) l2)) )
)