Inference procedure has parameters: Ice fuel: 200 Timeout: 60s Convolution: right Learning problem is: env: { elt -> {a, b} ; eltlist -> {cons, nil} ; nat -> {s, z} } definition: { (leq, P: {() -> leq([a, y]) () -> leq([b, b]) (leq([b, a])) -> BOT} ) (insert, F: {() -> insert([x, nil, cons(x, nil)]) (insert([x, z, _wl]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _wl)]) (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))])} (insert([_xl, _yl, _am]) /\ insert([_xl, _yl, _zl])) -> eq_eltlist([_zl, _am]) ) (length, F: {() -> length([nil, z]) (length([ll, _bm])) -> length([cons(x, ll), s(_bm)])} (length([_cm, _dm]) /\ length([_cm, _em])) -> eq_nat([_dm, _em]) ) } properties: {(insert([x, l, _gm]) /\ length([_gm, _hm]) /\ length([l, _fm])) -> eq_nat([s(_fm), _hm])} over-approximation: {insert, length} under-approximation: {leq} Clause system for inference is: { () -> insert([x, nil, cons(x, nil)]) -> 0 () -> length([nil, z]) -> 0 () -> leq([a, y]) -> 0 () -> leq([b, b]) -> 0 (insert([x, l, _gm]) /\ length([_gm, _hm]) /\ length([l, _fm])) -> eq_nat([s(_fm), _hm]) -> 0 (insert([x, z, _wl]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _wl)]) -> 0 (length([ll, _bm])) -> length([cons(x, ll), s(_bm)]) -> 0 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 0 (leq([b, a])) -> BOT -> 0 } Solving took 0.194393 seconds. Proved Model: |_ { insert -> {{{ Q={q_gen_2537, q_gen_2538, q_gen_2539, q_gen_2541, q_gen_2542}, Q_f={q_gen_2537}, Delta= { () -> q_gen_2538 () -> q_gen_2539 () -> q_gen_2539 (q_gen_2542, q_gen_2541) -> q_gen_2541 (q_gen_2539, q_gen_2538) -> q_gen_2541 () -> q_gen_2542 () -> q_gen_2542 () -> q_gen_2542 () -> q_gen_2542 (q_gen_2542, q_gen_2541) -> q_gen_2537 (q_gen_2539, q_gen_2538) -> q_gen_2537 (q_gen_2542, q_gen_2541) -> q_gen_2537 (q_gen_2539, q_gen_2538) -> q_gen_2537 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_2536, q_gen_2544}, Q_f={q_gen_2536}, Delta= { () -> q_gen_2544 () -> q_gen_2544 (q_gen_2544, q_gen_2536) -> q_gen_2536 () -> q_gen_2536 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_2534, q_gen_2545}, Q_f={q_gen_2534}, Delta= { () -> q_gen_2534 () -> q_gen_2534 () -> q_gen_2534 () -> q_gen_2545 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.010356 s (model generation: 0.009861, model checking: 0.000495): Model: |_ { insert -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; length -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; leq -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| Teacher's answer: New clause system: { () -> insert([x, nil, cons(x, nil)]) -> 0 () -> length([nil, z]) -> 0 () -> leq([a, y]) -> 0 () -> leq([b, b]) -> 3 (insert([x, l, _gm]) /\ length([_gm, _hm]) /\ length([l, _fm])) -> eq_nat([s(_fm), _hm]) -> 1 (insert([x, z, _wl]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _wl)]) -> 1 (length([ll, _bm])) -> length([cons(x, ll), s(_bm)]) -> 1 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 1 (leq([b, a])) -> BOT -> 1 } Sat witness: Found: (() -> leq([b, b]), { }) ------------------------------------------- Step 1, which took 0.010283 s (model generation: 0.010207, model checking: 0.000076): Model: |_ { insert -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; length -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_2534}, Q_f={q_gen_2534}, Delta= { () -> q_gen_2534 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| Teacher's answer: New clause system: { () -> insert([x, nil, cons(x, nil)]) -> 0 () -> length([nil, z]) -> 0 () -> leq([a, y]) -> 3 () -> leq([b, b]) -> 3 (insert([x, l, _gm]) /\ length([_gm, _hm]) /\ length([l, _fm])) -> eq_nat([s(_fm), _hm]) -> 1 (insert([x, z, _wl]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _wl)]) -> 1 (length([ll, _bm])) -> length([cons(x, ll), s(_bm)]) -> 1 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 1 (leq([b, a])) -> BOT -> 1 } Sat witness: Found: (() -> leq([a, y]), { y -> b }) ------------------------------------------- Step 2, which took 0.012150 s (model generation: 0.010185, model checking: 0.001965): Model: |_ { insert -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; length -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_2534}, Q_f={q_gen_2534}, Delta= { () -> q_gen_2534 () -> q_gen_2534 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| Teacher's answer: New clause system: { () -> insert([x, nil, cons(x, nil)]) -> 0 () -> length([nil, z]) -> 3 () -> leq([a, y]) -> 3 () -> leq([b, b]) -> 3 (insert([x, l, _gm]) /\ length([_gm, _hm]) /\ length([l, _fm])) -> eq_nat([s(_fm), _hm]) -> 1 (insert([x, z, _wl]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _wl)]) -> 1 (length([ll, _bm])) -> length([cons(x, ll), s(_bm)]) -> 1 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 1 (leq([b, a])) -> BOT -> 1 } Sat witness: Found: (() -> length([nil, z]), { }) ------------------------------------------- Step 3, which took 0.010671 s (model generation: 0.010411, model checking: 0.000260): Model: |_ { insert -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_2536}, Q_f={q_gen_2536}, Delta= { () -> q_gen_2536 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_2534}, Q_f={q_gen_2534}, Delta= { () -> q_gen_2534 () -> q_gen_2534 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| Teacher's answer: New clause system: { () -> insert([x, nil, cons(x, nil)]) -> 3 () -> length([nil, z]) -> 3 () -> leq([a, y]) -> 3 () -> leq([b, b]) -> 3 (insert([x, l, _gm]) /\ length([_gm, _hm]) /\ length([l, _fm])) -> eq_nat([s(_fm), _hm]) -> 1 (insert([x, z, _wl]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _wl)]) -> 1 (length([ll, _bm])) -> length([cons(x, ll), s(_bm)]) -> 1 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 1 (leq([b, a])) -> BOT -> 1 } Sat witness: Found: (() -> insert([x, nil, cons(x, nil)]), { x -> b }) ------------------------------------------- Step 4, which took 0.011077 s (model generation: 0.010531, model checking: 0.000546): Model: |_ { insert -> {{{ Q={q_gen_2537, q_gen_2538, q_gen_2539}, Q_f={q_gen_2537}, Delta= { () -> q_gen_2538 () -> q_gen_2539 (q_gen_2539, q_gen_2538) -> q_gen_2537 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_2536}, Q_f={q_gen_2536}, Delta= { () -> q_gen_2536 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_2534}, Q_f={q_gen_2534}, Delta= { () -> q_gen_2534 () -> q_gen_2534 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| Teacher's answer: New clause system: { () -> insert([x, nil, cons(x, nil)]) -> 3 () -> length([nil, z]) -> 3 () -> leq([a, y]) -> 3 () -> leq([b, b]) -> 3 (insert([x, l, _gm]) /\ length([_gm, _hm]) /\ length([l, _fm])) -> eq_nat([s(_fm), _hm]) -> 1 (insert([x, z, _wl]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _wl)]) -> 1 (length([ll, _bm])) -> length([cons(x, ll), s(_bm)]) -> 1 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 4 (leq([b, a])) -> BOT -> 2 } Sat witness: Found: ((leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]), { x -> b ; y -> b ; z -> nil }) ------------------------------------------- Step 5, which took 0.011216 s (model generation: 0.011026, model checking: 0.000190): Model: |_ { insert -> {{{ Q={q_gen_2537, q_gen_2538, q_gen_2539, q_gen_2541, q_gen_2542}, Q_f={q_gen_2537}, Delta= { () -> q_gen_2538 () -> q_gen_2539 (q_gen_2539, q_gen_2538) -> q_gen_2541 () -> q_gen_2542 (q_gen_2542, q_gen_2541) -> q_gen_2537 (q_gen_2539, q_gen_2538) -> q_gen_2537 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_2536}, Q_f={q_gen_2536}, Delta= { () -> q_gen_2536 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_2534}, Q_f={q_gen_2534}, Delta= { () -> q_gen_2534 () -> q_gen_2534 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| Teacher's answer: New clause system: { () -> insert([x, nil, cons(x, nil)]) -> 3 () -> length([nil, z]) -> 3 () -> leq([a, y]) -> 3 () -> leq([b, b]) -> 3 (insert([x, l, _gm]) /\ length([_gm, _hm]) /\ length([l, _fm])) -> eq_nat([s(_fm), _hm]) -> 1 (insert([x, z, _wl]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _wl)]) -> 1 (length([ll, _bm])) -> length([cons(x, ll), s(_bm)]) -> 4 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 4 (leq([b, a])) -> BOT -> 2 } Sat witness: Found: ((length([ll, _bm])) -> length([cons(x, ll), s(_bm)]), { _bm -> z ; ll -> nil ; x -> b }) ------------------------------------------- Step 6, which took 0.011968 s (model generation: 0.011289, model checking: 0.000679): Model: |_ { insert -> {{{ Q={q_gen_2537, q_gen_2538, q_gen_2539, q_gen_2541, q_gen_2542}, Q_f={q_gen_2537}, Delta= { () -> q_gen_2538 () -> q_gen_2539 (q_gen_2539, q_gen_2538) -> q_gen_2541 () -> q_gen_2542 (q_gen_2542, q_gen_2541) -> q_gen_2537 (q_gen_2539, q_gen_2538) -> q_gen_2537 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_2536, q_gen_2544}, Q_f={q_gen_2536}, Delta= { () -> q_gen_2544 (q_gen_2544, q_gen_2536) -> q_gen_2536 () -> q_gen_2536 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_2534}, Q_f={q_gen_2534}, Delta= { () -> q_gen_2534 () -> q_gen_2534 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| Teacher's answer: New clause system: { () -> insert([x, nil, cons(x, nil)]) -> 3 () -> length([nil, z]) -> 3 () -> leq([a, y]) -> 3 () -> leq([b, b]) -> 3 (insert([x, l, _gm]) /\ length([_gm, _hm]) /\ length([l, _fm])) -> eq_nat([s(_fm), _hm]) -> 1 (insert([x, z, _wl]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _wl)]) -> 4 (length([ll, _bm])) -> length([cons(x, ll), s(_bm)]) -> 4 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 4 (leq([b, a])) -> BOT -> 2 } Sat witness: Found: ((insert([x, z, _wl]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _wl)]), { _wl -> cons(b, nil) ; x -> b ; y -> a ; z -> nil }) ------------------------------------------- Step 7, which took 0.012228 s (model generation: 0.011867, model checking: 0.000361): Model: |_ { insert -> {{{ Q={q_gen_2537, q_gen_2538, q_gen_2539, q_gen_2541, q_gen_2542}, Q_f={q_gen_2537}, Delta= { () -> q_gen_2538 () -> q_gen_2539 (q_gen_2539, q_gen_2538) -> q_gen_2541 () -> q_gen_2542 () -> q_gen_2542 (q_gen_2542, q_gen_2541) -> q_gen_2537 (q_gen_2539, q_gen_2538) -> q_gen_2537 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_2536, q_gen_2544}, Q_f={q_gen_2536}, Delta= { () -> q_gen_2544 (q_gen_2544, q_gen_2536) -> q_gen_2536 () -> q_gen_2536 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_2534}, Q_f={q_gen_2534}, Delta= { () -> q_gen_2534 () -> q_gen_2534 () -> q_gen_2534 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| Teacher's answer: New clause system: { () -> insert([x, nil, cons(x, nil)]) -> 3 () -> length([nil, z]) -> 3 () -> leq([a, y]) -> 3 () -> leq([b, b]) -> 3 (insert([x, l, _gm]) /\ length([_gm, _hm]) /\ length([l, _fm])) -> eq_nat([s(_fm), _hm]) -> 2 (insert([x, z, _wl]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _wl)]) -> 4 (length([ll, _bm])) -> length([cons(x, ll), s(_bm)]) -> 4 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 4 (leq([b, a])) -> BOT -> 5 } Sat witness: Found: ((leq([b, a])) -> BOT, { }) ------------------------------------------- Step 8, which took 0.012165 s (model generation: 0.011823, model checking: 0.000342): Model: |_ { insert -> {{{ Q={q_gen_2537, q_gen_2538, q_gen_2539, q_gen_2541, q_gen_2542}, Q_f={q_gen_2537}, Delta= { () -> q_gen_2538 () -> q_gen_2539 (q_gen_2539, q_gen_2538) -> q_gen_2541 () -> q_gen_2542 () -> q_gen_2542 (q_gen_2542, q_gen_2541) -> q_gen_2537 (q_gen_2539, q_gen_2538) -> q_gen_2537 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_2536, q_gen_2544}, Q_f={q_gen_2536}, Delta= { () -> q_gen_2544 (q_gen_2544, q_gen_2536) -> q_gen_2536 () -> q_gen_2536 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_2534, q_gen_2545}, Q_f={q_gen_2534}, Delta= { () -> q_gen_2534 () -> q_gen_2534 () -> q_gen_2545 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| Teacher's answer: New clause system: { () -> insert([x, nil, cons(x, nil)]) -> 3 () -> length([nil, z]) -> 3 () -> leq([a, y]) -> 6 () -> leq([b, b]) -> 4 (insert([x, l, _gm]) /\ length([_gm, _hm]) /\ length([l, _fm])) -> eq_nat([s(_fm), _hm]) -> 3 (insert([x, z, _wl]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _wl)]) -> 4 (length([ll, _bm])) -> length([cons(x, ll), s(_bm)]) -> 4 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 4 (leq([b, a])) -> BOT -> 5 } Sat witness: Found: (() -> leq([a, y]), { y -> a }) ------------------------------------------- Step 9, which took 0.013380 s (model generation: 0.012514, model checking: 0.000866): Model: |_ { insert -> {{{ Q={q_gen_2537, q_gen_2538, q_gen_2539, q_gen_2541, q_gen_2542}, Q_f={q_gen_2537}, Delta= { () -> q_gen_2538 () -> q_gen_2539 (q_gen_2539, q_gen_2538) -> q_gen_2541 () -> q_gen_2542 () -> q_gen_2542 (q_gen_2542, q_gen_2541) -> q_gen_2537 (q_gen_2539, q_gen_2538) -> q_gen_2537 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_2536, q_gen_2544}, Q_f={q_gen_2536}, Delta= { () -> q_gen_2544 (q_gen_2544, q_gen_2536) -> q_gen_2536 () -> q_gen_2536 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_2534, q_gen_2545}, Q_f={q_gen_2534}, Delta= { () -> q_gen_2534 () -> q_gen_2534 () -> q_gen_2534 () -> q_gen_2545 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| Teacher's answer: New clause system: { () -> insert([x, nil, cons(x, nil)]) -> 6 () -> length([nil, z]) -> 4 () -> leq([a, y]) -> 6 () -> leq([b, b]) -> 4 (insert([x, l, _gm]) /\ length([_gm, _hm]) /\ length([l, _fm])) -> eq_nat([s(_fm), _hm]) -> 4 (insert([x, z, _wl]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _wl)]) -> 4 (length([ll, _bm])) -> length([cons(x, ll), s(_bm)]) -> 4 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 4 (leq([b, a])) -> BOT -> 5 } Sat witness: Found: (() -> insert([x, nil, cons(x, nil)]), { x -> a }) ------------------------------------------- Step 10, which took 0.013736 s (model generation: 0.012695, model checking: 0.001041): Model: |_ { insert -> {{{ Q={q_gen_2537, q_gen_2538, q_gen_2539, q_gen_2541, q_gen_2542}, Q_f={q_gen_2537}, Delta= { () -> q_gen_2538 () -> q_gen_2539 () -> q_gen_2539 (q_gen_2539, q_gen_2538) -> q_gen_2541 () -> q_gen_2542 () -> q_gen_2542 (q_gen_2539, q_gen_2538) -> q_gen_2537 (q_gen_2542, q_gen_2541) -> q_gen_2537 (q_gen_2539, q_gen_2538) -> q_gen_2537 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_2536, q_gen_2544}, Q_f={q_gen_2536}, Delta= { () -> q_gen_2544 (q_gen_2544, q_gen_2536) -> q_gen_2536 () -> q_gen_2536 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_2534, q_gen_2545}, Q_f={q_gen_2534}, Delta= { () -> q_gen_2534 () -> q_gen_2534 () -> q_gen_2534 () -> q_gen_2545 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| Teacher's answer: New clause system: { () -> insert([x, nil, cons(x, nil)]) -> 6 () -> length([nil, z]) -> 4 () -> leq([a, y]) -> 6 () -> leq([b, b]) -> 4 (insert([x, l, _gm]) /\ length([_gm, _hm]) /\ length([l, _fm])) -> eq_nat([s(_fm), _hm]) -> 4 (insert([x, z, _wl]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _wl)]) -> 4 (length([ll, _bm])) -> length([cons(x, ll), s(_bm)]) -> 4 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 7 (leq([b, a])) -> BOT -> 5 } Sat witness: Found: ((leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]), { x -> a ; y -> b ; z -> nil }) ------------------------------------------- Step 11, which took 0.013870 s (model generation: 0.013532, model checking: 0.000338): Model: |_ { insert -> {{{ Q={q_gen_2537, q_gen_2538, q_gen_2539, q_gen_2541, q_gen_2542}, Q_f={q_gen_2537}, Delta= { () -> q_gen_2538 () -> q_gen_2539 () -> q_gen_2539 (q_gen_2539, q_gen_2538) -> q_gen_2541 () -> q_gen_2542 () -> q_gen_2542 () -> q_gen_2542 (q_gen_2542, q_gen_2541) -> q_gen_2537 (q_gen_2539, q_gen_2538) -> q_gen_2537 (q_gen_2542, q_gen_2541) -> q_gen_2537 (q_gen_2539, q_gen_2538) -> q_gen_2537 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_2536, q_gen_2544}, Q_f={q_gen_2536}, Delta= { () -> q_gen_2544 (q_gen_2544, q_gen_2536) -> q_gen_2536 () -> q_gen_2536 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_2534, q_gen_2545}, Q_f={q_gen_2534}, Delta= { () -> q_gen_2534 () -> q_gen_2534 () -> q_gen_2534 () -> q_gen_2545 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| Teacher's answer: New clause system: { () -> insert([x, nil, cons(x, nil)]) -> 6 () -> length([nil, z]) -> 4 () -> leq([a, y]) -> 6 () -> leq([b, b]) -> 4 (insert([x, l, _gm]) /\ length([_gm, _hm]) /\ length([l, _fm])) -> eq_nat([s(_fm), _hm]) -> 4 (insert([x, z, _wl]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _wl)]) -> 4 (length([ll, _bm])) -> length([cons(x, ll), s(_bm)]) -> 7 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 7 (leq([b, a])) -> BOT -> 5 } Sat witness: Found: ((length([ll, _bm])) -> length([cons(x, ll), s(_bm)]), { _bm -> z ; ll -> nil ; x -> a }) ------------------------------------------- Step 12, which took 0.014943 s (model generation: 0.013756, model checking: 0.001187): Model: |_ { insert -> {{{ Q={q_gen_2537, q_gen_2538, q_gen_2539, q_gen_2541, q_gen_2542}, Q_f={q_gen_2537}, Delta= { () -> q_gen_2538 () -> q_gen_2539 () -> q_gen_2539 (q_gen_2539, q_gen_2538) -> q_gen_2541 () -> q_gen_2542 () -> q_gen_2542 () -> q_gen_2542 (q_gen_2542, q_gen_2541) -> q_gen_2537 (q_gen_2539, q_gen_2538) -> q_gen_2537 (q_gen_2542, q_gen_2541) -> q_gen_2537 (q_gen_2539, q_gen_2538) -> q_gen_2537 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_2536, q_gen_2544}, Q_f={q_gen_2536}, Delta= { () -> q_gen_2544 () -> q_gen_2544 (q_gen_2544, q_gen_2536) -> q_gen_2536 () -> q_gen_2536 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_2534, q_gen_2545}, Q_f={q_gen_2534}, Delta= { () -> q_gen_2534 () -> q_gen_2534 () -> q_gen_2534 () -> q_gen_2545 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| Teacher's answer: New clause system: { () -> insert([x, nil, cons(x, nil)]) -> 6 () -> length([nil, z]) -> 4 () -> leq([a, y]) -> 6 () -> leq([b, b]) -> 4 (insert([x, l, _gm]) /\ length([_gm, _hm]) /\ length([l, _fm])) -> eq_nat([s(_fm), _hm]) -> 4 (insert([x, z, _wl]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _wl)]) -> 7 (length([ll, _bm])) -> length([cons(x, ll), s(_bm)]) -> 7 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 7 (leq([b, a])) -> BOT -> 5 } Sat witness: Found: ((insert([x, z, _wl]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _wl)]), { _wl -> cons(a, cons(a, nil)) ; x -> b ; y -> a ; z -> cons(a, nil) }) ------------------------------------------- Step 13, which took 0.017201 s (model generation: 0.015295, model checking: 0.001906): Model: |_ { insert -> {{{ Q={q_gen_2537, q_gen_2538, q_gen_2539, q_gen_2541, q_gen_2542}, Q_f={q_gen_2537}, Delta= { () -> q_gen_2538 () -> q_gen_2539 () -> q_gen_2539 (q_gen_2542, q_gen_2541) -> q_gen_2541 (q_gen_2539, q_gen_2538) -> q_gen_2541 () -> q_gen_2542 () -> q_gen_2542 () -> q_gen_2542 (q_gen_2542, q_gen_2541) -> q_gen_2537 (q_gen_2539, q_gen_2538) -> q_gen_2537 (q_gen_2542, q_gen_2541) -> q_gen_2537 (q_gen_2539, q_gen_2538) -> q_gen_2537 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_2536, q_gen_2544}, Q_f={q_gen_2536}, Delta= { () -> q_gen_2544 () -> q_gen_2544 (q_gen_2544, q_gen_2536) -> q_gen_2536 () -> q_gen_2536 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_2534, q_gen_2545}, Q_f={q_gen_2534}, Delta= { () -> q_gen_2534 () -> q_gen_2534 () -> q_gen_2534 () -> q_gen_2545 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| Teacher's answer: New clause system: { () -> insert([x, nil, cons(x, nil)]) -> 7 () -> length([nil, z]) -> 5 () -> leq([a, y]) -> 7 () -> leq([b, b]) -> 5 (insert([x, l, _gm]) /\ length([_gm, _hm]) /\ length([l, _fm])) -> eq_nat([s(_fm), _hm]) -> 5 (insert([x, z, _wl]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _wl)]) -> 7 (length([ll, _bm])) -> length([cons(x, ll), s(_bm)]) -> 7 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 10 (leq([b, a])) -> BOT -> 6 } Sat witness: Found: ((leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]), { x -> b ; y -> b ; z -> cons(a, nil) }) Total time: 0.194393 Reason for stopping: Proved