Inference procedure has parameters: Ice fuel: 200 Timeout: 60s Convolution: right Learning problem is: env: { nat -> {s, z} ; natlist -> {cons, nil} } definition: { (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, _tr])) -> length([cons(x, ll), s(_tr)])} (length([_ur, _vr]) /\ length([_ur, _wr])) -> eq_nat([_vr, _wr]) ) (fcons, F: {() -> fcons([x, l, cons(x, l)])} (fcons([_xr, _yr, _as]) /\ fcons([_xr, _yr, _zr])) -> eq_natlist([_zr, _as]) ) } properties: {(fcons([x, l, _cs]) /\ length([_cs, _ds]) /\ length([l, _bs])) -> le([_bs, _ds])} over-approximation: {fcons, length} under-approximation: {le} Clause system for inference is: { () -> fcons([x, l, cons(x, l)]) -> 0 () -> le([z, s(nn2)]) -> 0 () -> length([nil, z]) -> 0 (fcons([x, l, _cs]) /\ length([_cs, _ds]) /\ length([l, _bs])) -> le([_bs, _ds]) -> 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, _tr])) -> length([cons(x, ll), s(_tr)]) -> 0 } Solving took 60.000033 seconds. DontKnow. Stopped because: timeout Working model: |_ { fcons -> {{{ Q={q_gen_3511, q_gen_3512, q_gen_3513, q_gen_3519, q_gen_3520, q_gen_3521, q_gen_3522, q_gen_3523, q_gen_3526, q_gen_3527, q_gen_3528, q_gen_3529, q_gen_3530, q_gen_3531, q_gen_3532, q_gen_3533, q_gen_3534, q_gen_3535, q_gen_3536, q_gen_3537, q_gen_3538}, Q_f={}, Delta= { () -> q_gen_3512 () -> q_gen_3513 (q_gen_3513) -> q_gen_3528 (q_gen_3528) -> q_gen_3531 (q_gen_3513, q_gen_3512) -> q_gen_3521 () -> q_gen_3522 (q_gen_3513) -> q_gen_3523 () -> q_gen_3527 (q_gen_3513) -> q_gen_3530 (q_gen_3535) -> q_gen_3534 (q_gen_3513) -> q_gen_3535 (q_gen_3522, q_gen_3521) -> q_gen_3538 (q_gen_3513, q_gen_3512) -> q_gen_3511 (q_gen_3523, q_gen_3520) -> q_gen_3519 (q_gen_3522, q_gen_3521) -> q_gen_3520 (q_gen_3528, q_gen_3527) -> q_gen_3526 (q_gen_3531, q_gen_3530) -> q_gen_3529 (q_gen_3534, q_gen_3533) -> q_gen_3532 (q_gen_3531, q_gen_3512) -> q_gen_3533 (q_gen_3523, q_gen_3537) -> q_gen_3536 (q_gen_3522, q_gen_3538) -> q_gen_3537 } Datatype: Convolution form: right }}} ; le -> {{{ Q={q_gen_3509, q_gen_3510, q_gen_3516, q_gen_3517, q_gen_3518}, Q_f={}, Delta= { () -> q_gen_3510 (q_gen_3510) -> q_gen_3518 (q_gen_3510) -> q_gen_3509 (q_gen_3509) -> q_gen_3516 (q_gen_3518) -> q_gen_3517 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_3508, q_gen_3514, q_gen_3515, q_gen_3524, q_gen_3525}, Q_f={}, Delta= { () -> q_gen_3515 (q_gen_3515) -> q_gen_3525 () -> q_gen_3508 (q_gen_3515, q_gen_3508) -> q_gen_3514 (q_gen_3525, q_gen_3508) -> q_gen_3524 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.005497 s (model generation: 0.005120, model checking: 0.000377): Model: |_ { fcons -> {{{ 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: { () -> fcons([x, l, cons(x, l)]) -> 0 () -> le([z, s(nn2)]) -> 0 () -> length([nil, z]) -> 3 (fcons([x, l, _cs]) /\ length([_cs, _ds]) /\ length([l, _bs])) -> le([_bs, _ds]) -> 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, _tr])) -> length([cons(x, ll), s(_tr)]) -> 1 } Sat witness: Found: (() -> length([nil, z]), { }) ------------------------------------------- Step 1, which took 0.004749 s (model generation: 0.004592, model checking: 0.000157): Model: |_ { fcons -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; le -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_3508}, Q_f={q_gen_3508}, Delta= { () -> q_gen_3508 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> fcons([x, l, cons(x, l)]) -> 0 () -> le([z, s(nn2)]) -> 3 () -> length([nil, z]) -> 3 (fcons([x, l, _cs]) /\ length([_cs, _ds]) /\ length([l, _bs])) -> le([_bs, _ds]) -> 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, _tr])) -> length([cons(x, ll), s(_tr)]) -> 1 } Sat witness: Found: (() -> le([z, s(nn2)]), { nn2 -> z }) ------------------------------------------- Step 2, which took 0.005051 s (model generation: 0.004735, model checking: 0.000316): Model: |_ { fcons -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; le -> {{{ Q={q_gen_3509, q_gen_3510}, Q_f={q_gen_3509}, Delta= { () -> q_gen_3510 (q_gen_3510) -> q_gen_3509 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_3508}, Q_f={q_gen_3508}, Delta= { () -> q_gen_3508 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> fcons([x, l, cons(x, l)]) -> 3 () -> le([z, s(nn2)]) -> 3 () -> length([nil, z]) -> 3 (fcons([x, l, _cs]) /\ length([_cs, _ds]) /\ length([l, _bs])) -> le([_bs, _ds]) -> 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, _tr])) -> length([cons(x, ll), s(_tr)]) -> 1 } Sat witness: Found: (() -> fcons([x, l, cons(x, l)]), { l -> nil ; x -> z }) ------------------------------------------- Step 3, which took 0.005839 s (model generation: 0.004516, model checking: 0.001323): Model: |_ { fcons -> {{{ Q={q_gen_3511, q_gen_3512, q_gen_3513}, Q_f={q_gen_3511}, Delta= { () -> q_gen_3512 () -> q_gen_3513 (q_gen_3513, q_gen_3512) -> q_gen_3511 } Datatype: Convolution form: right }}} ; le -> {{{ Q={q_gen_3509, q_gen_3510}, Q_f={q_gen_3509}, Delta= { () -> q_gen_3510 (q_gen_3510) -> q_gen_3509 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_3508}, Q_f={q_gen_3508}, Delta= { () -> q_gen_3508 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> fcons([x, l, cons(x, l)]) -> 3 () -> le([z, s(nn2)]) -> 3 () -> length([nil, z]) -> 3 (fcons([x, l, _cs]) /\ length([_cs, _ds]) /\ length([l, _bs])) -> le([_bs, _ds]) -> 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, _tr])) -> length([cons(x, ll), s(_tr)]) -> 4 } Sat witness: Found: ((length([ll, _tr])) -> length([cons(x, ll), s(_tr)]), { _tr -> z ; ll -> nil ; x -> z }) ------------------------------------------- Step 4, which took 0.004420 s (model generation: 0.004323, model checking: 0.000097): Model: |_ { fcons -> {{{ Q={q_gen_3511, q_gen_3512, q_gen_3513}, Q_f={q_gen_3511}, Delta= { () -> q_gen_3512 () -> q_gen_3513 (q_gen_3513, q_gen_3512) -> q_gen_3511 } Datatype: Convolution form: right }}} ; le -> {{{ Q={q_gen_3509, q_gen_3510}, Q_f={q_gen_3509}, Delta= { () -> q_gen_3510 (q_gen_3510) -> q_gen_3509 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_3508, q_gen_3515}, Q_f={q_gen_3508}, Delta= { () -> q_gen_3515 (q_gen_3515, q_gen_3508) -> q_gen_3508 () -> q_gen_3508 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> fcons([x, l, cons(x, l)]) -> 3 () -> le([z, s(nn2)]) -> 3 () -> length([nil, z]) -> 3 (fcons([x, l, _cs]) /\ length([_cs, _ds]) /\ length([l, _bs])) -> le([_bs, _ds]) -> 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, _tr])) -> length([cons(x, ll), s(_tr)]) -> 4 } Sat witness: Found: ((le([nn1, nn2])) -> le([s(nn1), s(nn2)]), { nn1 -> z ; nn2 -> s(z) }) ------------------------------------------- Step 5, which took 0.004739 s (model generation: 0.004478, model checking: 0.000261): Model: |_ { fcons -> {{{ Q={q_gen_3511, q_gen_3512, q_gen_3513}, Q_f={q_gen_3511}, Delta= { () -> q_gen_3512 () -> q_gen_3513 (q_gen_3513, q_gen_3512) -> q_gen_3511 } Datatype: Convolution form: right }}} ; le -> {{{ Q={q_gen_3509, q_gen_3510}, Q_f={q_gen_3509}, Delta= { () -> q_gen_3510 (q_gen_3509) -> q_gen_3509 (q_gen_3510) -> q_gen_3509 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_3508, q_gen_3515}, Q_f={q_gen_3508}, Delta= { () -> q_gen_3515 (q_gen_3515, q_gen_3508) -> q_gen_3508 () -> q_gen_3508 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> fcons([x, l, cons(x, l)]) -> 3 () -> le([z, s(nn2)]) -> 6 () -> length([nil, z]) -> 4 (fcons([x, l, _cs]) /\ length([_cs, _ds]) /\ length([l, _bs])) -> le([_bs, _ds]) -> 2 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 4 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 3 (le([s(nn1), z])) -> BOT -> 3 (le([z, z])) -> BOT -> 3 (length([ll, _tr])) -> length([cons(x, ll), s(_tr)]) -> 4 } Sat witness: Found: (() -> le([z, s(nn2)]), { nn2 -> s(z) }) ------------------------------------------- Step 6, which took 0.008365 s (model generation: 0.006874, model checking: 0.001491): Model: |_ { fcons -> {{{ Q={q_gen_3511, q_gen_3512, q_gen_3513}, Q_f={q_gen_3511}, Delta= { () -> q_gen_3512 () -> q_gen_3513 (q_gen_3513, q_gen_3512) -> q_gen_3511 } Datatype: Convolution form: right }}} ; le -> {{{ Q={q_gen_3509, q_gen_3510}, Q_f={q_gen_3509}, Delta= { (q_gen_3510) -> q_gen_3510 () -> q_gen_3510 (q_gen_3509) -> q_gen_3509 (q_gen_3510) -> q_gen_3509 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_3508, q_gen_3515}, Q_f={q_gen_3508}, Delta= { () -> q_gen_3515 (q_gen_3515, q_gen_3508) -> q_gen_3508 () -> q_gen_3508 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> fcons([x, l, cons(x, l)]) -> 6 () -> le([z, s(nn2)]) -> 6 () -> length([nil, z]) -> 4 (fcons([x, l, _cs]) /\ length([_cs, _ds]) /\ length([l, _bs])) -> le([_bs, _ds]) -> 3 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 4 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 4 (le([s(nn1), z])) -> BOT -> 4 (le([z, z])) -> BOT -> 4 (length([ll, _tr])) -> length([cons(x, ll), s(_tr)]) -> 4 } Sat witness: Found: (() -> fcons([x, l, cons(x, l)]), { l -> cons(z, cons(z, nil)) ; x -> s(z) }) ------------------------------------------- Step 7, which took 0.010566 s (model generation: 0.009804, model checking: 0.000762): Model: |_ { fcons -> {{{ Q={q_gen_3511, q_gen_3512, q_gen_3513, q_gen_3521, q_gen_3522}, Q_f={q_gen_3511}, Delta= { () -> q_gen_3512 () -> q_gen_3513 (q_gen_3513, q_gen_3512) -> q_gen_3521 (q_gen_3513) -> q_gen_3522 () -> q_gen_3522 (q_gen_3522, q_gen_3511) -> q_gen_3511 (q_gen_3522, q_gen_3521) -> q_gen_3511 (q_gen_3513, q_gen_3512) -> q_gen_3511 } Datatype: Convolution form: right }}} ; le -> {{{ Q={q_gen_3509, q_gen_3510}, Q_f={q_gen_3509}, Delta= { (q_gen_3510) -> q_gen_3510 () -> q_gen_3510 (q_gen_3509) -> q_gen_3509 (q_gen_3510) -> q_gen_3509 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_3508, q_gen_3515}, Q_f={q_gen_3508}, Delta= { () -> q_gen_3515 (q_gen_3515, q_gen_3508) -> q_gen_3508 () -> q_gen_3508 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> fcons([x, l, cons(x, l)]) -> 6 () -> le([z, s(nn2)]) -> 6 () -> length([nil, z]) -> 4 (fcons([x, l, _cs]) /\ length([_cs, _ds]) /\ length([l, _bs])) -> le([_bs, _ds]) -> 4 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 4 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 4 (le([s(nn1), z])) -> BOT -> 4 (le([z, z])) -> BOT -> 4 (length([ll, _tr])) -> length([cons(x, ll), s(_tr)]) -> 7 } Sat witness: Found: ((length([ll, _tr])) -> length([cons(x, ll), s(_tr)]), { _tr -> z ; ll -> nil ; x -> s(z) }) ------------------------------------------- Step 8, which took 0.008777 s (model generation: 0.004773, model checking: 0.004004): Model: |_ { fcons -> {{{ Q={q_gen_3511, q_gen_3512, q_gen_3513, q_gen_3521, q_gen_3522}, Q_f={q_gen_3511}, Delta= { () -> q_gen_3512 () -> q_gen_3513 (q_gen_3513, q_gen_3512) -> q_gen_3521 (q_gen_3513) -> q_gen_3522 () -> q_gen_3522 (q_gen_3522, q_gen_3511) -> q_gen_3511 (q_gen_3522, q_gen_3521) -> q_gen_3511 (q_gen_3513, q_gen_3512) -> q_gen_3511 } Datatype: Convolution form: right }}} ; le -> {{{ Q={q_gen_3509, q_gen_3510}, Q_f={q_gen_3509}, Delta= { (q_gen_3510) -> q_gen_3510 () -> q_gen_3510 (q_gen_3509) -> q_gen_3509 (q_gen_3510) -> q_gen_3509 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_3508, q_gen_3515}, Q_f={q_gen_3508}, Delta= { (q_gen_3515) -> q_gen_3515 () -> q_gen_3515 (q_gen_3515, q_gen_3508) -> q_gen_3508 () -> q_gen_3508 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> fcons([x, l, cons(x, l)]) -> 9 () -> le([z, s(nn2)]) -> 7 () -> length([nil, z]) -> 5 (fcons([x, l, _cs]) /\ length([_cs, _ds]) /\ length([l, _bs])) -> le([_bs, _ds]) -> 5 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 5 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 5 (le([s(nn1), z])) -> BOT -> 5 (le([z, z])) -> BOT -> 5 (length([ll, _tr])) -> length([cons(x, ll), s(_tr)]) -> 7 } Sat witness: Found: (() -> fcons([x, l, cons(x, l)]), { l -> nil ; x -> s(z) }) ------------------------------------------- Step 9, which took 0.016332 s (model generation: 0.012833, model checking: 0.003499): Model: |_ { fcons -> {{{ Q={q_gen_3511, q_gen_3512, q_gen_3513, q_gen_3521, q_gen_3522, q_gen_3527}, Q_f={q_gen_3511}, Delta= { () -> q_gen_3512 (q_gen_3513) -> q_gen_3513 () -> q_gen_3513 (q_gen_3513, q_gen_3512) -> q_gen_3521 (q_gen_3513) -> q_gen_3522 () -> q_gen_3522 () -> q_gen_3527 (q_gen_3522, q_gen_3511) -> q_gen_3511 (q_gen_3513, q_gen_3527) -> q_gen_3511 (q_gen_3522, q_gen_3521) -> q_gen_3511 (q_gen_3513, q_gen_3512) -> q_gen_3511 } Datatype: Convolution form: right }}} ; le -> {{{ Q={q_gen_3509, q_gen_3510}, Q_f={q_gen_3509}, Delta= { (q_gen_3510) -> q_gen_3510 () -> q_gen_3510 (q_gen_3509) -> q_gen_3509 (q_gen_3510) -> q_gen_3509 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_3508, q_gen_3515}, Q_f={q_gen_3508}, Delta= { (q_gen_3515) -> q_gen_3515 () -> q_gen_3515 (q_gen_3515, q_gen_3508) -> q_gen_3508 () -> q_gen_3508 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> fcons([x, l, cons(x, l)]) -> 12 () -> le([z, s(nn2)]) -> 8 () -> length([nil, z]) -> 6 (fcons([x, l, _cs]) /\ length([_cs, _ds]) /\ length([l, _bs])) -> le([_bs, _ds]) -> 6 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 6 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 6 (le([s(nn1), z])) -> BOT -> 6 (le([z, z])) -> BOT -> 6 (length([ll, _tr])) -> length([cons(x, ll), s(_tr)]) -> 8 } Sat witness: Found: (() -> fcons([x, l, cons(x, l)]), { l -> nil ; x -> s(s(z)) }) ------------------------------------------- Step 10, which took 0.016725 s (model generation: 0.013494, model checking: 0.003231): Model: |_ { fcons -> {{{ Q={q_gen_3511, q_gen_3512, q_gen_3513, q_gen_3521, q_gen_3522, q_gen_3527}, Q_f={q_gen_3511}, Delta= { () -> q_gen_3512 (q_gen_3513) -> q_gen_3513 () -> q_gen_3513 (q_gen_3513, q_gen_3512) -> q_gen_3521 (q_gen_3513) -> q_gen_3522 () -> q_gen_3522 (q_gen_3513) -> q_gen_3527 () -> q_gen_3527 (q_gen_3522, q_gen_3511) -> q_gen_3511 (q_gen_3513, q_gen_3527) -> q_gen_3511 (q_gen_3522, q_gen_3521) -> q_gen_3511 (q_gen_3513, q_gen_3512) -> q_gen_3511 } Datatype: Convolution form: right }}} ; le -> {{{ Q={q_gen_3509, q_gen_3510}, Q_f={q_gen_3509}, Delta= { (q_gen_3510) -> q_gen_3510 () -> q_gen_3510 (q_gen_3509) -> q_gen_3509 (q_gen_3510) -> q_gen_3509 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_3508, q_gen_3515}, Q_f={q_gen_3508}, Delta= { (q_gen_3515) -> q_gen_3515 () -> q_gen_3515 (q_gen_3515, q_gen_3508) -> q_gen_3508 () -> q_gen_3508 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> fcons([x, l, cons(x, l)]) -> 15 () -> le([z, s(nn2)]) -> 9 () -> length([nil, z]) -> 7 (fcons([x, l, _cs]) /\ length([_cs, _ds]) /\ length([l, _bs])) -> le([_bs, _ds]) -> 7 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 7 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 7 (le([s(nn1), z])) -> BOT -> 7 (le([z, z])) -> BOT -> 7 (length([ll, _tr])) -> length([cons(x, ll), s(_tr)]) -> 9 } Sat witness: Found: (() -> fcons([x, l, cons(x, l)]), { l -> cons(s(s(z)), nil) ; x -> s(z) }) ------------------------------------------- Step 11, which took 0.013332 s (model generation: 0.012239, model checking: 0.001093): Model: |_ { fcons -> {{{ Q={q_gen_3511, q_gen_3512, q_gen_3513, q_gen_3521, q_gen_3522, q_gen_3527}, Q_f={q_gen_3511}, Delta= { () -> q_gen_3512 (q_gen_3513) -> q_gen_3513 () -> q_gen_3513 (q_gen_3513, q_gen_3512) -> q_gen_3521 (q_gen_3522) -> q_gen_3522 (q_gen_3513) -> q_gen_3522 (q_gen_3513) -> q_gen_3522 () -> q_gen_3522 (q_gen_3513) -> q_gen_3527 () -> q_gen_3527 (q_gen_3522, q_gen_3511) -> q_gen_3511 (q_gen_3513, q_gen_3527) -> q_gen_3511 (q_gen_3522, q_gen_3521) -> q_gen_3511 (q_gen_3513, q_gen_3512) -> q_gen_3511 } Datatype: Convolution form: right }}} ; le -> {{{ Q={q_gen_3509, q_gen_3510}, Q_f={q_gen_3509}, Delta= { (q_gen_3510) -> q_gen_3510 () -> q_gen_3510 (q_gen_3509) -> q_gen_3509 (q_gen_3510) -> q_gen_3509 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_3508, q_gen_3515}, Q_f={q_gen_3508}, Delta= { (q_gen_3515) -> q_gen_3515 () -> q_gen_3515 (q_gen_3515, q_gen_3508) -> q_gen_3508 () -> q_gen_3508 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> fcons([x, l, cons(x, l)]) -> 18 () -> le([z, s(nn2)]) -> 10 () -> length([nil, z]) -> 8 (fcons([x, l, _cs]) /\ length([_cs, _ds]) /\ length([l, _bs])) -> le([_bs, _ds]) -> 8 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 8 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 8 (le([s(nn1), z])) -> BOT -> 8 (le([z, z])) -> BOT -> 8 (length([ll, _tr])) -> length([cons(x, ll), s(_tr)]) -> 10 } Sat witness: Found: (() -> fcons([x, l, cons(x, l)]), { l -> cons(z, cons(z, cons(z, nil))) ; x -> s(z) }) Total time: 60.000033 Reason for stopping: DontKnow. Stopped because: timeout