Inference procedure has parameters: Ice fuel: 200 Timeout: 60s Convolution: left Learning problem is: env: { nat -> {s, z} } definition: { (leq, P: {() -> leq([z, n2]) (leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]) (leq([s(nn1), s(nn2)])) -> leq([nn1, nn2]) (leq([s(nn1), z])) -> BOT} ) (max, F: {(leq([n, m])) -> max([n, m, m]) (not leq([n, m])) -> max([n, m, n])} (max([_an, _bn, _cn]) /\ max([_an, _bn, _dn])) -> eq_nat([_cn, _dn]) ) } properties: {(max([i, j, _en])) -> leq([i, _en]), (max([i, j, _fn])) -> leq([j, _fn])} over-approximation: {max} under-approximation: {leq} Clause system for inference is: { () -> leq([z, n2]) -> 0 (leq([n, m])) -> max([n, m, m]) -> 0 (not leq([n, m])) -> max([n, m, 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 (max([i, j, _en])) -> leq([i, _en]) -> 0 (max([i, j, _fn])) -> leq([j, _fn]) -> 0 } Solving took 0.155366 seconds. Proved Model: |_ { leq -> {{{ Q={q_gen_3384, q_gen_3388, q_gen_3391}, Q_f={q_gen_3384}, Delta= { (q_gen_3388) -> q_gen_3388 () -> q_gen_3388 (q_gen_3384) -> q_gen_3384 (q_gen_3388) -> q_gen_3384 () -> q_gen_3384 (q_gen_3388) -> q_gen_3391 } Datatype: Convolution form: left }}} ; max -> {{{ Q={q_gen_3385, q_gen_3389, q_gen_3390, q_gen_3395}, Q_f={q_gen_3385}, Delta= { () -> q_gen_3390 (q_gen_3395) -> q_gen_3395 () -> q_gen_3395 (q_gen_3385) -> q_gen_3385 (q_gen_3395) -> q_gen_3385 (q_gen_3395) -> q_gen_3385 () -> q_gen_3385 (q_gen_3390) -> q_gen_3389 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.020603 s (model generation: 0.020416, model checking: 0.000187): Model: |_ { leq -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: left }}} ; max -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 0 (leq([n, m])) -> max([n, m, m]) -> 0 (not leq([n, m])) -> max([n, m, 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 (max([i, j, _en])) -> leq([i, _en]) -> 1 (max([i, j, _fn])) -> leq([j, _fn]) -> 1 } Sat witness: Found: ((not leq([n, m])) -> max([n, m, n]), { m -> z ; n -> z }) ------------------------------------------- Step 1, which took 0.009035 s (model generation: 0.008903, model checking: 0.000132): Model: |_ { leq -> {{{ Q={q_gen_3384}, Q_f={}, Delta= { () -> q_gen_3384 } Datatype: Convolution form: left }}} ; max -> {{{ Q={q_gen_3385}, Q_f={q_gen_3385}, Delta= { () -> q_gen_3385 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 3 (leq([n, m])) -> max([n, m, m]) -> 1 (not leq([n, m])) -> max([n, m, 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 (max([i, j, _en])) -> leq([i, _en]) -> 1 (max([i, j, _fn])) -> leq([j, _fn]) -> 1 } Sat witness: Found: (() -> leq([z, n2]), { n2 -> z }) ------------------------------------------- Step 2, which took 0.010778 s (model generation: 0.010650, model checking: 0.000128): Model: |_ { leq -> {{{ Q={q_gen_3384}, Q_f={q_gen_3384}, Delta= { () -> q_gen_3384 } Datatype: Convolution form: left }}} ; max -> {{{ Q={q_gen_3385}, Q_f={}, Delta= { () -> q_gen_3385 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 3 (leq([n, m])) -> max([n, m, m]) -> 1 (not leq([n, m])) -> max([n, m, 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 (max([i, j, _en])) -> leq([i, _en]) -> 2 (max([i, j, _fn])) -> leq([j, _fn]) -> 2 } Sat witness: Found: ((leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]), { nn1 -> z ; nn2 -> z }) ------------------------------------------- Step 3, which took 0.014137 s (model generation: 0.014020, model checking: 0.000117): Model: |_ { leq -> {{{ Q={q_gen_3384}, Q_f={q_gen_3384}, Delta= { (q_gen_3384) -> q_gen_3384 () -> q_gen_3384 } Datatype: Convolution form: left }}} ; max -> {{{ Q={q_gen_3385}, Q_f={}, Delta= { () -> q_gen_3385 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 3 (leq([n, m])) -> max([n, m, m]) -> 4 (not leq([n, m])) -> max([n, m, 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 (max([i, j, _en])) -> leq([i, _en]) -> 2 (max([i, j, _fn])) -> leq([j, _fn]) -> 2 } Sat witness: Found: ((leq([n, m])) -> max([n, m, m]), { m -> z ; n -> z }) ------------------------------------------- Step 4, which took 0.010656 s (model generation: 0.010343, model checking: 0.000313): Model: |_ { leq -> {{{ Q={q_gen_3384}, Q_f={q_gen_3384}, Delta= { (q_gen_3384) -> q_gen_3384 () -> q_gen_3384 } Datatype: Convolution form: left }}} ; max -> {{{ Q={q_gen_3385}, Q_f={q_gen_3385}, Delta= { () -> q_gen_3385 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 3 (leq([n, m])) -> max([n, m, m]) -> 4 (not leq([n, m])) -> max([n, m, 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 (max([i, j, _en])) -> leq([i, _en]) -> 3 (max([i, j, _fn])) -> leq([j, _fn]) -> 3 } Sat witness: Found: ((not leq([n, m])) -> max([n, m, n]), { m -> s(z) ; n -> z }) ------------------------------------------- Step 5, which took 0.013277 s (model generation: 0.013186, model checking: 0.000091): Model: |_ { leq -> {{{ Q={q_gen_3384, q_gen_3388}, Q_f={q_gen_3384}, Delta= { () -> q_gen_3388 (q_gen_3384) -> q_gen_3384 (q_gen_3388) -> q_gen_3384 () -> q_gen_3384 } Datatype: Convolution form: left }}} ; max -> {{{ Q={q_gen_3385, q_gen_3390}, Q_f={q_gen_3385}, Delta= { () -> q_gen_3390 (q_gen_3390) -> q_gen_3385 () -> q_gen_3385 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 3 (leq([n, m])) -> max([n, m, m]) -> 4 (not leq([n, m])) -> max([n, m, 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 (max([i, j, _en])) -> leq([i, _en]) -> 3 (max([i, j, _fn])) -> leq([j, _fn]) -> 6 } Sat witness: Found: ((max([i, j, _fn])) -> leq([j, _fn]), { _fn -> z ; i -> z ; j -> s(z) }) ------------------------------------------- Step 6, which took 0.010445 s (model generation: 0.010370, model checking: 0.000075): Model: |_ { leq -> {{{ Q={q_gen_3384, q_gen_3388}, Q_f={q_gen_3384}, Delta= { () -> q_gen_3388 (q_gen_3384) -> q_gen_3384 (q_gen_3388) -> q_gen_3384 (q_gen_3388) -> q_gen_3384 () -> q_gen_3384 } Datatype: Convolution form: left }}} ; max -> {{{ Q={q_gen_3385, q_gen_3390}, Q_f={q_gen_3385}, Delta= { () -> q_gen_3390 (q_gen_3390) -> q_gen_3385 () -> q_gen_3385 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 3 (leq([n, m])) -> max([n, m, m]) -> 4 (not leq([n, m])) -> max([n, m, 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 -> 6 (max([i, j, _en])) -> leq([i, _en]) -> 4 (max([i, j, _fn])) -> leq([j, _fn]) -> 6 } Sat witness: Found: ((leq([s(nn1), z])) -> BOT, { nn1 -> z }) ------------------------------------------- Step 7, which took 0.014120 s (model generation: 0.013874, model checking: 0.000246): Model: |_ { leq -> {{{ Q={q_gen_3384, q_gen_3388, q_gen_3391}, Q_f={q_gen_3384}, Delta= { () -> q_gen_3388 (q_gen_3384) -> q_gen_3384 (q_gen_3388) -> q_gen_3384 () -> q_gen_3384 (q_gen_3388) -> q_gen_3391 } Datatype: Convolution form: left }}} ; max -> {{{ Q={q_gen_3385, q_gen_3389, q_gen_3390}, Q_f={q_gen_3385}, Delta= { () -> q_gen_3390 () -> q_gen_3385 (q_gen_3390) -> q_gen_3389 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 6 (leq([n, m])) -> max([n, m, m]) -> 4 (not leq([n, m])) -> max([n, m, 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 -> 6 (max([i, j, _en])) -> leq([i, _en]) -> 4 (max([i, j, _fn])) -> leq([j, _fn]) -> 6 } Sat witness: Found: (() -> leq([z, n2]), { n2 -> s(s(z)) }) ------------------------------------------- Step 8, which took 0.012821 s (model generation: 0.012414, model checking: 0.000407): Model: |_ { leq -> {{{ Q={q_gen_3384, q_gen_3388, q_gen_3391}, Q_f={q_gen_3384}, Delta= { (q_gen_3388) -> q_gen_3388 () -> q_gen_3388 (q_gen_3384) -> q_gen_3384 (q_gen_3388) -> q_gen_3384 () -> q_gen_3384 (q_gen_3388) -> q_gen_3391 } Datatype: Convolution form: left }}} ; max -> {{{ Q={q_gen_3385, q_gen_3389, q_gen_3390}, Q_f={q_gen_3385}, Delta= { () -> q_gen_3390 () -> q_gen_3385 (q_gen_3390) -> q_gen_3389 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 6 (leq([n, m])) -> max([n, m, m]) -> 7 (not leq([n, m])) -> max([n, m, n]) -> 6 (leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]) -> 5 (leq([s(nn1), s(nn2)])) -> leq([nn1, nn2]) -> 5 (leq([s(nn1), z])) -> BOT -> 6 (max([i, j, _en])) -> leq([i, _en]) -> 5 (max([i, j, _fn])) -> leq([j, _fn]) -> 6 } Sat witness: Found: ((leq([n, m])) -> max([n, m, m]), { m -> s(z) ; n -> z }) ------------------------------------------- Step 9, which took 0.012748 s (model generation: 0.011487, model checking: 0.001261): Model: |_ { leq -> {{{ Q={q_gen_3384, q_gen_3388, q_gen_3391}, Q_f={q_gen_3384}, Delta= { (q_gen_3388) -> q_gen_3388 () -> q_gen_3388 (q_gen_3384) -> q_gen_3384 (q_gen_3388) -> q_gen_3384 () -> q_gen_3384 (q_gen_3388) -> q_gen_3391 } Datatype: Convolution form: left }}} ; max -> {{{ Q={q_gen_3385, q_gen_3389, q_gen_3390, q_gen_3395}, Q_f={q_gen_3385}, Delta= { () -> q_gen_3390 () -> q_gen_3395 (q_gen_3395) -> q_gen_3385 () -> q_gen_3385 (q_gen_3390) -> q_gen_3389 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 6 (leq([n, m])) -> max([n, m, m]) -> 7 (not leq([n, m])) -> max([n, m, n]) -> 9 (leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]) -> 6 (leq([s(nn1), s(nn2)])) -> leq([nn1, nn2]) -> 6 (leq([s(nn1), z])) -> BOT -> 7 (max([i, j, _en])) -> leq([i, _en]) -> 6 (max([i, j, _fn])) -> leq([j, _fn]) -> 7 } Sat witness: Found: ((not leq([n, m])) -> max([n, m, n]), { m -> z ; n -> s(s(z)) }) ------------------------------------------- Step 10, which took 0.014316 s (model generation: 0.013532, model checking: 0.000784): Model: |_ { leq -> {{{ Q={q_gen_3384, q_gen_3388, q_gen_3391}, Q_f={q_gen_3384}, Delta= { (q_gen_3388) -> q_gen_3388 () -> q_gen_3388 (q_gen_3384) -> q_gen_3384 (q_gen_3388) -> q_gen_3384 () -> q_gen_3384 (q_gen_3388) -> q_gen_3391 } Datatype: Convolution form: left }}} ; max -> {{{ Q={q_gen_3385, q_gen_3389, q_gen_3390, q_gen_3395}, Q_f={q_gen_3385}, Delta= { () -> q_gen_3390 (q_gen_3395) -> q_gen_3395 () -> q_gen_3395 (q_gen_3395) -> q_gen_3385 (q_gen_3395) -> q_gen_3385 () -> q_gen_3385 (q_gen_3390) -> q_gen_3389 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 7 (leq([n, m])) -> max([n, m, m]) -> 10 (not leq([n, m])) -> max([n, m, n]) -> 9 (leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]) -> 7 (leq([s(nn1), s(nn2)])) -> leq([nn1, nn2]) -> 7 (leq([s(nn1), z])) -> BOT -> 8 (max([i, j, _en])) -> leq([i, _en]) -> 7 (max([i, j, _fn])) -> leq([j, _fn]) -> 8 } Sat witness: Found: ((leq([n, m])) -> max([n, m, m]), { m -> s(z) ; n -> s(z) }) Total time: 0.155366 Reason for stopping: Proved