Solving ../../benchmarks/true/length_cons_s.smt2... Inference procedure has parameters: Ice fuel: 200 Timeout: 30s Convolution: complete 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.063105 seconds. Proved Model: |_ { length -> {{{ Q={q_gen_3090, q_gen_3092, q_gen_3095}, Q_f={q_gen_3090}, Delta= { (q_gen_3095) -> q_gen_3095 () -> q_gen_3095 (q_gen_3092, q_gen_3090) -> q_gen_3090 () -> q_gen_3090 (q_gen_3092) -> q_gen_3092 (q_gen_3095) -> q_gen_3092 (q_gen_3095) -> q_gen_3092 () -> q_gen_3092 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.003168 s (model generation: 0.003091, model checking: 0.000077): Model: |_ { length -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} } -- 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: Yes: (() -> length([nil, z]), { }) ------------------------------------------- Step 1, which took 0.003449 s (model generation: 0.003355, model checking: 0.000094): Model: |_ { length -> {{{ Q={q_gen_3090}, Q_f={q_gen_3090}, Delta= { () -> q_gen_3090 } Datatype: Convolution form: complete }}} } -- 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: Yes: ((length([ll, _yaa])) -> length([cons(x, ll), s(_yaa)]), { _yaa -> z ; ll -> nil ; x -> z }) ------------------------------------------- Step 2, which took 0.003493 s (model generation: 0.003303, model checking: 0.000190): Model: |_ { length -> {{{ Q={q_gen_3090, q_gen_3092}, Q_f={q_gen_3090}, Delta= { (q_gen_3092, q_gen_3090) -> q_gen_3090 () -> q_gen_3090 () -> q_gen_3092 } Datatype: Convolution form: complete }}} } -- 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: Yes: ((length([ll, _yaa])) -> length([cons(x, ll), s(_yaa)]), { _yaa -> z ; ll -> nil ; x -> s(z) }) ------------------------------------------- Step 3, which took 0.004001 s (model generation: 0.003792, model checking: 0.000209): Model: |_ { length -> {{{ Q={q_gen_3090, q_gen_3092, q_gen_3095}, Q_f={q_gen_3090}, Delta= { () -> q_gen_3095 (q_gen_3092, q_gen_3090) -> q_gen_3090 () -> q_gen_3090 (q_gen_3095) -> q_gen_3092 () -> q_gen_3092 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> length([nil, z]) -> 5 ; (length([l, _dba]) /\ length([cons(z, cons(z, l)), _cba])) -> eq_nat([_cba, s(s(_dba))]) -> 3 ; (length([ll, _yaa])) -> length([cons(x, ll), s(_yaa)]) -> 10 } Sat witness: Yes: ((length([ll, _yaa])) -> length([cons(x, ll), s(_yaa)]), { _yaa -> z ; ll -> nil ; x -> s(s(z)) }) ------------------------------------------- Step 4, which took 0.010315 s (model generation: 0.009273, model checking: 0.001042): Model: |_ { length -> {{{ Q={q_gen_3090, q_gen_3092, q_gen_3095}, Q_f={q_gen_3090}, Delta= { (q_gen_3095) -> q_gen_3095 () -> q_gen_3095 (q_gen_3092, q_gen_3090) -> q_gen_3090 () -> q_gen_3090 (q_gen_3095) -> q_gen_3092 () -> q_gen_3092 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> length([nil, z]) -> 6 ; (length([l, _dba]) /\ length([cons(z, cons(z, l)), _cba])) -> eq_nat([_cba, s(s(_dba))]) -> 4 ; (length([ll, _yaa])) -> length([cons(x, ll), s(_yaa)]) -> 13 } Sat witness: Yes: ((length([ll, _yaa])) -> length([cons(x, ll), s(_yaa)]), { _yaa -> s(z) ; ll -> cons(z, nil) ; x -> s(z) }) ------------------------------------------- Step 5, which took 0.013980 s (model generation: 0.012969, model checking: 0.001011): Model: |_ { length -> {{{ Q={q_gen_3090, q_gen_3092, q_gen_3095}, Q_f={q_gen_3090}, Delta= { (q_gen_3095) -> q_gen_3095 () -> q_gen_3095 (q_gen_3092, q_gen_3090) -> q_gen_3090 () -> q_gen_3090 (q_gen_3092) -> q_gen_3092 (q_gen_3095) -> q_gen_3092 () -> q_gen_3092 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> length([nil, z]) -> 7 ; (length([l, _dba]) /\ length([cons(z, cons(z, l)), _cba])) -> eq_nat([_cba, s(s(_dba))]) -> 5 ; (length([ll, _yaa])) -> length([cons(x, ll), s(_yaa)]) -> 16 } Sat witness: Yes: ((length([ll, _yaa])) -> length([cons(x, ll), s(_yaa)]), { _yaa -> s(z) ; ll -> cons(z, nil) ; x -> z }) Total time: 0.063105 Reason for stopping: Proved