Solving ../../benchmarks/true/max_nat.smt2... Inference procedure has parameters: Ice fuel: 200 Timeout: 30s Convolution: complete 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([_gp, _hp, _ip]) /\ max([_gp, _hp, _jp])) -> eq_nat([_ip, _jp]) ) } properties: {(max([i, j, _kp])) -> leq([i, _kp]), (max([i, j, _lp])) -> leq([j, _lp])} 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, _kp])) -> leq([i, _kp]) -> 0 ; (max([i, j, _lp])) -> leq([j, _lp]) -> 0 } Solving took 0.095206 seconds. Proved Model: |_ { leq -> {{{ Q={q_gen_4047, q_gen_4051, q_gen_4054}, Q_f={q_gen_4047}, Delta= { (q_gen_4051) -> q_gen_4051 () -> q_gen_4051 (q_gen_4047) -> q_gen_4047 (q_gen_4051) -> q_gen_4047 () -> q_gen_4047 (q_gen_4051) -> q_gen_4054 } Datatype: Convolution form: complete }}} ; max -> {{{ Q={q_gen_4048, q_gen_4052, q_gen_4053, q_gen_4058}, Q_f={q_gen_4048}, Delta= { () -> q_gen_4053 (q_gen_4058) -> q_gen_4058 () -> q_gen_4058 (q_gen_4048) -> q_gen_4048 (q_gen_4058) -> q_gen_4048 (q_gen_4058) -> q_gen_4048 () -> q_gen_4048 (q_gen_4053) -> q_gen_4052 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_nat} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.004135 s (model generation: 0.003935, model checking: 0.000200): Model: |_ { leq -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; max -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} } -- 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, _kp])) -> leq([i, _kp]) -> 1 ; (max([i, j, _lp])) -> leq([j, _lp]) -> 1 } Sat witness: Yes: ((not leq([n, m])) -> max([n, m, n]), { m -> z ; n -> z }) ------------------------------------------- Step 1, which took 0.003620 s (model generation: 0.003555, model checking: 0.000065): Model: |_ { leq -> {{{ Q={q_gen_4047}, Q_f={}, Delta= { () -> q_gen_4047 } Datatype: Convolution form: complete }}} ; max -> {{{ Q={q_gen_4048}, Q_f={q_gen_4048}, Delta= { () -> q_gen_4048 } Datatype: Convolution form: complete }}} } -- 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, _kp])) -> leq([i, _kp]) -> 1 ; (max([i, j, _lp])) -> leq([j, _lp]) -> 1 } Sat witness: Yes: (() -> leq([z, n2]), { n2 -> z }) ------------------------------------------- Step 2, which took 0.003459 s (model generation: 0.003353, model checking: 0.000106): Model: |_ { leq -> {{{ Q={q_gen_4047}, Q_f={q_gen_4047}, Delta= { () -> q_gen_4047 } Datatype: Convolution form: complete }}} ; max -> {{{ Q={q_gen_4048}, Q_f={}, Delta= { () -> q_gen_4048 } Datatype: Convolution form: complete }}} } -- 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, _kp])) -> leq([i, _kp]) -> 2 ; (max([i, j, _lp])) -> leq([j, _lp]) -> 2 } Sat witness: Yes: ((leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]), { nn1 -> z ; nn2 -> z }) ------------------------------------------- Step 3, which took 0.003439 s (model generation: 0.003383, model checking: 0.000056): Model: |_ { leq -> {{{ Q={q_gen_4047}, Q_f={q_gen_4047}, Delta= { (q_gen_4047) -> q_gen_4047 () -> q_gen_4047 } Datatype: Convolution form: complete }}} ; max -> {{{ Q={q_gen_4048}, Q_f={}, Delta= { () -> q_gen_4048 } Datatype: Convolution form: complete }}} } -- 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, _kp])) -> leq([i, _kp]) -> 2 ; (max([i, j, _lp])) -> leq([j, _lp]) -> 2 } Sat witness: Yes: ((leq([n, m])) -> max([n, m, m]), { m -> z ; n -> z }) ------------------------------------------- Step 4, which took 0.003793 s (model generation: 0.003348, model checking: 0.000445): Model: |_ { leq -> {{{ Q={q_gen_4047}, Q_f={q_gen_4047}, Delta= { (q_gen_4047) -> q_gen_4047 () -> q_gen_4047 } Datatype: Convolution form: complete }}} ; max -> {{{ Q={q_gen_4048}, Q_f={q_gen_4048}, Delta= { () -> q_gen_4048 } Datatype: Convolution form: complete }}} } -- 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, _kp])) -> leq([i, _kp]) -> 3 ; (max([i, j, _lp])) -> leq([j, _lp]) -> 3 } Sat witness: Yes: ((not leq([n, m])) -> max([n, m, n]), { m -> s(z) ; n -> z }) ------------------------------------------- Step 5, which took 0.005011 s (model generation: 0.004929, model checking: 0.000082): Model: |_ { leq -> {{{ Q={q_gen_4047, q_gen_4051}, Q_f={q_gen_4047}, Delta= { () -> q_gen_4051 (q_gen_4047) -> q_gen_4047 (q_gen_4051) -> q_gen_4047 () -> q_gen_4047 } Datatype: Convolution form: complete }}} ; max -> {{{ Q={q_gen_4048, q_gen_4053}, Q_f={q_gen_4048}, Delta= { () -> q_gen_4053 (q_gen_4053) -> q_gen_4048 () -> q_gen_4048 } Datatype: Convolution form: complete }}} } -- 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, _kp])) -> leq([i, _kp]) -> 3 ; (max([i, j, _lp])) -> leq([j, _lp]) -> 6 } Sat witness: Yes: ((max([i, j, _lp])) -> leq([j, _lp]), { _lp -> z ; i -> z ; j -> s(z) }) ------------------------------------------- Step 6, which took 0.007929 s (model generation: 0.007805, model checking: 0.000124): Model: |_ { leq -> {{{ Q={q_gen_4047, q_gen_4051}, Q_f={q_gen_4047}, Delta= { () -> q_gen_4051 (q_gen_4047) -> q_gen_4047 (q_gen_4051) -> q_gen_4047 (q_gen_4051) -> q_gen_4047 () -> q_gen_4047 } Datatype: Convolution form: complete }}} ; max -> {{{ Q={q_gen_4048, q_gen_4053}, Q_f={q_gen_4048}, Delta= { () -> q_gen_4053 (q_gen_4053) -> q_gen_4048 () -> q_gen_4048 } Datatype: Convolution form: complete }}} } -- 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, _kp])) -> leq([i, _kp]) -> 4 ; (max([i, j, _lp])) -> leq([j, _lp]) -> 6 } Sat witness: Yes: ((leq([s(nn1), z])) -> BOT, { nn1 -> z }) ------------------------------------------- Step 7, which took 0.010894 s (model generation: 0.010758, model checking: 0.000136): Model: |_ { leq -> {{{ Q={q_gen_4047, q_gen_4051, q_gen_4054}, Q_f={q_gen_4047}, Delta= { () -> q_gen_4051 (q_gen_4047) -> q_gen_4047 (q_gen_4051) -> q_gen_4047 () -> q_gen_4047 (q_gen_4051) -> q_gen_4054 } Datatype: Convolution form: complete }}} ; max -> {{{ Q={q_gen_4048, q_gen_4052, q_gen_4053}, Q_f={q_gen_4048}, Delta= { () -> q_gen_4053 () -> q_gen_4048 (q_gen_4053) -> q_gen_4052 } Datatype: Convolution form: complete }}} } -- 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, _kp])) -> leq([i, _kp]) -> 4 ; (max([i, j, _lp])) -> leq([j, _lp]) -> 6 } Sat witness: Yes: (() -> leq([z, n2]), { n2 -> s(s(z)) }) ------------------------------------------- Step 8, which took 0.008764 s (model generation: 0.008312, model checking: 0.000452): Model: |_ { leq -> {{{ Q={q_gen_4047, q_gen_4051, q_gen_4054}, Q_f={q_gen_4047}, Delta= { (q_gen_4051) -> q_gen_4051 () -> q_gen_4051 (q_gen_4047) -> q_gen_4047 (q_gen_4051) -> q_gen_4047 () -> q_gen_4047 (q_gen_4051) -> q_gen_4054 } Datatype: Convolution form: complete }}} ; max -> {{{ Q={q_gen_4048, q_gen_4052, q_gen_4053}, Q_f={q_gen_4048}, Delta= { () -> q_gen_4053 () -> q_gen_4048 (q_gen_4053) -> q_gen_4052 } Datatype: Convolution form: complete }}} } -- 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, _kp])) -> leq([i, _kp]) -> 5 ; (max([i, j, _lp])) -> leq([j, _lp]) -> 6 } Sat witness: Yes: ((leq([n, m])) -> max([n, m, m]), { m -> s(z) ; n -> z }) ------------------------------------------- Step 9, which took 0.008219 s (model generation: 0.007875, model checking: 0.000344): Model: |_ { leq -> {{{ Q={q_gen_4047, q_gen_4051, q_gen_4054}, Q_f={q_gen_4047}, Delta= { (q_gen_4051) -> q_gen_4051 () -> q_gen_4051 (q_gen_4047) -> q_gen_4047 (q_gen_4051) -> q_gen_4047 () -> q_gen_4047 (q_gen_4051) -> q_gen_4054 } Datatype: Convolution form: complete }}} ; max -> {{{ Q={q_gen_4048, q_gen_4052, q_gen_4053, q_gen_4058}, Q_f={q_gen_4048}, Delta= { () -> q_gen_4053 () -> q_gen_4058 (q_gen_4058) -> q_gen_4048 () -> q_gen_4048 (q_gen_4053) -> q_gen_4052 } Datatype: Convolution form: complete }}} } -- 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, _kp])) -> leq([i, _kp]) -> 6 ; (max([i, j, _lp])) -> leq([j, _lp]) -> 7 } Sat witness: Yes: ((not leq([n, m])) -> max([n, m, n]), { m -> z ; n -> s(z) }) ------------------------------------------- Step 10, which took 0.006292 s (model generation: 0.005073, model checking: 0.001219): Model: |_ { leq -> {{{ Q={q_gen_4047, q_gen_4051, q_gen_4054}, Q_f={q_gen_4047}, Delta= { (q_gen_4051) -> q_gen_4051 () -> q_gen_4051 (q_gen_4047) -> q_gen_4047 (q_gen_4051) -> q_gen_4047 () -> q_gen_4047 (q_gen_4051) -> q_gen_4054 } Datatype: Convolution form: complete }}} ; max -> {{{ Q={q_gen_4048, q_gen_4052, q_gen_4053, q_gen_4058}, Q_f={q_gen_4048}, Delta= { () -> q_gen_4053 () -> q_gen_4058 (q_gen_4058) -> q_gen_4048 (q_gen_4058) -> q_gen_4048 () -> q_gen_4048 (q_gen_4053) -> q_gen_4052 } Datatype: Convolution form: complete }}} } -- 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, _kp])) -> leq([i, _kp]) -> 7 ; (max([i, j, _lp])) -> leq([j, _lp]) -> 8 } Sat witness: Yes: ((leq([n, m])) -> max([n, m, m]), { m -> s(z) ; n -> s(z) }) ------------------------------------------- Step 11, which took 0.014038 s (model generation: 0.012917, model checking: 0.001121): Model: |_ { leq -> {{{ Q={q_gen_4047, q_gen_4051, q_gen_4054}, Q_f={q_gen_4047}, Delta= { (q_gen_4051) -> q_gen_4051 () -> q_gen_4051 (q_gen_4047) -> q_gen_4047 (q_gen_4051) -> q_gen_4047 () -> q_gen_4047 (q_gen_4051) -> q_gen_4054 } Datatype: Convolution form: complete }}} ; max -> {{{ Q={q_gen_4048, q_gen_4052, q_gen_4053, q_gen_4058}, Q_f={q_gen_4048}, Delta= { () -> q_gen_4053 () -> q_gen_4058 (q_gen_4048) -> q_gen_4048 (q_gen_4058) -> q_gen_4048 (q_gen_4058) -> q_gen_4048 () -> q_gen_4048 (q_gen_4053) -> q_gen_4052 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 8 ; (leq([n, m])) -> max([n, m, m]) -> 10 ; (not leq([n, m])) -> max([n, m, n]) -> 12 ; (leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]) -> 8 ; (leq([s(nn1), s(nn2)])) -> leq([nn1, nn2]) -> 8 ; (leq([s(nn1), z])) -> BOT -> 9 ; (max([i, j, _kp])) -> leq([i, _kp]) -> 8 ; (max([i, j, _lp])) -> leq([j, _lp]) -> 9 } Sat witness: Yes: ((not leq([n, m])) -> max([n, m, n]), { m -> z ; n -> s(s(z)) }) Total time: 0.095206 Reason for stopping: Proved