(format LCTRS :logic QF_LIA) (fun insert 2 :sort (Int List List)) (fun sort 1 :sort (List List)) (fun cons 2 :sort (Int List List)) (fun nil 0 :sort (List)) (fun rev 1 :sort (List List)) (fun app 2 :sort (List List List)) (fun tsort 1 :sort (List List)) (fun flatten 1 :sort (List List)) (fun leaf 1 :sort (Int List)) (fun node 2 :sort (List List List)) (rule (app nil xs) xs) (rule (app (cons x xs) ys) (cons x (app xs ys))) (rule (insert x nil) (cons x nil)) (rule (insert x (cons y nil)) (cons x (cons y nil)) :guard (< x y)) (rule (insert x (cons y ys)) (cons y (insert x ys)) :guard (>= x y)) (rule (sort nil) nil) (rule (sort (cons x xs)) (insert x (sort xs))) (rule (flatten (leaf x)) (cons x nil)) (rule (flatten (node x y)) (app (flatten x) (flatten y))) (rule (node x y) (node y x)) (rule (tsort x) (sort (flatten x)))