Inference procedure has parameters: Ice fuel: 200 Timeout: 60s Convolution: left Learning problem is: env: { nat -> {s, z} } definition: { (plus, F: {() -> plus([n, z, n]) (plus([n, mm, _xj])) -> plus([n, s(mm), s(_xj)])} (plus([_yj, _zj, _ak]) /\ plus([_yj, _zj, _bk])) -> eq_nat([_ak, _bk]) ) (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, _ck])) -> leq([n, _ck])} 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, _ck])) -> leq([n, _ck]) -> 0 (plus([n, mm, _xj])) -> plus([n, s(mm), s(_xj)]) -> 0 } Solving took 0.109870 seconds. Proved Model: |_ { leq -> {{{ Q={q_gen_2589, q_gen_2591}, Q_f={q_gen_2589}, Delta= { (q_gen_2591) -> q_gen_2591 () -> q_gen_2591 (q_gen_2589) -> q_gen_2589 (q_gen_2591) -> q_gen_2589 () -> q_gen_2589 } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2588, q_gen_2593, q_gen_2603}, Q_f={q_gen_2588}, Delta= { (q_gen_2603) -> q_gen_2603 () -> q_gen_2603 (q_gen_2593) -> q_gen_2593 (q_gen_2603) -> q_gen_2593 () -> q_gen_2593 (q_gen_2588) -> q_gen_2588 (q_gen_2593) -> q_gen_2588 (q_gen_2593) -> q_gen_2588 (q_gen_2603) -> q_gen_2588 () -> q_gen_2588 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.007640 s (model generation: 0.007431, model checking: 0.000209): Model: |_ { leq -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: left }}} ; plus -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: left }}} } -- 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, _ck])) -> leq([n, _ck]) -> 1 (plus([n, mm, _xj])) -> plus([n, s(mm), s(_xj)]) -> 1 } Sat witness: Found: (() -> plus([n, z, n]), { n -> z }) ------------------------------------------- Step 1, which took 0.008135 s (model generation: 0.008091, model checking: 0.000044): Model: |_ { leq -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2588}, Q_f={q_gen_2588}, Delta= { () -> q_gen_2588 } Datatype: Convolution form: left }}} } -- 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, _ck])) -> leq([n, _ck]) -> 1 (plus([n, mm, _xj])) -> plus([n, s(mm), s(_xj)]) -> 1 } Sat witness: Found: (() -> leq([z, z]), { }) ------------------------------------------- Step 2, which took 0.007968 s (model generation: 0.007904, model checking: 0.000064): Model: |_ { leq -> {{{ Q={q_gen_2589}, Q_f={q_gen_2589}, Delta= { () -> q_gen_2589 } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2588}, Q_f={q_gen_2588}, Delta= { () -> q_gen_2588 } Datatype: Convolution form: left }}} } -- 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, _ck])) -> leq([n, _ck]) -> 1 (plus([n, mm, _xj])) -> plus([n, s(mm), s(_xj)]) -> 1 } Sat witness: Found: (() -> leq([z, s(nn2)]), { nn2 -> z }) ------------------------------------------- Step 3, which took 0.010700 s (model generation: 0.010569, model checking: 0.000131): Model: |_ { leq -> {{{ Q={q_gen_2589, q_gen_2591}, Q_f={q_gen_2589}, Delta= { () -> q_gen_2591 (q_gen_2591) -> q_gen_2589 () -> q_gen_2589 } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2588}, Q_f={q_gen_2588}, Delta= { () -> q_gen_2588 } Datatype: Convolution form: left }}} } -- 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, _ck])) -> leq([n, _ck]) -> 1 (plus([n, mm, _xj])) -> plus([n, s(mm), s(_xj)]) -> 4 } Sat witness: Found: ((plus([n, mm, _xj])) -> plus([n, s(mm), s(_xj)]), { _xj -> z ; mm -> z ; n -> z }) ------------------------------------------- Step 4, which took 0.009748 s (model generation: 0.009268, model checking: 0.000480): Model: |_ { leq -> {{{ Q={q_gen_2589, q_gen_2591}, Q_f={q_gen_2589}, Delta= { () -> q_gen_2591 (q_gen_2591) -> q_gen_2589 () -> q_gen_2589 } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2588, q_gen_2593}, Q_f={q_gen_2588}, Delta= { () -> q_gen_2593 (q_gen_2593) -> q_gen_2588 () -> q_gen_2588 } Datatype: Convolution form: left }}} } -- 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, _ck])) -> leq([n, _ck]) -> 2 (plus([n, mm, _xj])) -> plus([n, s(mm), s(_xj)]) -> 4 } Sat witness: Found: ((leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]), { nn1 -> z ; nn2 -> z }) ------------------------------------------- Step 5, which took 0.008388 s (model generation: 0.008082, model checking: 0.000306): Model: |_ { leq -> {{{ Q={q_gen_2589, q_gen_2591}, Q_f={q_gen_2589}, Delta= { () -> q_gen_2591 (q_gen_2589) -> q_gen_2589 (q_gen_2591) -> q_gen_2589 () -> q_gen_2589 } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2588, q_gen_2593}, Q_f={q_gen_2588}, Delta= { () -> q_gen_2593 (q_gen_2593) -> q_gen_2588 () -> q_gen_2588 } Datatype: Convolution form: left }}} } -- 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, _ck])) -> leq([n, _ck]) -> 3 (plus([n, mm, _xj])) -> plus([n, s(mm), s(_xj)]) -> 4 } Sat witness: Found: (() -> plus([n, z, n]), { n -> s(s(z)) }) ------------------------------------------- Step 6, which took 0.010173 s (model generation: 0.010063, model checking: 0.000110): Model: |_ { leq -> {{{ Q={q_gen_2589, q_gen_2591}, Q_f={q_gen_2589}, Delta= { () -> q_gen_2591 (q_gen_2589) -> q_gen_2589 (q_gen_2591) -> q_gen_2589 () -> q_gen_2589 } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2588, q_gen_2593}, Q_f={q_gen_2588}, Delta= { (q_gen_2593) -> q_gen_2593 () -> q_gen_2593 (q_gen_2593) -> q_gen_2588 (q_gen_2593) -> q_gen_2588 () -> q_gen_2588 } Datatype: Convolution form: left }}} } -- 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, _ck])) -> leq([n, _ck]) -> 6 (plus([n, mm, _xj])) -> plus([n, s(mm), s(_xj)]) -> 4 } Sat witness: Found: ((plus([n, m, _ck])) -> leq([n, _ck]), { _ck -> s(s(z)) ; m -> s(s(z)) ; n -> z }) ------------------------------------------- Step 7, which took 0.009308 s (model generation: 0.008899, model checking: 0.000409): Model: |_ { leq -> {{{ Q={q_gen_2589, q_gen_2591}, Q_f={q_gen_2589}, Delta= { (q_gen_2591) -> q_gen_2591 () -> q_gen_2591 (q_gen_2589) -> q_gen_2589 (q_gen_2591) -> q_gen_2589 () -> q_gen_2589 } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2588, q_gen_2593}, Q_f={q_gen_2588}, Delta= { (q_gen_2593) -> q_gen_2593 () -> q_gen_2593 (q_gen_2593) -> q_gen_2588 (q_gen_2593) -> q_gen_2588 () -> q_gen_2588 } Datatype: Convolution form: left }}} } -- 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, _ck])) -> leq([n, _ck]) -> 6 (plus([n, mm, _xj])) -> plus([n, s(mm), s(_xj)]) -> 7 } Sat witness: Found: ((plus([n, mm, _xj])) -> plus([n, s(mm), s(_xj)]), { _xj -> s(z) ; mm -> z ; n -> s(z) }) ------------------------------------------- Step 8, which took 0.013211 s (model generation: 0.012662, model checking: 0.000549): Model: |_ { leq -> {{{ Q={q_gen_2589, q_gen_2591}, Q_f={q_gen_2589}, Delta= { (q_gen_2591) -> q_gen_2591 () -> q_gen_2591 (q_gen_2589) -> q_gen_2589 (q_gen_2591) -> q_gen_2589 () -> q_gen_2589 } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2588, q_gen_2593, q_gen_2603}, Q_f={q_gen_2588}, Delta= { () -> q_gen_2603 (q_gen_2593) -> q_gen_2593 () -> q_gen_2593 (q_gen_2588) -> q_gen_2588 (q_gen_2593) -> q_gen_2588 (q_gen_2593) -> q_gen_2588 (q_gen_2603) -> q_gen_2588 () -> q_gen_2588 } Datatype: Convolution form: left }}} } -- 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, _ck])) -> leq([n, _ck]) -> 7 (plus([n, mm, _xj])) -> plus([n, s(mm), s(_xj)]) -> 10 } Sat witness: Found: ((plus([n, mm, _xj])) -> plus([n, s(mm), s(_xj)]), { _xj -> s(z) ; mm -> z ; n -> z }) ------------------------------------------- Step 9, which took 0.012380 s (model generation: 0.011846, model checking: 0.000534): Model: |_ { leq -> {{{ Q={q_gen_2589, q_gen_2591}, Q_f={q_gen_2589}, Delta= { (q_gen_2591) -> q_gen_2591 () -> q_gen_2591 (q_gen_2589) -> q_gen_2589 (q_gen_2591) -> q_gen_2589 () -> q_gen_2589 } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2588, q_gen_2593, q_gen_2603}, Q_f={q_gen_2588}, Delta= { () -> q_gen_2603 (q_gen_2593) -> q_gen_2593 (q_gen_2603) -> q_gen_2593 () -> q_gen_2593 (q_gen_2588) -> q_gen_2588 (q_gen_2593) -> q_gen_2588 (q_gen_2593) -> q_gen_2588 (q_gen_2603) -> q_gen_2588 () -> q_gen_2588 } Datatype: Convolution form: left }}} } -- 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, _ck])) -> leq([n, _ck]) -> 8 (plus([n, mm, _xj])) -> plus([n, s(mm), s(_xj)]) -> 13 } Sat witness: Found: ((plus([n, mm, _xj])) -> plus([n, s(mm), s(_xj)]), { _xj -> s(s(z)) ; mm -> z ; n -> s(z) }) Total time: 0.109870 Reason for stopping: Proved