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, _mh])) -> plus([n, s(mm), s(_mh)])} (plus([_nh, _oh, _ph]) /\ plus([_nh, _oh, _qh])) -> eq_nat([_ph, _qh]) ) (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} ) } properties: {(leq([i, z])) -> eq_nat([i, z])} over-approximation: {leq, plus} under-approximation: {plus} Clause system for inference is: { () -> leq([z, n2]) -> 0 () -> plus([n, z, n]) -> 0 (leq([i, z])) -> eq_nat([i, z]) -> 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, mm, _mh])) -> plus([n, s(mm), s(_mh)]) -> 0 } Solving took 0.105596 seconds. Proved Model: |_ { leq -> {{{ Q={q_gen_2050, q_gen_2057}, Q_f={q_gen_2050}, Delta= { (q_gen_2057) -> q_gen_2057 () -> q_gen_2057 (q_gen_2050) -> q_gen_2050 (q_gen_2057) -> q_gen_2050 () -> q_gen_2050 } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2049, q_gen_2052, q_gen_2061}, Q_f={q_gen_2049}, Delta= { (q_gen_2061) -> q_gen_2061 () -> q_gen_2061 (q_gen_2052) -> q_gen_2052 (q_gen_2061) -> q_gen_2052 () -> q_gen_2052 (q_gen_2049) -> q_gen_2049 (q_gen_2052) -> q_gen_2049 (q_gen_2052) -> q_gen_2049 (q_gen_2061) -> q_gen_2049 () -> q_gen_2049 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.008927 s (model generation: 0.008468, model checking: 0.000459): 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, n2]) -> 0 () -> plus([n, z, n]) -> 3 (leq([i, z])) -> eq_nat([i, z]) -> 1 (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, mm, _mh])) -> plus([n, s(mm), s(_mh)]) -> 1 } Sat witness: Found: (() -> plus([n, z, n]), { n -> z }) ------------------------------------------- Step 1, which took 0.007721 s (model generation: 0.007666, model checking: 0.000055): Model: |_ { leq -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2049}, Q_f={q_gen_2049}, Delta= { () -> q_gen_2049 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 3 () -> plus([n, z, n]) -> 3 (leq([i, z])) -> eq_nat([i, z]) -> 1 (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, mm, _mh])) -> plus([n, s(mm), s(_mh)]) -> 1 } Sat witness: Found: (() -> leq([z, n2]), { n2 -> z }) ------------------------------------------- Step 2, which took 0.007241 s (model generation: 0.007145, model checking: 0.000096): Model: |_ { leq -> {{{ Q={q_gen_2050}, Q_f={q_gen_2050}, Delta= { () -> q_gen_2050 } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2049}, Q_f={q_gen_2049}, Delta= { () -> q_gen_2049 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 3 () -> plus([n, z, n]) -> 3 (leq([i, z])) -> eq_nat([i, z]) -> 1 (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, mm, _mh])) -> plus([n, s(mm), s(_mh)]) -> 4 } Sat witness: Found: ((plus([n, mm, _mh])) -> plus([n, s(mm), s(_mh)]), { _mh -> z ; mm -> z ; n -> z }) ------------------------------------------- Step 3, which took 0.008124 s (model generation: 0.007998, model checking: 0.000126): Model: |_ { leq -> {{{ Q={q_gen_2050}, Q_f={q_gen_2050}, Delta= { () -> q_gen_2050 } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2049, q_gen_2052}, Q_f={q_gen_2049}, Delta= { () -> q_gen_2052 (q_gen_2052) -> q_gen_2049 () -> q_gen_2049 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 3 () -> plus([n, z, n]) -> 3 (leq([i, z])) -> eq_nat([i, z]) -> 1 (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, mm, _mh])) -> plus([n, s(mm), s(_mh)]) -> 4 } Sat witness: Found: ((leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]), { nn1 -> z ; nn2 -> z }) ------------------------------------------- Step 4, which took 0.011547 s (model generation: 0.009195, model checking: 0.002352): Model: |_ { leq -> {{{ Q={q_gen_2050}, Q_f={q_gen_2050}, Delta= { (q_gen_2050) -> q_gen_2050 () -> q_gen_2050 } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2049, q_gen_2052}, Q_f={q_gen_2049}, Delta= { () -> q_gen_2052 (q_gen_2052) -> q_gen_2049 () -> q_gen_2049 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 3 () -> plus([n, z, n]) -> 6 (leq([i, z])) -> eq_nat([i, z]) -> 2 (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, mm, _mh])) -> plus([n, s(mm), s(_mh)]) -> 4 } Sat witness: Found: (() -> plus([n, z, n]), { n -> s(s(z)) }) ------------------------------------------- Step 5, which took 0.008181 s (model generation: 0.008044, model checking: 0.000137): Model: |_ { leq -> {{{ Q={q_gen_2050}, Q_f={q_gen_2050}, Delta= { (q_gen_2050) -> q_gen_2050 () -> q_gen_2050 } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2049, q_gen_2052}, Q_f={q_gen_2049}, Delta= { (q_gen_2052) -> q_gen_2052 () -> q_gen_2052 (q_gen_2052) -> q_gen_2049 (q_gen_2052) -> q_gen_2049 () -> q_gen_2049 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 6 () -> plus([n, z, n]) -> 6 (leq([i, z])) -> eq_nat([i, z]) -> 3 (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, mm, _mh])) -> plus([n, s(mm), s(_mh)]) -> 4 } Sat witness: Found: (() -> leq([z, n2]), { n2 -> s(z) }) ------------------------------------------- Step 6, which took 0.009526 s (model generation: 0.009349, model checking: 0.000177): Model: |_ { leq -> {{{ Q={q_gen_2050, q_gen_2057}, Q_f={q_gen_2050}, Delta= { () -> q_gen_2057 (q_gen_2050) -> q_gen_2050 (q_gen_2057) -> q_gen_2050 () -> q_gen_2050 } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2049, q_gen_2052}, Q_f={q_gen_2049}, Delta= { (q_gen_2052) -> q_gen_2052 () -> q_gen_2052 (q_gen_2052) -> q_gen_2049 (q_gen_2052) -> q_gen_2049 () -> q_gen_2049 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 6 () -> plus([n, z, n]) -> 6 (leq([i, z])) -> eq_nat([i, z]) -> 4 (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, mm, _mh])) -> plus([n, s(mm), s(_mh)]) -> 7 } Sat witness: Found: ((plus([n, mm, _mh])) -> plus([n, s(mm), s(_mh)]), { _mh -> s(z) ; mm -> z ; n -> s(z) }) ------------------------------------------- Step 7, which took 0.009253 s (model generation: 0.008889, model checking: 0.000364): Model: |_ { leq -> {{{ Q={q_gen_2050, q_gen_2057}, Q_f={q_gen_2050}, Delta= { () -> q_gen_2057 (q_gen_2050) -> q_gen_2050 (q_gen_2057) -> q_gen_2050 () -> q_gen_2050 } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2049, q_gen_2052, q_gen_2061}, Q_f={q_gen_2049}, Delta= { () -> q_gen_2061 (q_gen_2052) -> q_gen_2052 () -> q_gen_2052 (q_gen_2049) -> q_gen_2049 (q_gen_2052) -> q_gen_2049 (q_gen_2052) -> q_gen_2049 (q_gen_2061) -> q_gen_2049 () -> q_gen_2049 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 9 () -> plus([n, z, n]) -> 7 (leq([i, z])) -> eq_nat([i, z]) -> 5 (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, mm, _mh])) -> plus([n, s(mm), s(_mh)]) -> 7 } Sat witness: Found: (() -> leq([z, n2]), { n2 -> s(s(z)) }) ------------------------------------------- Step 8, which took 0.009919 s (model generation: 0.008875, model checking: 0.001044): Model: |_ { leq -> {{{ Q={q_gen_2050, q_gen_2057}, Q_f={q_gen_2050}, Delta= { (q_gen_2057) -> q_gen_2057 () -> q_gen_2057 (q_gen_2050) -> q_gen_2050 (q_gen_2057) -> q_gen_2050 () -> q_gen_2050 } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2049, q_gen_2052, q_gen_2061}, Q_f={q_gen_2049}, Delta= { () -> q_gen_2061 (q_gen_2052) -> q_gen_2052 () -> q_gen_2052 (q_gen_2049) -> q_gen_2049 (q_gen_2052) -> q_gen_2049 (q_gen_2052) -> q_gen_2049 (q_gen_2061) -> q_gen_2049 () -> q_gen_2049 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 9 () -> plus([n, z, n]) -> 7 (leq([i, z])) -> eq_nat([i, z]) -> 6 (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, mm, _mh])) -> plus([n, s(mm), s(_mh)]) -> 10 } Sat witness: Found: ((plus([n, mm, _mh])) -> plus([n, s(mm), s(_mh)]), { _mh -> s(z) ; mm -> z ; n -> z }) ------------------------------------------- Step 9, which took 0.012705 s (model generation: 0.011943, model checking: 0.000762): Model: |_ { leq -> {{{ Q={q_gen_2050, q_gen_2057}, Q_f={q_gen_2050}, Delta= { (q_gen_2057) -> q_gen_2057 () -> q_gen_2057 (q_gen_2050) -> q_gen_2050 (q_gen_2057) -> q_gen_2050 () -> q_gen_2050 } Datatype: Convolution form: left }}} ; plus -> {{{ Q={q_gen_2049, q_gen_2052, q_gen_2061}, Q_f={q_gen_2049}, Delta= { () -> q_gen_2061 (q_gen_2052) -> q_gen_2052 (q_gen_2061) -> q_gen_2052 () -> q_gen_2052 (q_gen_2049) -> q_gen_2049 (q_gen_2052) -> q_gen_2049 (q_gen_2052) -> q_gen_2049 (q_gen_2061) -> q_gen_2049 () -> q_gen_2049 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> leq([z, n2]) -> 10 () -> plus([n, z, n]) -> 8 (leq([i, z])) -> eq_nat([i, z]) -> 7 (leq([nn1, nn2])) -> leq([s(nn1), s(nn2)]) -> 7 (leq([s(nn1), s(nn2)])) -> leq([nn1, nn2]) -> 7 (leq([s(nn1), z])) -> BOT -> 7 (plus([n, mm, _mh])) -> plus([n, s(mm), s(_mh)]) -> 13 } Sat witness: Found: ((plus([n, mm, _mh])) -> plus([n, s(mm), s(_mh)]), { _mh -> s(s(z)) ; mm -> z ; n -> s(z) }) Total time: 0.105596 Reason for stopping: Proved