Solving ../../benchmarks/false/append_length_le.smt2... Inference procedure has parameters: Ice fuel: 200 Timeout: 60s Convolution: left Learning problem is: env: { nat -> {s, z} ; natlist -> {cons, nil} } definition: { (append, F: {() -> append([nil, l2, l2]) (append([t1, l2, _wka])) -> append([cons(h1, t1), l2, cons(h1, _wka)])} (append([_xka, _yka, _ala]) /\ append([_xka, _yka, _zka])) -> eq_natlist([_zka, _ala]) ) (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, _bla])) -> length([cons(x, ll), s(_bla)])} (length([_cla, _dla]) /\ length([_cla, _ela])) -> eq_nat([_dla, _ela]) ) } properties: {(append([l1, l2, _gla]) /\ length([_gla, _hla]) /\ length([l1, _fla])) -> le([_fla, _hla])} 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, _gla]) /\ length([_gla, _hla]) /\ length([l1, _fla])) -> le([_fla, _hla]) -> 0 (append([t1, l2, _wka])) -> append([cons(h1, t1), l2, cons(h1, _wka)]) -> 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, _bla])) -> length([cons(x, ll), s(_bla)]) -> 0 } Solving took 0.164853 seconds. Disproved ------------------- STEPS: ------------------------------------------- Step 0, which took 0.017769 s (model generation: 0.016173, model checking: 0.001596): Model: |_ { append -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: left }}} ; le -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: left }}} ; length -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: left }}} } -- 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, _gla]) /\ length([_gla, _hla]) /\ length([l1, _fla])) -> le([_fla, _hla]) -> 1 (append([t1, l2, _wka])) -> append([cons(h1, t1), l2, cons(h1, _wka)]) -> 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, _bla])) -> length([cons(x, ll), s(_bla)]) -> 1 } Sat witness: Found: (() -> length([nil, z]), { }) ------------------------------------------- Step 1, which took 0.016544 s (model generation: 0.016413, model checking: 0.000131): Model: |_ { append -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: left }}} ; le -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: left }}} ; length -> {{{ Q={q_gen_8998}, Q_f={q_gen_8998}, Delta= { () -> q_gen_8998 } Datatype: Convolution form: left }}} } -- 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, _gla]) /\ length([_gla, _hla]) /\ length([l1, _fla])) -> le([_fla, _hla]) -> 1 (append([t1, l2, _wka])) -> append([cons(h1, t1), l2, cons(h1, _wka)]) -> 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, _bla])) -> length([cons(x, ll), s(_bla)]) -> 1 } Sat witness: Found: (() -> le([z, s(nn2)]), { nn2 -> z }) ------------------------------------------- Step 2, which took 0.017406 s (model generation: 0.016973, model checking: 0.000433): Model: |_ { append -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: left }}} ; le -> {{{ Q={q_gen_8999, q_gen_9000}, Q_f={q_gen_8999}, Delta= { () -> q_gen_9000 (q_gen_9000) -> q_gen_8999 } Datatype: Convolution form: left }}} ; length -> {{{ Q={q_gen_8998}, Q_f={q_gen_8998}, Delta= { () -> q_gen_8998 } Datatype: Convolution form: left }}} } -- 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, _gla]) /\ length([_gla, _hla]) /\ length([l1, _fla])) -> le([_fla, _hla]) -> 1 (append([t1, l2, _wka])) -> append([cons(h1, t1), l2, cons(h1, _wka)]) -> 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, _bla])) -> length([cons(x, ll), s(_bla)]) -> 1 } Sat witness: Found: (() -> append([nil, l2, l2]), { l2 -> nil }) ------------------------------------------- Step 3, which took 0.017633 s (model generation: 0.017412, model checking: 0.000221): Model: |_ { append -> {{{ Q={q_gen_9001}, Q_f={q_gen_9001}, Delta= { () -> q_gen_9001 } Datatype: Convolution form: left }}} ; le -> {{{ Q={q_gen_8999, q_gen_9000}, Q_f={q_gen_8999}, Delta= { () -> q_gen_9000 (q_gen_9000) -> q_gen_8999 } Datatype: Convolution form: left }}} ; length -> {{{ Q={q_gen_8998}, Q_f={q_gen_8998}, Delta= { () -> q_gen_8998 } Datatype: Convolution form: left }}} } -- 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, _gla]) /\ length([_gla, _hla]) /\ length([l1, _fla])) -> le([_fla, _hla]) -> 1 (append([t1, l2, _wka])) -> append([cons(h1, t1), l2, cons(h1, _wka)]) -> 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, _bla])) -> length([cons(x, ll), s(_bla)]) -> 4 } Sat witness: Found: ((length([ll, _bla])) -> length([cons(x, ll), s(_bla)]), { _bla -> z ; ll -> nil ; x -> z }) ------------------------------------------- Step 4, which took 0.018355 s (model generation: 0.018089, model checking: 0.000266): Model: |_ { append -> {{{ Q={q_gen_9001}, Q_f={q_gen_9001}, Delta= { () -> q_gen_9001 } Datatype: Convolution form: left }}} ; le -> {{{ Q={q_gen_8999, q_gen_9000}, Q_f={q_gen_8999}, Delta= { () -> q_gen_9000 (q_gen_9000) -> q_gen_8999 } Datatype: Convolution form: left }}} ; length -> {{{ Q={q_gen_8998, q_gen_9003, q_gen_9004}, Q_f={q_gen_8998}, Delta= { () -> q_gen_9003 (q_gen_9004, q_gen_9003) -> q_gen_8998 () -> q_gen_8998 () -> q_gen_9004 } Datatype: Convolution form: left }}} } -- 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, _gla]) /\ length([_gla, _hla]) /\ length([l1, _fla])) -> le([_fla, _hla]) -> 1 (append([t1, l2, _wka])) -> append([cons(h1, t1), l2, cons(h1, _wka)]) -> 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, _bla])) -> length([cons(x, ll), s(_bla)]) -> 4 } Sat witness: Found: ((le([nn1, nn2])) -> le([s(nn1), s(nn2)]), { nn1 -> z ; nn2 -> s(z) }) ------------------------------------------- Step 5, which took 0.019356 s (model generation: 0.018942, model checking: 0.000414): Model: |_ { append -> {{{ Q={q_gen_9001}, Q_f={q_gen_9001}, Delta= { () -> q_gen_9001 } Datatype: Convolution form: left }}} ; le -> {{{ Q={q_gen_8999, q_gen_9000}, Q_f={q_gen_8999}, Delta= { () -> q_gen_9000 (q_gen_8999) -> q_gen_8999 (q_gen_9000) -> q_gen_8999 } Datatype: Convolution form: left }}} ; length -> {{{ Q={q_gen_8998, q_gen_9003, q_gen_9004}, Q_f={q_gen_8998}, Delta= { () -> q_gen_9003 (q_gen_9004, q_gen_9003) -> q_gen_8998 () -> q_gen_8998 () -> q_gen_9004 } Datatype: Convolution form: left }}} } -- 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, _gla]) /\ length([_gla, _hla]) /\ length([l1, _fla])) -> le([_fla, _hla]) -> 1 (append([t1, l2, _wka])) -> append([cons(h1, t1), l2, cons(h1, _wka)]) -> 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, _bla])) -> length([cons(x, ll), s(_bla)]) -> 4 } Sat witness: Found: ((append([t1, l2, _wka])) -> append([cons(h1, t1), l2, cons(h1, _wka)]), { _wka -> nil ; h1 -> z ; l2 -> nil ; t1 -> nil }) ------------------------------------------- Step 6, which took 0.019114 s (model generation: 0.018897, model checking: 0.000217): Model: |_ { append -> {{{ Q={q_gen_9001, q_gen_9007, q_gen_9008}, Q_f={q_gen_9001}, Delta= { () -> q_gen_9007 () -> q_gen_9008 (q_gen_9008, q_gen_9007) -> q_gen_9001 () -> q_gen_9001 } Datatype: Convolution form: left }}} ; le -> {{{ Q={q_gen_8999, q_gen_9000}, Q_f={q_gen_8999}, Delta= { () -> q_gen_9000 (q_gen_8999) -> q_gen_8999 (q_gen_9000) -> q_gen_8999 } Datatype: Convolution form: left }}} ; length -> {{{ Q={q_gen_8998, q_gen_9003, q_gen_9004}, Q_f={q_gen_8998}, Delta= { () -> q_gen_9003 (q_gen_9004, q_gen_9003) -> q_gen_8998 () -> q_gen_8998 () -> q_gen_9004 } Datatype: Convolution form: left }}} } -- 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, _gla]) /\ length([_gla, _hla]) /\ length([l1, _fla])) -> le([_fla, _hla]) -> 4 (append([t1, l2, _wka])) -> append([cons(h1, t1), l2, cons(h1, _wka)]) -> 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, _bla])) -> length([cons(x, ll), s(_bla)]) -> 4 } Sat witness: Found: ((append([l1, l2, _gla]) /\ length([_gla, _hla]) /\ length([l1, _fla])) -> le([_fla, _hla]), { _fla -> z ; _gla -> nil ; _hla -> z ; l1 -> nil ; l2 -> nil }) ------------------------------------------- Step 7, which took 0.020088 s (model generation: 0.020054, model checking: 0.000034): Model: |_ { append -> {{{ Q={q_gen_9001, q_gen_9007, q_gen_9008}, Q_f={q_gen_9001}, Delta= { () -> q_gen_9007 () -> q_gen_9008 (q_gen_9008, q_gen_9007) -> q_gen_9001 () -> q_gen_9001 } Datatype: Convolution form: left }}} ; le -> {{{ Q={q_gen_8999, q_gen_9000}, Q_f={q_gen_8999}, Delta= { () -> q_gen_9000 (q_gen_8999) -> q_gen_8999 (q_gen_9000) -> q_gen_8999 () -> q_gen_8999 } Datatype: Convolution form: left }}} ; length -> {{{ Q={q_gen_8998, q_gen_9003, q_gen_9004}, Q_f={q_gen_8998}, Delta= { () -> q_gen_9003 (q_gen_9004, q_gen_9003) -> q_gen_8998 () -> q_gen_8998 () -> q_gen_9004 } Datatype: Convolution form: left }}} } -- 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, _gla]) /\ length([_gla, _hla]) /\ length([l1, _fla])) -> le([_fla, _hla]) -> 4 (append([t1, l2, _wka])) -> append([cons(h1, t1), l2, cons(h1, _wka)]) -> 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, _bla])) -> length([cons(x, ll), s(_bla)]) -> 4 } Sat witness: Found: ((le([z, z])) -> BOT, { }) Total time: 0.164853 Reason for stopping: Disproved