Inference procedure has parameters: Ice fuel: 200 Timeout: 60s Convolution: right Learning problem is: env: { nat -> {s, z} ; natlist -> {cons, nil} } definition: { (length, F: {() -> length([nil, z]) (length([ll, _yaa])) -> length([cons(x, ll), s(_yaa)])} (length([_zaa, _aba]) /\ length([_zaa, _bba])) -> eq_nat([_aba, _bba]) ) } properties: {(length([l, _dba]) /\ length([cons(z, cons(z, l)), _cba])) -> eq_nat([_cba, s(s(_dba))])} over-approximation: {length} under-approximation: {} Clause system for inference is: { () -> length([nil, z]) -> 0 (length([l, _dba]) /\ length([cons(z, cons(z, l)), _cba])) -> eq_nat([_cba, s(s(_dba))]) -> 0 (length([ll, _yaa])) -> length([cons(x, ll), s(_yaa)]) -> 0 } Solving took 0.022619 seconds. Proved Model: |_ { length -> {{{ Q={q_gen_5511, q_gen_5513}, Q_f={q_gen_5511}, Delta= { (q_gen_5513) -> q_gen_5513 () -> q_gen_5513 (q_gen_5513, q_gen_5511) -> q_gen_5511 () -> q_gen_5511 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.006193 s (model generation: 0.005906, model checking: 0.000287): Model: |_ { length -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> length([nil, z]) -> 3 (length([l, _dba]) /\ length([cons(z, cons(z, l)), _cba])) -> eq_nat([_cba, s(s(_dba))]) -> 1 (length([ll, _yaa])) -> length([cons(x, ll), s(_yaa)]) -> 1 } Sat witness: Found: (() -> length([nil, z]), { }) ------------------------------------------- Step 1, which took 0.006033 s (model generation: 0.005042, model checking: 0.000991): Model: |_ { length -> {{{ Q={q_gen_5511}, Q_f={q_gen_5511}, Delta= { () -> q_gen_5511 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> length([nil, z]) -> 3 (length([l, _dba]) /\ length([cons(z, cons(z, l)), _cba])) -> eq_nat([_cba, s(s(_dba))]) -> 1 (length([ll, _yaa])) -> length([cons(x, ll), s(_yaa)]) -> 4 } Sat witness: Found: ((length([ll, _yaa])) -> length([cons(x, ll), s(_yaa)]), { _yaa -> z ; ll -> nil ; x -> z }) ------------------------------------------- Step 2, which took 0.004880 s (model generation: 0.004576, model checking: 0.000304): Model: |_ { length -> {{{ Q={q_gen_5511, q_gen_5513}, Q_f={q_gen_5511}, Delta= { () -> q_gen_5513 (q_gen_5513, q_gen_5511) -> q_gen_5511 () -> q_gen_5511 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> length([nil, z]) -> 4 (length([l, _dba]) /\ length([cons(z, cons(z, l)), _cba])) -> eq_nat([_cba, s(s(_dba))]) -> 2 (length([ll, _yaa])) -> length([cons(x, ll), s(_yaa)]) -> 7 } Sat witness: Found: ((length([ll, _yaa])) -> length([cons(x, ll), s(_yaa)]), { _yaa -> z ; ll -> nil ; x -> s(z) }) Total time: 0.022619 Reason for stopping: Proved