Inference procedure has parameters: Ice fuel: 200 Timeout: 60s Convolution: right 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.143935 seconds. Proved Model: |_ { leq -> {{{ Q={q_gen_3059, q_gen_3063, q_gen_3066}, Q_f={q_gen_3059}, Delta= { (q_gen_3063) -> q_gen_3063 () -> q_gen_3063 (q_gen_3059) -> q_gen_3059 (q_gen_3063) -> q_gen_3059 () -> q_gen_3059 (q_gen_3063) -> q_gen_3066 } Datatype: Convolution form: right }}} ; max -> {{{ Q={q_gen_3060, q_gen_3064, q_gen_3065, q_gen_3070}, Q_f={q_gen_3060}, Delta= { () -> q_gen_3065 (q_gen_3070) -> q_gen_3070 () -> q_gen_3070 (q_gen_3060) -> q_gen_3060 (q_gen_3070) -> q_gen_3060 (q_gen_3070) -> q_gen_3060 () -> q_gen_3060 (q_gen_3065) -> q_gen_3064 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.010204 s (model generation: 0.009818, model checking: 0.000386): Model: |_ { leq -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; max -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} } -- 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: Found: ((not leq([n, m])) -> max([n, m, n]), { m -> z ; n -> z }) ------------------------------------------- Step 1, which took 0.010837 s (model generation: 0.010155, model checking: 0.000682): Model: |_ { leq -> {{{ Q={q_gen_3059}, Q_f={}, Delta= { () -> q_gen_3059 } Datatype: Convolution form: right }}} ; max -> {{{ Q={q_gen_3060}, Q_f={q_gen_3060}, Delta= { () -> q_gen_3060 } Datatype: Convolution form: right }}} } -- 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: Found: (() -> leq([z, n2]), { n2 -> z }) ------------------------------------------- Step 2, which took 0.010424 s (model generation: 0.010172, model checking: 0.000252): Model: |_ { leq -> {{{ Q={q_gen_3059}, Q_f={q_gen_3059}, Delta= { () -> q_gen_3059 } Datatype: Convolution form: right }}} ; max -> {{{ Q={q_gen_3060}, Q_f={}, Delta= { () -> q_gen_3060 } Datatype: Convolution form: right }}} } -- 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: Found: ((leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]), { nn1 -> z ; nn2 -> z }) ------------------------------------------- Step 3, which took 0.010606 s (model generation: 0.010429, model checking: 0.000177): Model: |_ { leq -> {{{ Q={q_gen_3059}, Q_f={q_gen_3059}, Delta= { (q_gen_3059) -> q_gen_3059 () -> q_gen_3059 } Datatype: Convolution form: right }}} ; max -> {{{ Q={q_gen_3060}, Q_f={}, Delta= { () -> q_gen_3060 } Datatype: Convolution form: right }}} } -- 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: Found: ((leq([n, m])) -> max([n, m, m]), { m -> z ; n -> z }) ------------------------------------------- Step 4, which took 0.011023 s (model generation: 0.010480, model checking: 0.000543): Model: |_ { leq -> {{{ Q={q_gen_3059}, Q_f={q_gen_3059}, Delta= { (q_gen_3059) -> q_gen_3059 () -> q_gen_3059 } Datatype: Convolution form: right }}} ; max -> {{{ Q={q_gen_3060}, Q_f={q_gen_3060}, Delta= { () -> q_gen_3060 } Datatype: Convolution form: right }}} } -- 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: Found: ((not leq([n, m])) -> max([n, m, n]), { m -> s(z) ; n -> z }) ------------------------------------------- Step 5, which took 0.011282 s (model generation: 0.011081, model checking: 0.000201): Model: |_ { leq -> {{{ Q={q_gen_3059, q_gen_3063}, Q_f={q_gen_3059}, Delta= { () -> q_gen_3063 (q_gen_3059) -> q_gen_3059 (q_gen_3063) -> q_gen_3059 () -> q_gen_3059 } Datatype: Convolution form: right }}} ; max -> {{{ Q={q_gen_3060, q_gen_3065}, Q_f={q_gen_3060}, Delta= { () -> q_gen_3065 (q_gen_3065) -> q_gen_3060 () -> q_gen_3060 } Datatype: Convolution form: right }}} } -- 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: Found: ((max([i, j, _lp])) -> leq([j, _lp]), { _lp -> z ; i -> z ; j -> s(z) }) ------------------------------------------- Step 6, which took 0.012515 s (model generation: 0.011414, model checking: 0.001101): Model: |_ { leq -> {{{ Q={q_gen_3059, q_gen_3063}, Q_f={q_gen_3059}, Delta= { () -> q_gen_3063 (q_gen_3059) -> q_gen_3059 (q_gen_3063) -> q_gen_3059 (q_gen_3063) -> q_gen_3059 () -> q_gen_3059 } Datatype: Convolution form: right }}} ; max -> {{{ Q={q_gen_3060, q_gen_3065}, Q_f={q_gen_3060}, Delta= { () -> q_gen_3065 (q_gen_3065) -> q_gen_3060 () -> q_gen_3060 } Datatype: Convolution form: right }}} } -- 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: Found: ((leq([s(nn1), z])) -> BOT, { nn1 -> z }) ------------------------------------------- Step 7, which took 0.011785 s (model generation: 0.011416, model checking: 0.000369): Model: |_ { leq -> {{{ Q={q_gen_3059, q_gen_3063, q_gen_3066}, Q_f={q_gen_3059}, Delta= { () -> q_gen_3063 (q_gen_3059) -> q_gen_3059 (q_gen_3063) -> q_gen_3059 () -> q_gen_3059 (q_gen_3063) -> q_gen_3066 } Datatype: Convolution form: right }}} ; max -> {{{ Q={q_gen_3060, q_gen_3064, q_gen_3065}, Q_f={q_gen_3060}, Delta= { () -> q_gen_3065 () -> q_gen_3060 (q_gen_3065) -> q_gen_3064 } Datatype: Convolution form: right }}} } -- 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: Found: (() -> leq([z, n2]), { n2 -> s(s(z)) }) ------------------------------------------- Step 8, which took 0.012523 s (model generation: 0.011755, model checking: 0.000768): Model: |_ { leq -> {{{ Q={q_gen_3059, q_gen_3063, q_gen_3066}, Q_f={q_gen_3059}, Delta= { (q_gen_3063) -> q_gen_3063 () -> q_gen_3063 (q_gen_3059) -> q_gen_3059 (q_gen_3063) -> q_gen_3059 () -> q_gen_3059 (q_gen_3063) -> q_gen_3066 } Datatype: Convolution form: right }}} ; max -> {{{ Q={q_gen_3060, q_gen_3064, q_gen_3065}, Q_f={q_gen_3060}, Delta= { () -> q_gen_3065 () -> q_gen_3060 (q_gen_3065) -> q_gen_3064 } Datatype: Convolution form: right }}} } -- 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: Found: ((leq([n, m])) -> max([n, m, m]), { m -> s(z) ; n -> z }) ------------------------------------------- Step 9, which took 0.013510 s (model generation: 0.012566, model checking: 0.000944): Model: |_ { leq -> {{{ Q={q_gen_3059, q_gen_3063, q_gen_3066}, Q_f={q_gen_3059}, Delta= { (q_gen_3063) -> q_gen_3063 () -> q_gen_3063 (q_gen_3059) -> q_gen_3059 (q_gen_3063) -> q_gen_3059 () -> q_gen_3059 (q_gen_3063) -> q_gen_3066 } Datatype: Convolution form: right }}} ; max -> {{{ Q={q_gen_3060, q_gen_3064, q_gen_3065, q_gen_3070}, Q_f={q_gen_3060}, Delta= { () -> q_gen_3065 () -> q_gen_3070 (q_gen_3070) -> q_gen_3060 () -> q_gen_3060 (q_gen_3065) -> q_gen_3064 } Datatype: Convolution form: right }}} } -- 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: Found: ((not leq([n, m])) -> max([n, m, n]), { m -> z ; n -> s(s(z)) }) ------------------------------------------- Step 10, which took 0.014201 s (model generation: 0.012854, model checking: 0.001347): Model: |_ { leq -> {{{ Q={q_gen_3059, q_gen_3063, q_gen_3066}, Q_f={q_gen_3059}, Delta= { (q_gen_3063) -> q_gen_3063 () -> q_gen_3063 (q_gen_3059) -> q_gen_3059 (q_gen_3063) -> q_gen_3059 () -> q_gen_3059 (q_gen_3063) -> q_gen_3066 } Datatype: Convolution form: right }}} ; max -> {{{ Q={q_gen_3060, q_gen_3064, q_gen_3065, q_gen_3070}, Q_f={q_gen_3060}, Delta= { () -> q_gen_3065 (q_gen_3070) -> q_gen_3070 () -> q_gen_3070 (q_gen_3070) -> q_gen_3060 (q_gen_3070) -> q_gen_3060 () -> q_gen_3060 (q_gen_3065) -> q_gen_3064 } Datatype: Convolution form: right }}} } -- 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: Found: ((leq([n, m])) -> max([n, m, m]), { m -> s(z) ; n -> s(z) }) Total time: 0.143935 Reason for stopping: Proved