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, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))])} (insert([_z, _aa, _ba]) /\ insert([_z, _aa, _ca])) -> eq_eltlist([_ba, _ca]) ) (length, F: {() -> length([nil, z]) (length([ll, _da])) -> length([cons(x, ll), s(_da)])} (length([_ea, _fa]) /\ length([_ea, _ga])) -> eq_nat([_fa, _ga]) ) (leqnat, P: {() -> leqnat([z, s(nn2)]) () -> leqnat([z, z]) (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) (leqnat([s(nn1), z])) -> BOT} ) } properties: {(insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja])} over-approximation: {insert, length} under-approximation: {leq, leqnat} Clause system for inference is: { () -> insert([x, nil, cons(x, nil)]) -> 0 () -> length([nil, z]) -> 0 () -> leq([a, y]) -> 0 () -> leq([b, b]) -> 0 () -> leqnat([z, s(nn2)]) -> 0 () -> leqnat([z, z]) -> 0 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 0 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 0 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 0 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 0 (leq([b, a])) -> BOT -> 0 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 0 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 0 (leqnat([s(nn1), z])) -> BOT -> 0 } Solving took 0.212769 seconds. Proved Model: |_ { insert -> {{{ Q={q_gen_242, q_gen_243, q_gen_244, q_gen_247, q_gen_248}, Q_f={q_gen_242}, Delta= { () -> q_gen_243 () -> q_gen_244 () -> q_gen_244 (q_gen_248, q_gen_247) -> q_gen_247 (q_gen_244, q_gen_243) -> q_gen_247 () -> q_gen_248 () -> q_gen_248 () -> q_gen_248 () -> q_gen_248 (q_gen_248, q_gen_247) -> q_gen_242 (q_gen_244, q_gen_243) -> q_gen_242 (q_gen_248, q_gen_247) -> q_gen_242 (q_gen_244, q_gen_243) -> q_gen_242 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_241, q_gen_250}, Q_f={q_gen_241}, Delta= { () -> q_gen_250 () -> q_gen_250 (q_gen_250, q_gen_241) -> q_gen_241 () -> q_gen_241 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_239, q_gen_251}, Q_f={q_gen_239}, Delta= { () -> q_gen_239 () -> q_gen_239 () -> q_gen_239 () -> q_gen_251 } Datatype: Convolution form: right }}} ; leqnat -> {{{ Q={q_gen_236, q_gen_238}, Q_f={q_gen_236}, Delta= { (q_gen_238) -> q_gen_238 () -> q_gen_238 (q_gen_236) -> q_gen_236 (q_gen_238) -> q_gen_236 () -> q_gen_236 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.005614 s (model generation: 0.005328, model checking: 0.000286): 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 }}} ; leqnat -> {{{ 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]) -> 0 () -> leqnat([z, s(nn2)]) -> 0 () -> leqnat([z, z]) -> 3 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 1 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 1 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 1 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 1 (leq([b, a])) -> BOT -> 1 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 1 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 1 (leqnat([s(nn1), z])) -> BOT -> 1 } Sat witness: Found: (() -> leqnat([z, z]), { }) ------------------------------------------- Step 1, which took 0.004464 s (model generation: 0.004287, model checking: 0.000177): 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 }}} ; leqnat -> {{{ Q={q_gen_236}, Q_f={q_gen_236}, Delta= { () -> q_gen_236 } 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]) -> 0 () -> leqnat([z, s(nn2)]) -> 3 () -> leqnat([z, z]) -> 3 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 1 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 1 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 1 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 1 (leq([b, a])) -> BOT -> 1 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 1 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 1 (leqnat([s(nn1), z])) -> BOT -> 1 } Sat witness: Found: (() -> leqnat([z, s(nn2)]), { nn2 -> z }) ------------------------------------------- Step 2, which took 0.004493 s (model generation: 0.004406, model checking: 0.000087): 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 }}} ; leqnat -> {{{ Q={q_gen_236, q_gen_238}, Q_f={q_gen_236}, Delta= { () -> q_gen_238 (q_gen_238) -> q_gen_236 () -> q_gen_236 } 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 () -> leqnat([z, s(nn2)]) -> 3 () -> leqnat([z, z]) -> 3 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 1 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 1 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 1 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 1 (leq([b, a])) -> BOT -> 1 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 1 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 1 (leqnat([s(nn1), z])) -> BOT -> 1 } Sat witness: Found: (() -> leq([b, b]), { }) ------------------------------------------- Step 3, which took 0.005060 s (model generation: 0.004957, model checking: 0.000103): Model: |_ { insert -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; length -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_239}, Q_f={q_gen_239}, Delta= { () -> q_gen_239 } Datatype: Convolution form: right }}} ; leqnat -> {{{ Q={q_gen_236, q_gen_238}, Q_f={q_gen_236}, Delta= { () -> q_gen_238 (q_gen_238) -> q_gen_236 () -> q_gen_236 } 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 () -> leqnat([z, s(nn2)]) -> 3 () -> leqnat([z, z]) -> 3 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 1 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 1 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 1 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 1 (leq([b, a])) -> BOT -> 1 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 1 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 1 (leqnat([s(nn1), z])) -> BOT -> 1 } Sat witness: Found: (() -> leq([a, y]), { y -> b }) ------------------------------------------- Step 4, which took 0.004428 s (model generation: 0.004352, 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_239}, Q_f={q_gen_239}, Delta= { () -> q_gen_239 () -> q_gen_239 } Datatype: Convolution form: right }}} ; leqnat -> {{{ Q={q_gen_236, q_gen_238}, Q_f={q_gen_236}, Delta= { () -> q_gen_238 (q_gen_238) -> q_gen_236 () -> q_gen_236 } 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 () -> leqnat([z, s(nn2)]) -> 3 () -> leqnat([z, z]) -> 3 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 1 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 1 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 1 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 1 (leq([b, a])) -> BOT -> 1 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 1 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 1 (leqnat([s(nn1), z])) -> BOT -> 1 } Sat witness: Found: (() -> length([nil, z]), { }) ------------------------------------------- Step 5, which took 0.006895 s (model generation: 0.005083, model checking: 0.001812): Model: |_ { insert -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_241}, Q_f={q_gen_241}, Delta= { () -> q_gen_241 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_239}, Q_f={q_gen_239}, Delta= { () -> q_gen_239 () -> q_gen_239 } Datatype: Convolution form: right }}} ; leqnat -> {{{ Q={q_gen_236, q_gen_238}, Q_f={q_gen_236}, Delta= { () -> q_gen_238 (q_gen_238) -> q_gen_236 () -> q_gen_236 } 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 () -> leqnat([z, s(nn2)]) -> 3 () -> leqnat([z, z]) -> 3 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 1 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 1 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 1 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 1 (leq([b, a])) -> BOT -> 1 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 1 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 1 (leqnat([s(nn1), z])) -> BOT -> 1 } Sat witness: Found: (() -> insert([x, nil, cons(x, nil)]), { x -> b }) ------------------------------------------- Step 6, which took 0.007741 s (model generation: 0.007537, model checking: 0.000204): Model: |_ { insert -> {{{ Q={q_gen_242, q_gen_243, q_gen_244}, Q_f={q_gen_242}, Delta= { () -> q_gen_243 () -> q_gen_244 (q_gen_244, q_gen_243) -> q_gen_242 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_241}, Q_f={q_gen_241}, Delta= { () -> q_gen_241 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_239}, Q_f={q_gen_239}, Delta= { () -> q_gen_239 () -> q_gen_239 } Datatype: Convolution form: right }}} ; leqnat -> {{{ Q={q_gen_236, q_gen_238}, Q_f={q_gen_236}, Delta= { () -> q_gen_238 (q_gen_238) -> q_gen_236 () -> q_gen_236 } 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 () -> leqnat([z, s(nn2)]) -> 3 () -> leqnat([z, z]) -> 3 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 1 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 1 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 1 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 1 (leq([b, a])) -> BOT -> 1 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 4 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 2 (leqnat([s(nn1), z])) -> BOT -> 2 } Sat witness: Found: ((leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]), { nn1 -> z ; nn2 -> z }) ------------------------------------------- Step 7, which took 0.010850 s (model generation: 0.010288, model checking: 0.000562): Model: |_ { insert -> {{{ Q={q_gen_242, q_gen_243, q_gen_244}, Q_f={q_gen_242}, Delta= { () -> q_gen_243 () -> q_gen_244 (q_gen_244, q_gen_243) -> q_gen_242 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_241}, Q_f={q_gen_241}, Delta= { () -> q_gen_241 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_239}, Q_f={q_gen_239}, Delta= { () -> q_gen_239 () -> q_gen_239 } Datatype: Convolution form: right }}} ; leqnat -> {{{ Q={q_gen_236, q_gen_238}, Q_f={q_gen_236}, Delta= { () -> q_gen_238 (q_gen_236) -> q_gen_236 (q_gen_238) -> q_gen_236 () -> q_gen_236 } 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 () -> leqnat([z, s(nn2)]) -> 3 () -> leqnat([z, z]) -> 3 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 1 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 1 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 1 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 4 (leq([b, a])) -> BOT -> 2 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 4 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 2 (leqnat([s(nn1), z])) -> 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 8, which took 0.006500 s (model generation: 0.004778, model checking: 0.001722): Model: |_ { insert -> {{{ Q={q_gen_242, q_gen_243, q_gen_244, q_gen_247, q_gen_248}, Q_f={q_gen_242}, Delta= { () -> q_gen_243 () -> q_gen_244 (q_gen_244, q_gen_243) -> q_gen_247 () -> q_gen_248 (q_gen_248, q_gen_247) -> q_gen_242 (q_gen_244, q_gen_243) -> q_gen_242 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_241}, Q_f={q_gen_241}, Delta= { () -> q_gen_241 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_239}, Q_f={q_gen_239}, Delta= { () -> q_gen_239 () -> q_gen_239 } Datatype: Convolution form: right }}} ; leqnat -> {{{ Q={q_gen_236, q_gen_238}, Q_f={q_gen_236}, Delta= { () -> q_gen_238 (q_gen_236) -> q_gen_236 (q_gen_238) -> q_gen_236 () -> q_gen_236 } 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 () -> leqnat([z, s(nn2)]) -> 3 () -> leqnat([z, z]) -> 3 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 1 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 1 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 4 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 4 (leq([b, a])) -> BOT -> 2 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 4 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 2 (leqnat([s(nn1), z])) -> BOT -> 2 } Sat witness: Found: ((length([ll, _da])) -> length([cons(x, ll), s(_da)]), { _da -> z ; ll -> nil ; x -> b }) ------------------------------------------- Step 9, which took 0.011714 s (model generation: 0.011087, model checking: 0.000627): Model: |_ { insert -> {{{ Q={q_gen_242, q_gen_243, q_gen_244, q_gen_247, q_gen_248}, Q_f={q_gen_242}, Delta= { () -> q_gen_243 () -> q_gen_244 (q_gen_244, q_gen_243) -> q_gen_247 () -> q_gen_248 (q_gen_248, q_gen_247) -> q_gen_242 (q_gen_244, q_gen_243) -> q_gen_242 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_241, q_gen_250}, Q_f={q_gen_241}, Delta= { () -> q_gen_250 (q_gen_250, q_gen_241) -> q_gen_241 () -> q_gen_241 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_239}, Q_f={q_gen_239}, Delta= { () -> q_gen_239 () -> q_gen_239 } Datatype: Convolution form: right }}} ; leqnat -> {{{ Q={q_gen_236, q_gen_238}, Q_f={q_gen_236}, Delta= { () -> q_gen_238 (q_gen_236) -> q_gen_236 (q_gen_238) -> q_gen_236 () -> q_gen_236 } 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 () -> leqnat([z, s(nn2)]) -> 3 () -> leqnat([z, z]) -> 3 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 1 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 4 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 4 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 4 (leq([b, a])) -> BOT -> 2 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 4 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 2 (leqnat([s(nn1), z])) -> BOT -> 2 } Sat witness: Found: ((insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]), { _y -> cons(b, nil) ; x -> b ; y -> a ; z -> nil }) ------------------------------------------- Step 10, which took 0.012253 s (model generation: 0.011398, model checking: 0.000855): Model: |_ { insert -> {{{ Q={q_gen_242, q_gen_243, q_gen_244, q_gen_247, q_gen_248}, Q_f={q_gen_242}, Delta= { () -> q_gen_243 () -> q_gen_244 (q_gen_244, q_gen_243) -> q_gen_247 () -> q_gen_248 () -> q_gen_248 (q_gen_248, q_gen_247) -> q_gen_242 (q_gen_244, q_gen_243) -> q_gen_242 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_241, q_gen_250}, Q_f={q_gen_241}, Delta= { () -> q_gen_250 (q_gen_250, q_gen_241) -> q_gen_241 () -> q_gen_241 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_239}, Q_f={q_gen_239}, Delta= { () -> q_gen_239 () -> q_gen_239 () -> q_gen_239 } Datatype: Convolution form: right }}} ; leqnat -> {{{ Q={q_gen_236, q_gen_238}, Q_f={q_gen_236}, Delta= { () -> q_gen_238 (q_gen_236) -> q_gen_236 (q_gen_238) -> q_gen_236 () -> q_gen_236 } 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 () -> leqnat([z, s(nn2)]) -> 3 () -> leqnat([z, z]) -> 3 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 2 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 4 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 4 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 4 (leq([b, a])) -> BOT -> 5 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 4 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 3 (leqnat([s(nn1), z])) -> BOT -> 3 } Sat witness: Found: ((leq([b, a])) -> BOT, { }) ------------------------------------------- Step 11, which took 0.009334 s (model generation: 0.008664, model checking: 0.000670): Model: |_ { insert -> {{{ Q={q_gen_242, q_gen_243, q_gen_244, q_gen_247, q_gen_248}, Q_f={q_gen_242}, Delta= { () -> q_gen_243 () -> q_gen_244 (q_gen_244, q_gen_243) -> q_gen_247 () -> q_gen_248 () -> q_gen_248 (q_gen_248, q_gen_247) -> q_gen_242 (q_gen_244, q_gen_243) -> q_gen_242 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_241, q_gen_250}, Q_f={q_gen_241}, Delta= { () -> q_gen_250 (q_gen_250, q_gen_241) -> q_gen_241 () -> q_gen_241 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_239, q_gen_251}, Q_f={q_gen_239}, Delta= { () -> q_gen_239 () -> q_gen_239 () -> q_gen_251 } Datatype: Convolution form: right }}} ; leqnat -> {{{ Q={q_gen_236, q_gen_238}, Q_f={q_gen_236}, Delta= { () -> q_gen_238 (q_gen_236) -> q_gen_236 (q_gen_238) -> q_gen_236 () -> q_gen_236 } 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 () -> leqnat([z, s(nn2)]) -> 6 () -> leqnat([z, z]) -> 4 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 3 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 4 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 4 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 4 (leq([b, a])) -> BOT -> 5 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 4 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 4 (leqnat([s(nn1), z])) -> BOT -> 4 } Sat witness: Found: (() -> leqnat([z, s(nn2)]), { nn2 -> s(z) }) ------------------------------------------- Step 12, which took 0.013201 s (model generation: 0.012926, model checking: 0.000275): Model: |_ { insert -> {{{ Q={q_gen_242, q_gen_243, q_gen_244, q_gen_247, q_gen_248}, Q_f={q_gen_242}, Delta= { () -> q_gen_243 () -> q_gen_244 (q_gen_244, q_gen_243) -> q_gen_247 () -> q_gen_248 () -> q_gen_248 (q_gen_248, q_gen_247) -> q_gen_242 (q_gen_244, q_gen_243) -> q_gen_242 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_241, q_gen_250}, Q_f={q_gen_241}, Delta= { () -> q_gen_250 (q_gen_250, q_gen_241) -> q_gen_241 () -> q_gen_241 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_239, q_gen_251}, Q_f={q_gen_239}, Delta= { () -> q_gen_239 () -> q_gen_239 () -> q_gen_251 } Datatype: Convolution form: right }}} ; leqnat -> {{{ Q={q_gen_236, q_gen_238}, Q_f={q_gen_236}, Delta= { (q_gen_238) -> q_gen_238 () -> q_gen_238 (q_gen_236) -> q_gen_236 (q_gen_238) -> q_gen_236 () -> q_gen_236 } 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 () -> leqnat([z, s(nn2)]) -> 6 () -> leqnat([z, z]) -> 4 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 4 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 4 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 4 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 4 (leq([b, a])) -> BOT -> 5 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 4 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 4 (leqnat([s(nn1), z])) -> BOT -> 4 } Sat witness: Found: (() -> leq([a, y]), { y -> a }) ------------------------------------------- Step 13, which took 0.014889 s (model generation: 0.014157, model checking: 0.000732): Model: |_ { insert -> {{{ Q={q_gen_242, q_gen_243, q_gen_244, q_gen_247, q_gen_248}, Q_f={q_gen_242}, Delta= { () -> q_gen_243 () -> q_gen_244 (q_gen_244, q_gen_243) -> q_gen_247 () -> q_gen_248 () -> q_gen_248 (q_gen_248, q_gen_247) -> q_gen_242 (q_gen_244, q_gen_243) -> q_gen_242 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_241, q_gen_250}, Q_f={q_gen_241}, Delta= { () -> q_gen_250 (q_gen_250, q_gen_241) -> q_gen_241 () -> q_gen_241 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_239, q_gen_251}, Q_f={q_gen_239}, Delta= { () -> q_gen_239 () -> q_gen_239 () -> q_gen_239 () -> q_gen_251 } Datatype: Convolution form: right }}} ; leqnat -> {{{ Q={q_gen_236, q_gen_238}, Q_f={q_gen_236}, Delta= { (q_gen_238) -> q_gen_238 () -> q_gen_238 (q_gen_236) -> q_gen_236 (q_gen_238) -> q_gen_236 () -> q_gen_236 } 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 () -> leqnat([z, s(nn2)]) -> 6 () -> leqnat([z, z]) -> 4 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 4 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 4 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 4 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 4 (leq([b, a])) -> BOT -> 5 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 4 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 4 (leqnat([s(nn1), z])) -> BOT -> 4 } Sat witness: Found: (() -> insert([x, nil, cons(x, nil)]), { x -> a }) ------------------------------------------- Step 14, which took 0.015434 s (model generation: 0.013484, model checking: 0.001950): Model: |_ { insert -> {{{ Q={q_gen_242, q_gen_243, q_gen_244, q_gen_247, q_gen_248}, Q_f={q_gen_242}, Delta= { () -> q_gen_243 () -> q_gen_244 () -> q_gen_244 (q_gen_244, q_gen_243) -> q_gen_247 () -> q_gen_248 () -> q_gen_248 (q_gen_244, q_gen_243) -> q_gen_242 (q_gen_248, q_gen_247) -> q_gen_242 (q_gen_244, q_gen_243) -> q_gen_242 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_241, q_gen_250}, Q_f={q_gen_241}, Delta= { () -> q_gen_250 (q_gen_250, q_gen_241) -> q_gen_241 () -> q_gen_241 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_239, q_gen_251}, Q_f={q_gen_239}, Delta= { () -> q_gen_239 () -> q_gen_239 () -> q_gen_239 () -> q_gen_251 } Datatype: Convolution form: right }}} ; leqnat -> {{{ Q={q_gen_236, q_gen_238}, Q_f={q_gen_236}, Delta= { (q_gen_238) -> q_gen_238 () -> q_gen_238 (q_gen_236) -> q_gen_236 (q_gen_238) -> q_gen_236 () -> q_gen_236 } 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 () -> leqnat([z, s(nn2)]) -> 6 () -> leqnat([z, z]) -> 4 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 4 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 4 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 4 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 7 (leq([b, a])) -> BOT -> 5 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 5 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 5 (leqnat([s(nn1), z])) -> 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 15, which took 0.014224 s (model generation: 0.013911, model checking: 0.000313): Model: |_ { insert -> {{{ Q={q_gen_242, q_gen_243, q_gen_244, q_gen_247, q_gen_248}, Q_f={q_gen_242}, Delta= { () -> q_gen_243 () -> q_gen_244 () -> q_gen_244 (q_gen_244, q_gen_243) -> q_gen_247 () -> q_gen_248 () -> q_gen_248 () -> q_gen_248 (q_gen_248, q_gen_247) -> q_gen_242 (q_gen_244, q_gen_243) -> q_gen_242 (q_gen_248, q_gen_247) -> q_gen_242 (q_gen_244, q_gen_243) -> q_gen_242 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_241, q_gen_250}, Q_f={q_gen_241}, Delta= { () -> q_gen_250 (q_gen_250, q_gen_241) -> q_gen_241 () -> q_gen_241 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_239, q_gen_251}, Q_f={q_gen_239}, Delta= { () -> q_gen_239 () -> q_gen_239 () -> q_gen_239 () -> q_gen_251 } Datatype: Convolution form: right }}} ; leqnat -> {{{ Q={q_gen_236, q_gen_238}, Q_f={q_gen_236}, Delta= { (q_gen_238) -> q_gen_238 () -> q_gen_238 (q_gen_236) -> q_gen_236 (q_gen_238) -> q_gen_236 () -> q_gen_236 } 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 () -> leqnat([z, s(nn2)]) -> 6 () -> leqnat([z, z]) -> 4 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 4 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 4 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 7 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 7 (leq([b, a])) -> BOT -> 5 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 5 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 5 (leqnat([s(nn1), z])) -> BOT -> 5 } Sat witness: Found: ((length([ll, _da])) -> length([cons(x, ll), s(_da)]), { _da -> z ; ll -> nil ; x -> a }) ------------------------------------------- Step 16, which took 0.015893 s (model generation: 0.014768, model checking: 0.001125): Model: |_ { insert -> {{{ Q={q_gen_242, q_gen_243, q_gen_244, q_gen_247, q_gen_248}, Q_f={q_gen_242}, Delta= { () -> q_gen_243 () -> q_gen_244 () -> q_gen_244 (q_gen_244, q_gen_243) -> q_gen_247 () -> q_gen_248 () -> q_gen_248 () -> q_gen_248 (q_gen_248, q_gen_247) -> q_gen_242 (q_gen_244, q_gen_243) -> q_gen_242 (q_gen_248, q_gen_247) -> q_gen_242 (q_gen_244, q_gen_243) -> q_gen_242 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_241, q_gen_250}, Q_f={q_gen_241}, Delta= { () -> q_gen_250 () -> q_gen_250 (q_gen_250, q_gen_241) -> q_gen_241 () -> q_gen_241 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_239, q_gen_251}, Q_f={q_gen_239}, Delta= { () -> q_gen_239 () -> q_gen_239 () -> q_gen_239 () -> q_gen_251 } Datatype: Convolution form: right }}} ; leqnat -> {{{ Q={q_gen_236, q_gen_238}, Q_f={q_gen_236}, Delta= { (q_gen_238) -> q_gen_238 () -> q_gen_238 (q_gen_236) -> q_gen_236 (q_gen_238) -> q_gen_236 () -> q_gen_236 } 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 () -> leqnat([z, s(nn2)]) -> 6 () -> leqnat([z, z]) -> 4 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 4 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 7 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 7 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 7 (leq([b, a])) -> BOT -> 5 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 5 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 5 (leqnat([s(nn1), z])) -> BOT -> 5 } Sat witness: Found: ((insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]), { _y -> cons(a, cons(a, nil)) ; x -> b ; y -> a ; z -> cons(a, nil) }) ------------------------------------------- Step 17, which took 0.026038 s (model generation: 0.015953, model checking: 0.010085): Model: |_ { insert -> {{{ Q={q_gen_242, q_gen_243, q_gen_244, q_gen_247, q_gen_248}, Q_f={q_gen_242}, Delta= { () -> q_gen_243 () -> q_gen_244 () -> q_gen_244 (q_gen_248, q_gen_247) -> q_gen_247 (q_gen_244, q_gen_243) -> q_gen_247 () -> q_gen_248 () -> q_gen_248 () -> q_gen_248 (q_gen_248, q_gen_247) -> q_gen_242 (q_gen_244, q_gen_243) -> q_gen_242 (q_gen_248, q_gen_247) -> q_gen_242 (q_gen_244, q_gen_243) -> q_gen_242 } Datatype: Convolution form: right }}} ; length -> {{{ Q={q_gen_241, q_gen_250}, Q_f={q_gen_241}, Delta= { () -> q_gen_250 () -> q_gen_250 (q_gen_250, q_gen_241) -> q_gen_241 () -> q_gen_241 } Datatype: Convolution form: right }}} ; leq -> {{{ Q={q_gen_239, q_gen_251}, Q_f={q_gen_239}, Delta= { () -> q_gen_239 () -> q_gen_239 () -> q_gen_239 () -> q_gen_251 } Datatype: Convolution form: right }}} ; leqnat -> {{{ Q={q_gen_236, q_gen_238}, Q_f={q_gen_236}, Delta= { (q_gen_238) -> q_gen_238 () -> q_gen_238 (q_gen_236) -> q_gen_236 (q_gen_238) -> q_gen_236 () -> q_gen_236 } 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 () -> leqnat([z, s(nn2)]) -> 7 () -> leqnat([z, z]) -> 5 (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 5 (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 7 (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 7 (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 10 (leq([b, a])) -> BOT -> 6 (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 6 (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 6 (leqnat([s(nn1), z])) -> 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.212769 Reason for stopping: Proved