Inference procedure has parameters: Ice fuel: 200 Timeout: 60s Convolution: right Learning problem is: env: { nat -> {s, z} } definition: { (plus, F: {() -> plus([n, z, n]) (plus([n, mm, _ap])) -> plus([n, s(mm), s(_ap)])} (plus([_bp, _cp, _dp]) /\ plus([_bp, _cp, _ep])) -> eq_nat([_dp, _ep]) ) (leq, P: {() -> leq([z, s(nn2)]) () -> leq([z, z]) (leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]) (leq([s(nn1), s(nn2)])) -> leq([nn1, nn2]) (leq([s(nn1), z])) -> BOT} ) } properties: {(plus([n, m, _fp])) -> leq([n, _fp])} over-approximation: {plus} under-approximation: {leq} Clause system for inference is: { () -> leq([z, s(nn2)]) -> 0 () -> leq([z, z]) -> 0 () -> plus([n, z, n]) -> 0 (leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]) -> 0 (leq([s(nn1), s(nn2)])) -> leq([nn1, nn2]) -> 0 (leq([s(nn1), z])) -> BOT -> 0 (plus([n, m, _fp])) -> leq([n, _fp]) -> 0 (plus([n, mm, _ap])) -> plus([n, s(mm), s(_ap)]) -> 0 } Solving took 0.136768 seconds. Proved Model: |_ { leq -> {{{ Q={q_gen_3038, q_gen_3040}, Q_f={q_gen_3038}, Delta= { (q_gen_3040) -> q_gen_3040 () -> q_gen_3040 (q_gen_3038) -> q_gen_3038 (q_gen_3040) -> q_gen_3038 () -> q_gen_3038 } Datatype: Convolution form: right }}} ; plus -> {{{ Q={q_gen_3037, q_gen_3042, q_gen_3052}, Q_f={q_gen_3037}, Delta= { (q_gen_3052) -> q_gen_3052 () -> q_gen_3052 (q_gen_3042) -> q_gen_3042 (q_gen_3052) -> q_gen_3042 () -> q_gen_3042 (q_gen_3037) -> q_gen_3037 (q_gen_3042) -> q_gen_3037 (q_gen_3042) -> q_gen_3037 (q_gen_3052) -> q_gen_3037 () -> q_gen_3037 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.010228 s (model generation: 0.009855, model checking: 0.000373): Model: |_ { leq -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; plus -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, s(nn2)]) -> 0 () -> leq([z, z]) -> 0 () -> plus([n, z, n]) -> 3 (leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]) -> 1 (leq([s(nn1), s(nn2)])) -> leq([nn1, nn2]) -> 1 (leq([s(nn1), z])) -> BOT -> 1 (plus([n, m, _fp])) -> leq([n, _fp]) -> 1 (plus([n, mm, _ap])) -> plus([n, s(mm), s(_ap)]) -> 1 } Sat witness: Found: (() -> plus([n, z, n]), { n -> z }) ------------------------------------------- Step 1, which took 0.010210 s (model generation: 0.010124, model checking: 0.000086): Model: |_ { leq -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; plus -> {{{ Q={q_gen_3037}, Q_f={q_gen_3037}, Delta= { () -> q_gen_3037 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, s(nn2)]) -> 0 () -> leq([z, z]) -> 3 () -> plus([n, z, n]) -> 3 (leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]) -> 1 (leq([s(nn1), s(nn2)])) -> leq([nn1, nn2]) -> 1 (leq([s(nn1), z])) -> BOT -> 1 (plus([n, m, _fp])) -> leq([n, _fp]) -> 1 (plus([n, mm, _ap])) -> plus([n, s(mm), s(_ap)]) -> 1 } Sat witness: Found: (() -> leq([z, z]), { }) ------------------------------------------- Step 2, which took 0.010299 s (model generation: 0.010175, model checking: 0.000124): Model: |_ { leq -> {{{ Q={q_gen_3038}, Q_f={q_gen_3038}, Delta= { () -> q_gen_3038 } Datatype: Convolution form: right }}} ; plus -> {{{ Q={q_gen_3037}, Q_f={q_gen_3037}, Delta= { () -> q_gen_3037 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, s(nn2)]) -> 3 () -> leq([z, z]) -> 3 () -> plus([n, z, n]) -> 3 (leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]) -> 1 (leq([s(nn1), s(nn2)])) -> leq([nn1, nn2]) -> 1 (leq([s(nn1), z])) -> BOT -> 1 (plus([n, m, _fp])) -> leq([n, _fp]) -> 1 (plus([n, mm, _ap])) -> plus([n, s(mm), s(_ap)]) -> 1 } Sat witness: Found: (() -> leq([z, s(nn2)]), { nn2 -> z }) ------------------------------------------- Step 3, which took 0.010664 s (model generation: 0.010472, model checking: 0.000192): Model: |_ { leq -> {{{ Q={q_gen_3038, q_gen_3040}, Q_f={q_gen_3038}, Delta= { () -> q_gen_3040 (q_gen_3040) -> q_gen_3038 () -> q_gen_3038 } Datatype: Convolution form: right }}} ; plus -> {{{ Q={q_gen_3037}, Q_f={q_gen_3037}, Delta= { () -> q_gen_3037 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, s(nn2)]) -> 3 () -> leq([z, z]) -> 3 () -> plus([n, z, n]) -> 3 (leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]) -> 1 (leq([s(nn1), s(nn2)])) -> leq([nn1, nn2]) -> 1 (leq([s(nn1), z])) -> BOT -> 1 (plus([n, m, _fp])) -> leq([n, _fp]) -> 1 (plus([n, mm, _ap])) -> plus([n, s(mm), s(_ap)]) -> 4 } Sat witness: Found: ((plus([n, mm, _ap])) -> plus([n, s(mm), s(_ap)]), { _ap -> z ; mm -> z ; n -> z }) ------------------------------------------- Step 4, which took 0.011160 s (model generation: 0.010828, model checking: 0.000332): Model: |_ { leq -> {{{ Q={q_gen_3038, q_gen_3040}, Q_f={q_gen_3038}, Delta= { () -> q_gen_3040 (q_gen_3040) -> q_gen_3038 () -> q_gen_3038 } Datatype: Convolution form: right }}} ; plus -> {{{ Q={q_gen_3037, q_gen_3042}, Q_f={q_gen_3037}, Delta= { () -> q_gen_3042 (q_gen_3042) -> q_gen_3037 () -> q_gen_3037 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, s(nn2)]) -> 3 () -> leq([z, z]) -> 3 () -> plus([n, z, n]) -> 3 (leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]) -> 4 (leq([s(nn1), s(nn2)])) -> leq([nn1, nn2]) -> 2 (leq([s(nn1), z])) -> BOT -> 2 (plus([n, m, _fp])) -> leq([n, _fp]) -> 2 (plus([n, mm, _ap])) -> plus([n, s(mm), s(_ap)]) -> 4 } Sat witness: Found: ((leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]), { nn1 -> z ; nn2 -> z }) ------------------------------------------- Step 5, which took 0.012477 s (model generation: 0.011989, model checking: 0.000488): Model: |_ { leq -> {{{ Q={q_gen_3038, q_gen_3040}, Q_f={q_gen_3038}, Delta= { () -> q_gen_3040 (q_gen_3038) -> q_gen_3038 (q_gen_3040) -> q_gen_3038 () -> q_gen_3038 } Datatype: Convolution form: right }}} ; plus -> {{{ Q={q_gen_3037, q_gen_3042}, Q_f={q_gen_3037}, Delta= { () -> q_gen_3042 (q_gen_3042) -> q_gen_3037 () -> q_gen_3037 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, s(nn2)]) -> 3 () -> leq([z, z]) -> 3 () -> plus([n, z, n]) -> 6 (leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]) -> 4 (leq([s(nn1), s(nn2)])) -> leq([nn1, nn2]) -> 3 (leq([s(nn1), z])) -> BOT -> 3 (plus([n, m, _fp])) -> leq([n, _fp]) -> 3 (plus([n, mm, _ap])) -> plus([n, s(mm), s(_ap)]) -> 4 } Sat witness: Found: (() -> plus([n, z, n]), { n -> s(s(z)) }) ------------------------------------------- Step 6, which took 0.011604 s (model generation: 0.011267, model checking: 0.000337): Model: |_ { leq -> {{{ Q={q_gen_3038, q_gen_3040}, Q_f={q_gen_3038}, Delta= { () -> q_gen_3040 (q_gen_3038) -> q_gen_3038 (q_gen_3040) -> q_gen_3038 () -> q_gen_3038 } Datatype: Convolution form: right }}} ; plus -> {{{ Q={q_gen_3037, q_gen_3042}, Q_f={q_gen_3037}, Delta= { (q_gen_3042) -> q_gen_3042 () -> q_gen_3042 (q_gen_3042) -> q_gen_3037 (q_gen_3042) -> q_gen_3037 () -> q_gen_3037 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, s(nn2)]) -> 3 () -> leq([z, z]) -> 3 () -> plus([n, z, n]) -> 6 (leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]) -> 4 (leq([s(nn1), s(nn2)])) -> leq([nn1, nn2]) -> 3 (leq([s(nn1), z])) -> BOT -> 3 (plus([n, m, _fp])) -> leq([n, _fp]) -> 6 (plus([n, mm, _ap])) -> plus([n, s(mm), s(_ap)]) -> 4 } Sat witness: Found: ((plus([n, m, _fp])) -> leq([n, _fp]), { _fp -> s(s(z)) ; m -> s(s(z)) ; n -> z }) ------------------------------------------- Step 7, which took 0.013195 s (model generation: 0.012218, model checking: 0.000977): Model: |_ { leq -> {{{ Q={q_gen_3038, q_gen_3040}, Q_f={q_gen_3038}, Delta= { (q_gen_3040) -> q_gen_3040 () -> q_gen_3040 (q_gen_3038) -> q_gen_3038 (q_gen_3040) -> q_gen_3038 () -> q_gen_3038 } Datatype: Convolution form: right }}} ; plus -> {{{ Q={q_gen_3037, q_gen_3042}, Q_f={q_gen_3037}, Delta= { (q_gen_3042) -> q_gen_3042 () -> q_gen_3042 (q_gen_3042) -> q_gen_3037 (q_gen_3042) -> q_gen_3037 () -> q_gen_3037 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, s(nn2)]) -> 4 () -> leq([z, z]) -> 4 () -> plus([n, z, n]) -> 6 (leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]) -> 4 (leq([s(nn1), s(nn2)])) -> leq([nn1, nn2]) -> 4 (leq([s(nn1), z])) -> BOT -> 4 (plus([n, m, _fp])) -> leq([n, _fp]) -> 6 (plus([n, mm, _ap])) -> plus([n, s(mm), s(_ap)]) -> 7 } Sat witness: Found: ((plus([n, mm, _ap])) -> plus([n, s(mm), s(_ap)]), { _ap -> s(z) ; mm -> z ; n -> s(z) }) ------------------------------------------- Step 8, which took 0.014211 s (model generation: 0.013233, model checking: 0.000978): Model: |_ { leq -> {{{ Q={q_gen_3038, q_gen_3040}, Q_f={q_gen_3038}, Delta= { (q_gen_3040) -> q_gen_3040 () -> q_gen_3040 (q_gen_3038) -> q_gen_3038 (q_gen_3040) -> q_gen_3038 () -> q_gen_3038 } Datatype: Convolution form: right }}} ; plus -> {{{ Q={q_gen_3037, q_gen_3042, q_gen_3052}, Q_f={q_gen_3037}, Delta= { () -> q_gen_3052 (q_gen_3042) -> q_gen_3042 () -> q_gen_3042 (q_gen_3037) -> q_gen_3037 (q_gen_3042) -> q_gen_3037 (q_gen_3042) -> q_gen_3037 (q_gen_3052) -> q_gen_3037 () -> q_gen_3037 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, s(nn2)]) -> 5 () -> leq([z, z]) -> 5 () -> plus([n, z, n]) -> 7 (leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]) -> 5 (leq([s(nn1), s(nn2)])) -> leq([nn1, nn2]) -> 5 (leq([s(nn1), z])) -> BOT -> 5 (plus([n, m, _fp])) -> leq([n, _fp]) -> 7 (plus([n, mm, _ap])) -> plus([n, s(mm), s(_ap)]) -> 10 } Sat witness: Found: ((plus([n, mm, _ap])) -> plus([n, s(mm), s(_ap)]), { _ap -> s(z) ; mm -> z ; n -> z }) ------------------------------------------- Step 9, which took 0.015377 s (model generation: 0.013972, model checking: 0.001405): Model: |_ { leq -> {{{ Q={q_gen_3038, q_gen_3040}, Q_f={q_gen_3038}, Delta= { (q_gen_3040) -> q_gen_3040 () -> q_gen_3040 (q_gen_3038) -> q_gen_3038 (q_gen_3040) -> q_gen_3038 () -> q_gen_3038 } Datatype: Convolution form: right }}} ; plus -> {{{ Q={q_gen_3037, q_gen_3042, q_gen_3052}, Q_f={q_gen_3037}, Delta= { () -> q_gen_3052 (q_gen_3042) -> q_gen_3042 (q_gen_3052) -> q_gen_3042 () -> q_gen_3042 (q_gen_3037) -> q_gen_3037 (q_gen_3042) -> q_gen_3037 (q_gen_3042) -> q_gen_3037 (q_gen_3052) -> q_gen_3037 () -> q_gen_3037 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, s(nn2)]) -> 6 () -> leq([z, z]) -> 6 () -> plus([n, z, n]) -> 8 (leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]) -> 6 (leq([s(nn1), s(nn2)])) -> leq([nn1, nn2]) -> 6 (leq([s(nn1), z])) -> BOT -> 6 (plus([n, m, _fp])) -> leq([n, _fp]) -> 8 (plus([n, mm, _ap])) -> plus([n, s(mm), s(_ap)]) -> 13 } Sat witness: Found: ((plus([n, mm, _ap])) -> plus([n, s(mm), s(_ap)]), { _ap -> s(s(z)) ; mm -> z ; n -> s(z) }) Total time: 0.136768 Reason for stopping: Proved