; COMMAND-LINE: --quant-ind --conjecture-gen ; EXPECT: unsat (set-logic UFDTLIA) (set-info :status unsat) (declare-datatypes ((Nat 0)) (((succ (pred Nat)) (zero)) )) (declare-datatypes ((Lst 0)) (((cons (head Nat) (tail Lst)) (nil)) )) (declare-datatypes ((Tree 0)) (((node (data Nat) (left Tree) (right Tree)) (leaf)) )) (declare-datatypes ((Pair 0)(ZLst 0)) (((mkpair (first Nat) (second Nat))) ((zcons (zhead Pair) (ztail ZLst)) (znil)) )) (declare-fun P (Nat) Bool) (declare-fun f (Nat) Nat) (declare-fun less (Nat Nat) Bool) (declare-fun plus (Nat Nat) Nat) (declare-fun minus (Nat Nat) Nat) (declare-fun mult (Nat Nat) Nat) (declare-fun nmax (Nat Nat) Nat) (declare-fun nmin (Nat Nat) Nat) (declare-fun nat-to-int (Nat) Int) (declare-fun append (Lst Lst) Lst) (declare-fun len (Lst) Nat) (declare-fun drop (Nat Lst) Lst) (declare-fun take (Nat Lst) Lst) (declare-fun count (Nat Lst) Nat) (declare-fun last (Lst) Nat) (declare-fun butlast (Lst) Lst) (declare-fun mem (Nat Lst) Bool) (declare-fun delete (Nat Lst) Lst) (declare-fun rev (Lst) Lst) (declare-fun lmap (Lst) Lst) (declare-fun filter (Lst) Lst) (declare-fun dropWhile (Lst) Lst) (declare-fun takeWhile (Lst) Lst) (declare-fun ins1 (Nat Lst) Lst) (declare-fun insort (Nat Lst) Lst) (declare-fun sorted (Lst) Bool) (declare-fun sort (Lst) Lst) (declare-fun zip (Lst Lst) ZLst) (declare-fun zappend (ZLst ZLst) ZLst) (declare-fun zdrop (Nat ZLst) ZLst) (declare-fun ztake (Nat ZLst) ZLst) (declare-fun zrev (ZLst) ZLst) (declare-fun mirror (Tree) Tree) (declare-fun height (Tree) Nat) (define-fun leq ((x Nat) (y Nat)) Bool (or (= x y) (less x y))) (assert (forall ((x Nat)) (>= (nat-to-int x) 0) )) (assert (forall ((x Nat) (y Nat)) (=> (= (nat-to-int x) (nat-to-int y)) (= x y)) )) (assert (= (nat-to-int zero) 0)) (assert (forall ((x Nat)) (= (nat-to-int (succ x)) (+ 1 (nat-to-int x))) )) (assert (forall ((x Nat)) (= (less x zero) false) )) (assert (forall ((x Nat)) (= (less zero (succ x)) true) )) (assert (forall ((x Nat) (y Nat)) (= (less (succ x) (succ y)) (less x y)) )) (assert (forall ((x Nat) (y Nat)) (= (less x y) (< (nat-to-int x) (nat-to-int y))) )) (assert (= (len nil) zero)) (assert (forall ((x Nat) (y Lst)) (= (len (cons x y)) (succ (len y))) )) (assert (forall ((i Nat)) (= (insort i nil) (cons i nil)) )) (assert (forall ((i Nat) (x Nat) (y Lst)) (= (insort i (cons x y)) (ite (less i x) (cons i (cons x y)) (cons x (insort i y)))) )) (assert (= (sort nil) nil)) (assert (forall ((x Nat) (y Lst)) (= (sort (cons x y)) (insort x (sort y))) )) (assert (not (forall ((l Lst)) (= (len (sort l)) (len l)) ))) (check-sat) (exit)