Length function for generic lists
问题 This post shows how to axiomatise a length function for Z3's built-in lists. However, the function is sort-specific (here Int) and not applicable to lists of bools or custom sorts. ; declare len as an uninterpreted function (declare-fun len ((List Int)) Int) ; assert defining equations for len as an axiom (assert (forall ((xs (List Int))) (ite (= nil xs) (= 0 (len xs)) (= (+ 1 (len (tail xs))) (len xs))))) What would be the smartest way of encoding sort-generic list functions? (If I remember