Solving ../../benchmarks/true/insert_length_leq.smt2... Inference procedure has parameters: Ice fuel: 200 Timeout: 30s Convolution: complete 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.304789 seconds. Proved Model: |_ { insert -> {{{ Q={q_gen_1081, q_gen_1082, q_gen_1083, q_gen_1086, q_gen_1087, q_gen_1088, q_gen_1089}, Q_f={q_gen_1081}, Delta= { (q_gen_1083, q_gen_1082) -> q_gen_1082 () -> q_gen_1082 () -> q_gen_1083 () -> q_gen_1083 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1086 (q_gen_1083, q_gen_1082) -> q_gen_1086 (q_gen_1083, q_gen_1082) -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1087 () -> q_gen_1087 () -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1088 (q_gen_1083, q_gen_1082) -> q_gen_1088 () -> q_gen_1089 () -> q_gen_1089 () -> q_gen_1089 () -> q_gen_1089 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 } Datatype: Convolution form: complete }}} ; length -> {{{ Q={q_gen_1080, q_gen_1091, q_gen_1116}, Q_f={q_gen_1080}, Delta= { (q_gen_1116) -> q_gen_1116 () -> q_gen_1116 (q_gen_1091, q_gen_1080) -> q_gen_1080 () -> q_gen_1080 (q_gen_1116) -> q_gen_1091 () -> q_gen_1091 (q_gen_1116) -> q_gen_1091 () -> q_gen_1091 } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078, q_gen_1092}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1092 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { (q_gen_1077) -> q_gen_1077 () -> q_gen_1077 (q_gen_1075) -> q_gen_1075 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.004450 s (model generation: 0.004118, model checking: 0.000332): Model: |_ { insert -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; length -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} } -- 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: Yes: (() -> leqnat([z, z]), { }) ------------------------------------------- Step 1, which took 0.003681 s (model generation: 0.003636, model checking: 0.000045): Model: |_ { insert -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; length -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075}, Q_f={q_gen_1075}, Delta= { () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- 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: Yes: (() -> leqnat([z, s(nn2)]), { nn2 -> z }) ------------------------------------------- Step 2, which took 0.003625 s (model generation: 0.003604, model checking: 0.000021): Model: |_ { insert -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; length -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { () -> q_gen_1077 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- 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: Yes: (() -> leq([b, b]), { }) ------------------------------------------- Step 3, which took 0.003421 s (model generation: 0.003395, model checking: 0.000026): Model: |_ { insert -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; length -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { () -> q_gen_1077 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- 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: Yes: (() -> leq([a, y]), { y -> b }) ------------------------------------------- Step 4, which took 0.003796 s (model generation: 0.003732, model checking: 0.000064): Model: |_ { insert -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; length -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { () -> q_gen_1077 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- 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: Yes: (() -> length([nil, z]), { }) ------------------------------------------- Step 5, which took 0.006125 s (model generation: 0.005926, model checking: 0.000199): Model: |_ { insert -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; length -> {{{ Q={q_gen_1080}, Q_f={q_gen_1080}, Delta= { () -> q_gen_1080 } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { () -> q_gen_1077 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- 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: Yes: (() -> insert([x, nil, cons(x, nil)]), { x -> b }) ------------------------------------------- Step 6, which took 0.008517 s (model generation: 0.008266, model checking: 0.000251): Model: |_ { insert -> {{{ Q={q_gen_1081, q_gen_1082, q_gen_1083}, Q_f={q_gen_1081}, Delta= { () -> q_gen_1082 () -> q_gen_1083 (q_gen_1083, q_gen_1082) -> q_gen_1081 } Datatype: Convolution form: complete }}} ; length -> {{{ Q={q_gen_1080}, Q_f={q_gen_1080}, Delta= { () -> q_gen_1080 } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { () -> q_gen_1077 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- 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: Yes: ((leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]), { nn1 -> z ; nn2 -> z }) ------------------------------------------- Step 7, which took 0.009005 s (model generation: 0.008363, model checking: 0.000642): Model: |_ { insert -> {{{ Q={q_gen_1081, q_gen_1082, q_gen_1083}, Q_f={q_gen_1081}, Delta= { () -> q_gen_1082 () -> q_gen_1083 (q_gen_1083, q_gen_1082) -> q_gen_1081 } Datatype: Convolution form: complete }}} ; length -> {{{ Q={q_gen_1080}, Q_f={q_gen_1080}, Delta= { () -> q_gen_1080 } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { () -> q_gen_1077 (q_gen_1075) -> q_gen_1075 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- 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: Yes: ((leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]), { x -> a ; y -> b ; z -> nil }) ------------------------------------------- Step 8, which took 0.010172 s (model generation: 0.009893, model checking: 0.000279): Model: |_ { insert -> {{{ Q={q_gen_1081, q_gen_1082, q_gen_1083, q_gen_1086, q_gen_1087, q_gen_1088, q_gen_1089}, Q_f={q_gen_1081}, Delta= { () -> q_gen_1082 () -> q_gen_1083 (q_gen_1083, q_gen_1082) -> q_gen_1086 () -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1088 () -> q_gen_1089 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 } Datatype: Convolution form: complete }}} ; length -> {{{ Q={q_gen_1080}, Q_f={q_gen_1080}, Delta= { () -> q_gen_1080 } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { () -> q_gen_1077 (q_gen_1075) -> q_gen_1075 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- 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: Yes: ((length([ll, _da])) -> length([cons(x, ll), s(_da)]), { _da -> z ; ll -> nil ; x -> b }) ------------------------------------------- Step 9, which took 0.012603 s (model generation: 0.011703, model checking: 0.000900): Model: |_ { insert -> {{{ Q={q_gen_1081, q_gen_1082, q_gen_1083, q_gen_1086, q_gen_1087, q_gen_1088, q_gen_1089}, Q_f={q_gen_1081}, Delta= { () -> q_gen_1082 () -> q_gen_1083 (q_gen_1083, q_gen_1082) -> q_gen_1086 () -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1088 () -> q_gen_1089 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 } Datatype: Convolution form: complete }}} ; length -> {{{ Q={q_gen_1080, q_gen_1091}, Q_f={q_gen_1080}, Delta= { (q_gen_1091, q_gen_1080) -> q_gen_1080 () -> q_gen_1080 () -> q_gen_1091 } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { () -> q_gen_1077 (q_gen_1075) -> q_gen_1075 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- 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: Yes: ((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.013145 s (model generation: 0.012723, model checking: 0.000422): Model: |_ { insert -> {{{ Q={q_gen_1081, q_gen_1082, q_gen_1083, q_gen_1086, q_gen_1087, q_gen_1088, q_gen_1089}, Q_f={q_gen_1081}, Delta= { () -> q_gen_1082 () -> q_gen_1083 (q_gen_1083, q_gen_1082) -> q_gen_1086 () -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1088 (q_gen_1083, q_gen_1082) -> q_gen_1088 () -> q_gen_1089 () -> q_gen_1089 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 } Datatype: Convolution form: complete }}} ; length -> {{{ Q={q_gen_1080, q_gen_1091}, Q_f={q_gen_1080}, Delta= { (q_gen_1091, q_gen_1080) -> q_gen_1080 () -> q_gen_1080 () -> q_gen_1091 } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1078 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { () -> q_gen_1077 (q_gen_1075) -> q_gen_1075 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- 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: Yes: ((leq([b, a])) -> BOT, { }) ------------------------------------------- Step 11, which took 0.011037 s (model generation: 0.010703, model checking: 0.000334): Model: |_ { insert -> {{{ Q={q_gen_1081, q_gen_1082, q_gen_1083, q_gen_1086, q_gen_1087, q_gen_1088, q_gen_1089}, Q_f={q_gen_1081}, Delta= { () -> q_gen_1082 () -> q_gen_1083 (q_gen_1083, q_gen_1082) -> q_gen_1086 () -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1088 (q_gen_1083, q_gen_1082) -> q_gen_1088 () -> q_gen_1089 () -> q_gen_1089 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 } Datatype: Convolution form: complete }}} ; length -> {{{ Q={q_gen_1080, q_gen_1091}, Q_f={q_gen_1080}, Delta= { (q_gen_1091, q_gen_1080) -> q_gen_1080 () -> q_gen_1080 () -> q_gen_1091 } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078, q_gen_1092}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1092 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { () -> q_gen_1077 (q_gen_1075) -> q_gen_1075 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- 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: Yes: (() -> leqnat([z, s(nn2)]), { nn2 -> s(z) }) ------------------------------------------- Step 12, which took 0.012432 s (model generation: 0.012035, model checking: 0.000397): Model: |_ { insert -> {{{ Q={q_gen_1081, q_gen_1082, q_gen_1083, q_gen_1086, q_gen_1087, q_gen_1088, q_gen_1089}, Q_f={q_gen_1081}, Delta= { () -> q_gen_1082 () -> q_gen_1083 (q_gen_1083, q_gen_1082) -> q_gen_1086 () -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1088 (q_gen_1083, q_gen_1082) -> q_gen_1088 () -> q_gen_1089 () -> q_gen_1089 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 } Datatype: Convolution form: complete }}} ; length -> {{{ Q={q_gen_1080, q_gen_1091}, Q_f={q_gen_1080}, Delta= { (q_gen_1091, q_gen_1080) -> q_gen_1080 () -> q_gen_1080 () -> q_gen_1091 } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078, q_gen_1092}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1092 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { (q_gen_1077) -> q_gen_1077 () -> q_gen_1077 (q_gen_1075) -> q_gen_1075 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- 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: Yes: (() -> leq([a, y]), { y -> a }) ------------------------------------------- Step 13, which took 0.012106 s (model generation: 0.011571, model checking: 0.000535): Model: |_ { insert -> {{{ Q={q_gen_1081, q_gen_1082, q_gen_1083, q_gen_1086, q_gen_1087, q_gen_1088, q_gen_1089}, Q_f={q_gen_1081}, Delta= { () -> q_gen_1082 () -> q_gen_1083 (q_gen_1083, q_gen_1082) -> q_gen_1086 () -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1088 (q_gen_1083, q_gen_1082) -> q_gen_1088 () -> q_gen_1089 () -> q_gen_1089 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 } Datatype: Convolution form: complete }}} ; length -> {{{ Q={q_gen_1080, q_gen_1091}, Q_f={q_gen_1080}, Delta= { (q_gen_1091, q_gen_1080) -> q_gen_1080 () -> q_gen_1080 () -> q_gen_1091 } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078, q_gen_1092}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1092 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { (q_gen_1077) -> q_gen_1077 () -> q_gen_1077 (q_gen_1075) -> q_gen_1075 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- 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: Yes: (() -> insert([x, nil, cons(x, nil)]), { x -> a }) ------------------------------------------- Step 14, which took 0.020755 s (model generation: 0.008740, model checking: 0.012015): Model: |_ { insert -> {{{ Q={q_gen_1081, q_gen_1082, q_gen_1083, q_gen_1086, q_gen_1087, q_gen_1088, q_gen_1089}, Q_f={q_gen_1081}, Delta= { () -> q_gen_1082 () -> q_gen_1083 () -> q_gen_1083 (q_gen_1083, q_gen_1082) -> q_gen_1086 () -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1088 (q_gen_1083, q_gen_1082) -> q_gen_1088 () -> q_gen_1089 () -> q_gen_1089 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 } Datatype: Convolution form: complete }}} ; length -> {{{ Q={q_gen_1080, q_gen_1091}, Q_f={q_gen_1080}, Delta= { (q_gen_1091, q_gen_1080) -> q_gen_1080 () -> q_gen_1080 () -> q_gen_1091 } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078, q_gen_1092}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1092 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { (q_gen_1077) -> q_gen_1077 () -> q_gen_1077 (q_gen_1075) -> q_gen_1075 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- 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: Yes: ((leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]), { x -> b ; y -> b ; z -> nil }) ------------------------------------------- Step 15, which took 0.015367 s (model generation: 0.015049, model checking: 0.000318): Model: |_ { insert -> {{{ Q={q_gen_1081, q_gen_1082, q_gen_1083, q_gen_1086, q_gen_1087, q_gen_1088, q_gen_1089}, Q_f={q_gen_1081}, Delta= { () -> q_gen_1082 () -> q_gen_1083 () -> q_gen_1083 (q_gen_1083, q_gen_1082) -> q_gen_1086 () -> q_gen_1087 () -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1088 (q_gen_1083, q_gen_1082) -> q_gen_1088 () -> q_gen_1089 () -> q_gen_1089 () -> q_gen_1089 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 } Datatype: Convolution form: complete }}} ; length -> {{{ Q={q_gen_1080, q_gen_1091}, Q_f={q_gen_1080}, Delta= { (q_gen_1091, q_gen_1080) -> q_gen_1080 () -> q_gen_1080 () -> q_gen_1091 } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078, q_gen_1092}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1092 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { (q_gen_1077) -> q_gen_1077 () -> q_gen_1077 (q_gen_1075) -> q_gen_1075 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- 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: Yes: ((length([ll, _da])) -> length([cons(x, ll), s(_da)]), { _da -> z ; ll -> nil ; x -> a }) ------------------------------------------- Step 16, which took 0.030975 s (model generation: 0.015529, model checking: 0.015446): Model: |_ { insert -> {{{ Q={q_gen_1081, q_gen_1082, q_gen_1083, q_gen_1086, q_gen_1087, q_gen_1088, q_gen_1089}, Q_f={q_gen_1081}, Delta= { () -> q_gen_1082 () -> q_gen_1083 () -> q_gen_1083 (q_gen_1083, q_gen_1082) -> q_gen_1086 () -> q_gen_1087 () -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1088 (q_gen_1083, q_gen_1082) -> q_gen_1088 () -> q_gen_1089 () -> q_gen_1089 () -> q_gen_1089 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 } Datatype: Convolution form: complete }}} ; length -> {{{ Q={q_gen_1080, q_gen_1091}, Q_f={q_gen_1080}, Delta= { (q_gen_1091, q_gen_1080) -> q_gen_1080 () -> q_gen_1080 () -> q_gen_1091 () -> q_gen_1091 } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078, q_gen_1092}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1092 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { (q_gen_1077) -> q_gen_1077 () -> q_gen_1077 (q_gen_1075) -> q_gen_1075 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- 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: Yes: ((insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]), { _y -> cons(b, cons(b, nil)) ; x -> b ; y -> a ; z -> cons(b, nil) }) ------------------------------------------- Step 17, which took 0.019645 s (model generation: 0.011945, model checking: 0.007700): Model: |_ { insert -> {{{ Q={q_gen_1081, q_gen_1082, q_gen_1083, q_gen_1086, q_gen_1087, q_gen_1088, q_gen_1089}, Q_f={q_gen_1081}, Delta= { (q_gen_1083, q_gen_1082) -> q_gen_1082 () -> q_gen_1082 () -> q_gen_1083 () -> q_gen_1083 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1086 (q_gen_1083, q_gen_1082) -> q_gen_1086 (q_gen_1083, q_gen_1082) -> q_gen_1087 () -> q_gen_1087 () -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1088 (q_gen_1083, q_gen_1082) -> q_gen_1088 () -> q_gen_1089 () -> q_gen_1089 () -> q_gen_1089 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 } Datatype: Convolution form: complete }}} ; length -> {{{ Q={q_gen_1080, q_gen_1091}, Q_f={q_gen_1080}, Delta= { (q_gen_1091, q_gen_1080) -> q_gen_1080 () -> q_gen_1080 () -> q_gen_1091 () -> q_gen_1091 } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078, q_gen_1092}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1092 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { (q_gen_1077) -> q_gen_1077 () -> q_gen_1077 (q_gen_1075) -> q_gen_1075 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- 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: Yes: ((leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]), { x -> b ; y -> b ; z -> cons(b, nil) }) ------------------------------------------- Step 18, which took 0.016532 s (model generation: 0.015328, model checking: 0.001204): Model: |_ { insert -> {{{ Q={q_gen_1081, q_gen_1082, q_gen_1083, q_gen_1086, q_gen_1087, q_gen_1088, q_gen_1089}, Q_f={q_gen_1081}, Delta= { (q_gen_1083, q_gen_1082) -> q_gen_1082 () -> q_gen_1082 () -> q_gen_1083 () -> q_gen_1083 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1086 (q_gen_1083, q_gen_1082) -> q_gen_1086 (q_gen_1083, q_gen_1082) -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1087 () -> q_gen_1087 () -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1088 (q_gen_1083, q_gen_1082) -> q_gen_1088 () -> q_gen_1089 () -> q_gen_1089 () -> q_gen_1089 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 } Datatype: Convolution form: complete }}} ; length -> {{{ Q={q_gen_1080, q_gen_1091}, Q_f={q_gen_1080}, Delta= { (q_gen_1091, q_gen_1080) -> q_gen_1080 () -> q_gen_1080 () -> q_gen_1091 () -> q_gen_1091 } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078, q_gen_1092}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1092 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { (q_gen_1077) -> q_gen_1077 () -> q_gen_1077 (q_gen_1075) -> q_gen_1075 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- 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]) -> 6 ; () -> leq([a, y]) -> 7 ; () -> leq([b, b]) -> 6 ; () -> leqnat([z, s(nn2)]) -> 7 ; () -> leqnat([z, z]) -> 6 ; (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 6 ; (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)]) -> 10 ; (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 10 ; (leq([b, a])) -> BOT -> 7 ; (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 7 ; (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 7 ; (leqnat([s(nn1), z])) -> BOT -> 7 } Sat witness: Yes: ((length([ll, _da])) -> length([cons(x, ll), s(_da)]), { _da -> s(z) ; ll -> cons(a, nil) ; x -> b }) ------------------------------------------- Step 19, which took 0.039925 s (model generation: 0.018032, model checking: 0.021893): Model: |_ { insert -> {{{ Q={q_gen_1081, q_gen_1082, q_gen_1083, q_gen_1086, q_gen_1087, q_gen_1088, q_gen_1089}, Q_f={q_gen_1081}, Delta= { (q_gen_1083, q_gen_1082) -> q_gen_1082 () -> q_gen_1082 () -> q_gen_1083 () -> q_gen_1083 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1086 (q_gen_1083, q_gen_1082) -> q_gen_1086 (q_gen_1083, q_gen_1082) -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1087 () -> q_gen_1087 () -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1088 (q_gen_1083, q_gen_1082) -> q_gen_1088 () -> q_gen_1089 () -> q_gen_1089 () -> q_gen_1089 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 } Datatype: Convolution form: complete }}} ; length -> {{{ Q={q_gen_1080, q_gen_1091, q_gen_1116}, Q_f={q_gen_1080}, Delta= { () -> q_gen_1116 (q_gen_1091, q_gen_1080) -> q_gen_1080 () -> q_gen_1080 () -> q_gen_1091 (q_gen_1116) -> q_gen_1091 () -> q_gen_1091 } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078, q_gen_1092}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1092 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { (q_gen_1077) -> q_gen_1077 () -> q_gen_1077 (q_gen_1075) -> q_gen_1075 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| Teacher's answer: New clause system: { () -> insert([x, nil, cons(x, nil)]) -> 8 ; () -> length([nil, z]) -> 7 ; () -> leq([a, y]) -> 8 ; () -> leq([b, b]) -> 7 ; () -> leqnat([z, s(nn2)]) -> 8 ; () -> leqnat([z, z]) -> 7 ; (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 7 ; (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 8 ; (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 10 ; (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 13 ; (leq([b, a])) -> BOT -> 8 ; (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 8 ; (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 8 ; (leqnat([s(nn1), z])) -> BOT -> 8 } Sat witness: Yes: ((leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]), { x -> b ; y -> b ; z -> cons(a, nil) }) ------------------------------------------- Step 20, which took 0.015696 s (model generation: 0.006846, model checking: 0.008850): Model: |_ { insert -> {{{ Q={q_gen_1081, q_gen_1082, q_gen_1083, q_gen_1086, q_gen_1087, q_gen_1088, q_gen_1089}, Q_f={q_gen_1081}, Delta= { (q_gen_1083, q_gen_1082) -> q_gen_1082 () -> q_gen_1082 () -> q_gen_1083 () -> q_gen_1083 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1086 (q_gen_1083, q_gen_1082) -> q_gen_1086 (q_gen_1083, q_gen_1082) -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1087 () -> q_gen_1087 () -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1088 (q_gen_1083, q_gen_1082) -> q_gen_1088 () -> q_gen_1089 () -> q_gen_1089 () -> q_gen_1089 () -> q_gen_1089 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 } Datatype: Convolution form: complete }}} ; length -> {{{ Q={q_gen_1080, q_gen_1091, q_gen_1116}, Q_f={q_gen_1080}, Delta= { () -> q_gen_1116 (q_gen_1091, q_gen_1080) -> q_gen_1080 () -> q_gen_1080 () -> q_gen_1091 (q_gen_1116) -> q_gen_1091 () -> q_gen_1091 } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078, q_gen_1092}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1092 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { (q_gen_1077) -> q_gen_1077 () -> q_gen_1077 (q_gen_1075) -> q_gen_1075 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| Teacher's answer: New clause system: { () -> insert([x, nil, cons(x, nil)]) -> 9 ; () -> length([nil, z]) -> 8 ; () -> leq([a, y]) -> 9 ; () -> leq([b, b]) -> 8 ; () -> leqnat([z, s(nn2)]) -> 9 ; () -> leqnat([z, z]) -> 8 ; (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 8 ; (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 9 ; (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 13 ; (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 13 ; (leq([b, a])) -> BOT -> 9 ; (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 9 ; (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 9 ; (leqnat([s(nn1), z])) -> BOT -> 9 } Sat witness: Yes: ((length([ll, _da])) -> length([cons(x, ll), s(_da)]), { _da -> s(z) ; ll -> cons(b, nil) ; x -> a }) ------------------------------------------- Step 21, which took 0.015706 s (model generation: 0.006930, model checking: 0.008776): Model: |_ { insert -> {{{ Q={q_gen_1081, q_gen_1082, q_gen_1083, q_gen_1086, q_gen_1087, q_gen_1088, q_gen_1089}, Q_f={q_gen_1081}, Delta= { (q_gen_1083, q_gen_1082) -> q_gen_1082 () -> q_gen_1082 () -> q_gen_1083 () -> q_gen_1083 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1086 (q_gen_1083, q_gen_1082) -> q_gen_1086 (q_gen_1083, q_gen_1082) -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1087 () -> q_gen_1087 () -> q_gen_1087 (q_gen_1083, q_gen_1082) -> q_gen_1088 (q_gen_1083, q_gen_1082) -> q_gen_1088 () -> q_gen_1089 () -> q_gen_1089 () -> q_gen_1089 () -> q_gen_1089 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 (q_gen_1089, q_gen_1088, q_gen_1087, q_gen_1086) -> q_gen_1081 (q_gen_1083, q_gen_1082) -> q_gen_1081 } Datatype: Convolution form: complete }}} ; length -> {{{ Q={q_gen_1080, q_gen_1091, q_gen_1116}, Q_f={q_gen_1080}, Delta= { () -> q_gen_1116 (q_gen_1091, q_gen_1080) -> q_gen_1080 () -> q_gen_1080 (q_gen_1116) -> q_gen_1091 () -> q_gen_1091 (q_gen_1116) -> q_gen_1091 () -> q_gen_1091 } Datatype: Convolution form: complete }}} ; leq -> {{{ Q={q_gen_1078, q_gen_1092}, Q_f={q_gen_1078}, Delta= { () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1078 () -> q_gen_1092 } Datatype: Convolution form: complete }}} ; leqnat -> {{{ Q={q_gen_1075, q_gen_1077}, Q_f={q_gen_1075}, Delta= { (q_gen_1077) -> q_gen_1077 () -> q_gen_1077 (q_gen_1075) -> q_gen_1075 (q_gen_1077) -> q_gen_1075 () -> q_gen_1075 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist, eq_nat} _| Teacher's answer: New clause system: { () -> insert([x, nil, cons(x, nil)]) -> 10 ; () -> length([nil, z]) -> 9 ; () -> leq([a, y]) -> 10 ; () -> leq([b, b]) -> 9 ; () -> leqnat([z, s(nn2)]) -> 10 ; () -> leqnat([z, z]) -> 9 ; (insert([x, l, _ia]) /\ length([_ia, _ja]) /\ length([l, _ha])) -> leqnat([_ha, _ja]) -> 9 ; (insert([x, z, _y]) /\ not leq([x, y])) -> insert([x, cons(y, z), cons(y, _y)]) -> 10 ; (length([ll, _da])) -> length([cons(x, ll), s(_da)]) -> 16 ; (leq([x, y])) -> insert([x, cons(y, z), cons(x, cons(y, z))]) -> 14 ; (leq([b, a])) -> BOT -> 10 ; (leqnat([nn1, nn2])) -> leqnat([s(nn1), s(nn2)]) -> 10 ; (leqnat([s(nn1), s(nn2)])) -> leqnat([nn1, nn2]) -> 10 ; (leqnat([s(nn1), z])) -> BOT -> 10 } Sat witness: Yes: ((length([ll, _da])) -> length([cons(x, ll), s(_da)]), { _da -> s(s(z)) ; ll -> cons(b, cons(b, nil)) ; x -> b }) Total time: 0.304789 Reason for stopping: Proved