Solving ../../benchmarks/false/append_length_le.smt2... Inference procedure has parameters: Ice fuel: 200 Timeout: 60s Convolution: right Learning problem is: env: { nat -> {s, z} ; natlist -> {cons, nil} } definition: { (append, F: {() -> append([nil, l2, l2]) (append([t1, l2, _kma])) -> append([cons(h1, t1), l2, cons(h1, _kma)])} (append([_lma, _mma, _nma]) /\ append([_lma, _mma, _oma])) -> eq_natlist([_nma, _oma]) ) (le, P: {() -> le([z, s(nn2)]) (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) (le([s(nn1), z])) -> BOT (le([z, z])) -> BOT} ) (length, F: {() -> length([nil, z]) (length([ll, _pma])) -> length([cons(x, ll), s(_pma)])} (length([_qma, _rma]) /\ length([_qma, _sma])) -> eq_nat([_rma, _sma]) ) } properties: {(append([l1, l2, _uma]) /\ length([_uma, _vma]) /\ length([l1, _tma])) -> le([_tma, _vma])} over-approximation: {append, length} under-approximation: {le} Clause system for inference is: { () -> append([nil, l2, l2]) -> 0 () -> le([z, s(nn2)]) -> 0 () -> length([nil, z]) -> 0 (append([l1, l2, _uma]) /\ length([_uma, _vma]) /\ length([l1, _tma])) -> le([_tma, _vma]) -> 0 (append([t1, l2, _kma])) -> append([cons(h1, t1), l2, cons(h1, _kma)]) -> 0 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 0 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 0 (le([s(nn1), z])) -> BOT -> 0 (le([z, z])) -> BOT -> 0 (length([ll, _pma])) -> length([cons(x, ll), s(_pma)]) -> 0 } Solving took 0.097906 seconds. Disproved ------------------- STEPS: ------------------------------------------- Step 0, which took 0.010291 s (model generation: 0.009819, model checking: 0.000472): Model: |_ { append -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; le -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; length -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 0 () -> le([z, s(nn2)]) -> 0 () -> length([nil, z]) -> 3 (append([l1, l2, _uma]) /\ length([_uma, _vma]) /\ length([l1, _tma])) -> le([_tma, _vma]) -> 1 (append([t1, l2, _kma])) -> append([cons(h1, t1), l2, cons(h1, _kma)]) -> 1 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 1 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 1 (le([s(nn1), z])) -> BOT -> 1 (le([z, z])) -> BOT -> 1 (length([ll, _pma])) -> length([cons(x, ll), s(_pma)]) -> 1 } Sat witness: Found: (() -> length([nil, z]), { }) ------------------------------------------- Step 1, which took 0.010507 s (model generation: 0.010389, model checking: 0.000118): Model: |_ { append -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; le -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_6863}, Q_f={q_gen_6863}, Delta= { () -> q_gen_6863 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 0 () -> le([z, s(nn2)]) -> 3 () -> length([nil, z]) -> 3 (append([l1, l2, _uma]) /\ length([_uma, _vma]) /\ length([l1, _tma])) -> le([_tma, _vma]) -> 1 (append([t1, l2, _kma])) -> append([cons(h1, t1), l2, cons(h1, _kma)]) -> 1 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 1 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 1 (le([s(nn1), z])) -> BOT -> 1 (le([z, z])) -> BOT -> 1 (length([ll, _pma])) -> length([cons(x, ll), s(_pma)]) -> 1 } Sat witness: Found: (() -> le([z, s(nn2)]), { nn2 -> z }) ------------------------------------------- Step 2, which took 0.010434 s (model generation: 0.010142, model checking: 0.000292): Model: |_ { append -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; le -> {{{ Q={q_gen_6864, q_gen_6865}, Q_f={q_gen_6864}, Delta= { () -> q_gen_6865 (q_gen_6865) -> q_gen_6864 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_6863}, Q_f={q_gen_6863}, Delta= { () -> q_gen_6863 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 3 () -> le([z, s(nn2)]) -> 3 () -> length([nil, z]) -> 3 (append([l1, l2, _uma]) /\ length([_uma, _vma]) /\ length([l1, _tma])) -> le([_tma, _vma]) -> 1 (append([t1, l2, _kma])) -> append([cons(h1, t1), l2, cons(h1, _kma)]) -> 1 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 1 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 1 (le([s(nn1), z])) -> BOT -> 1 (le([z, z])) -> BOT -> 1 (length([ll, _pma])) -> length([cons(x, ll), s(_pma)]) -> 1 } Sat witness: Found: (() -> append([nil, l2, l2]), { l2 -> nil }) ------------------------------------------- Step 3, which took 0.010420 s (model generation: 0.010221, model checking: 0.000199): Model: |_ { append -> {{{ Q={q_gen_6866}, Q_f={q_gen_6866}, Delta= { () -> q_gen_6866 } Datatype: Convolution form: right }}} ; le -> {{{ Q={q_gen_6864, q_gen_6865}, Q_f={q_gen_6864}, Delta= { () -> q_gen_6865 (q_gen_6865) -> q_gen_6864 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_6863}, Q_f={q_gen_6863}, Delta= { () -> q_gen_6863 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 3 () -> le([z, s(nn2)]) -> 3 () -> length([nil, z]) -> 3 (append([l1, l2, _uma]) /\ length([_uma, _vma]) /\ length([l1, _tma])) -> le([_tma, _vma]) -> 1 (append([t1, l2, _kma])) -> append([cons(h1, t1), l2, cons(h1, _kma)]) -> 1 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 1 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 1 (le([s(nn1), z])) -> BOT -> 1 (le([z, z])) -> BOT -> 1 (length([ll, _pma])) -> length([cons(x, ll), s(_pma)]) -> 4 } Sat witness: Found: ((length([ll, _pma])) -> length([cons(x, ll), s(_pma)]), { _pma -> z ; ll -> nil ; x -> z }) ------------------------------------------- Step 4, which took 0.010891 s (model generation: 0.010653, model checking: 0.000238): Model: |_ { append -> {{{ Q={q_gen_6866}, Q_f={q_gen_6866}, Delta= { () -> q_gen_6866 } Datatype: Convolution form: right }}} ; le -> {{{ Q={q_gen_6864, q_gen_6865}, Q_f={q_gen_6864}, Delta= { () -> q_gen_6865 (q_gen_6865) -> q_gen_6864 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_6863, q_gen_6868}, Q_f={q_gen_6863}, Delta= { () -> q_gen_6868 (q_gen_6868, q_gen_6863) -> q_gen_6863 () -> q_gen_6863 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 3 () -> le([z, s(nn2)]) -> 3 () -> length([nil, z]) -> 3 (append([l1, l2, _uma]) /\ length([_uma, _vma]) /\ length([l1, _tma])) -> le([_tma, _vma]) -> 1 (append([t1, l2, _kma])) -> append([cons(h1, t1), l2, cons(h1, _kma)]) -> 1 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 4 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 2 (le([s(nn1), z])) -> BOT -> 2 (le([z, z])) -> BOT -> 2 (length([ll, _pma])) -> length([cons(x, ll), s(_pma)]) -> 4 } Sat witness: Found: ((le([nn1, nn2])) -> le([s(nn1), s(nn2)]), { nn1 -> z ; nn2 -> s(z) }) ------------------------------------------- Step 5, which took 0.011213 s (model generation: 0.010843, model checking: 0.000370): Model: |_ { append -> {{{ Q={q_gen_6866}, Q_f={q_gen_6866}, Delta= { () -> q_gen_6866 } Datatype: Convolution form: right }}} ; le -> {{{ Q={q_gen_6864, q_gen_6865}, Q_f={q_gen_6864}, Delta= { () -> q_gen_6865 (q_gen_6864) -> q_gen_6864 (q_gen_6865) -> q_gen_6864 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_6863, q_gen_6868}, Q_f={q_gen_6863}, Delta= { () -> q_gen_6868 (q_gen_6868, q_gen_6863) -> q_gen_6863 () -> q_gen_6863 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 3 () -> le([z, s(nn2)]) -> 3 () -> length([nil, z]) -> 3 (append([l1, l2, _uma]) /\ length([_uma, _vma]) /\ length([l1, _tma])) -> le([_tma, _vma]) -> 1 (append([t1, l2, _kma])) -> append([cons(h1, t1), l2, cons(h1, _kma)]) -> 4 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 4 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 2 (le([s(nn1), z])) -> BOT -> 2 (le([z, z])) -> BOT -> 2 (length([ll, _pma])) -> length([cons(x, ll), s(_pma)]) -> 4 } Sat witness: Found: ((append([t1, l2, _kma])) -> append([cons(h1, t1), l2, cons(h1, _kma)]), { _kma -> nil ; h1 -> z ; l2 -> nil ; t1 -> nil }) ------------------------------------------- Step 6, which took 0.011358 s (model generation: 0.011155, model checking: 0.000203): Model: |_ { append -> {{{ Q={q_gen_6866, q_gen_6871, q_gen_6872}, Q_f={q_gen_6866}, Delta= { () -> q_gen_6871 () -> q_gen_6872 (q_gen_6872, q_gen_6871) -> q_gen_6866 () -> q_gen_6866 } Datatype: Convolution form: right }}} ; le -> {{{ Q={q_gen_6864, q_gen_6865}, Q_f={q_gen_6864}, Delta= { () -> q_gen_6865 (q_gen_6864) -> q_gen_6864 (q_gen_6865) -> q_gen_6864 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_6863, q_gen_6868}, Q_f={q_gen_6863}, Delta= { () -> q_gen_6868 (q_gen_6868, q_gen_6863) -> q_gen_6863 () -> q_gen_6863 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 3 () -> le([z, s(nn2)]) -> 3 () -> length([nil, z]) -> 3 (append([l1, l2, _uma]) /\ length([_uma, _vma]) /\ length([l1, _tma])) -> le([_tma, _vma]) -> 4 (append([t1, l2, _kma])) -> append([cons(h1, t1), l2, cons(h1, _kma)]) -> 4 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 4 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 2 (le([s(nn1), z])) -> BOT -> 2 (le([z, z])) -> BOT -> 2 (length([ll, _pma])) -> length([cons(x, ll), s(_pma)]) -> 4 } Sat witness: Found: ((append([l1, l2, _uma]) /\ length([_uma, _vma]) /\ length([l1, _tma])) -> le([_tma, _vma]), { _tma -> z ; _uma -> nil ; _vma -> z ; l1 -> nil ; l2 -> nil }) ------------------------------------------- Step 7, which took 0.011548 s (model generation: 0.011517, model checking: 0.000031): Model: |_ { append -> {{{ Q={q_gen_6866, q_gen_6871, q_gen_6872}, Q_f={q_gen_6866}, Delta= { () -> q_gen_6871 () -> q_gen_6872 (q_gen_6872, q_gen_6871) -> q_gen_6866 () -> q_gen_6866 } Datatype: Convolution form: right }}} ; le -> {{{ Q={q_gen_6864, q_gen_6865}, Q_f={q_gen_6864}, Delta= { () -> q_gen_6865 (q_gen_6864) -> q_gen_6864 (q_gen_6865) -> q_gen_6864 () -> q_gen_6864 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_6863, q_gen_6868}, Q_f={q_gen_6863}, Delta= { () -> q_gen_6868 (q_gen_6868, q_gen_6863) -> q_gen_6863 () -> q_gen_6863 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 3 () -> le([z, s(nn2)]) -> 3 () -> length([nil, z]) -> 3 (append([l1, l2, _uma]) /\ length([_uma, _vma]) /\ length([l1, _tma])) -> le([_tma, _vma]) -> 4 (append([t1, l2, _kma])) -> append([cons(h1, t1), l2, cons(h1, _kma)]) -> 4 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 4 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 2 (le([s(nn1), z])) -> BOT -> 2 (le([z, z])) -> BOT -> 5 (length([ll, _pma])) -> length([cons(x, ll), s(_pma)]) -> 4 } Sat witness: Found: ((le([z, z])) -> BOT, { }) Total time: 0.097906 Reason for stopping: Disproved