Solving ../../benchmarks/false/reverse_not_null.smt2... Inference procedure has parameters: Ice fuel: 200 Timeout: 60s Convolution: right Learning problem is: env: { nat -> {s, z} ; natlist -> {cons, nil} } definition: { (append, F: {() -> append([nil, l2, l2]) (append([t1, l2, _iha])) -> append([cons(h1, t1), l2, cons(h1, _iha)])} (append([_jha, _kha, _lha]) /\ append([_jha, _kha, _mha])) -> eq_natlist([_lha, _mha]) ) (reverse, F: {() -> reverse([nil, nil]) (append([_nha, cons(h1, nil), _oha]) /\ reverse([t1, _nha])) -> reverse([cons(h1, t1), _oha])} (reverse([_pha, _qha]) /\ reverse([_pha, _rha])) -> eq_natlist([_qha, _rha]) ) (not_null, P: {() -> not_null([cons(x, ll)]) (not_null([nil])) -> BOT} ) } properties: {(reverse([l1, _sha])) -> not_null([_sha])} over-approximation: {append, reverse} under-approximation: {not_null} Clause system for inference is: { () -> append([nil, l2, l2]) -> 0 () -> not_null([cons(x, ll)]) -> 0 () -> reverse([nil, nil]) -> 0 (append([_nha, cons(h1, nil), _oha]) /\ reverse([t1, _nha])) -> reverse([cons(h1, t1), _oha]) -> 0 (append([t1, l2, _iha])) -> append([cons(h1, t1), l2, cons(h1, _iha)]) -> 0 (not_null([nil])) -> BOT -> 0 (reverse([l1, _sha])) -> not_null([_sha]) -> 0 } Solving took 0.076639 seconds. Disproved ------------------- STEPS: ------------------------------------------- Step 0, which took 0.010222 s (model generation: 0.009785, model checking: 0.000437): Model: |_ { append -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; not_null -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; reverse -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 0 () -> not_null([cons(x, ll)]) -> 0 () -> reverse([nil, nil]) -> 3 (append([_nha, cons(h1, nil), _oha]) /\ reverse([t1, _nha])) -> reverse([cons(h1, t1), _oha]) -> 1 (append([t1, l2, _iha])) -> append([cons(h1, t1), l2, cons(h1, _iha)]) -> 1 (not_null([nil])) -> BOT -> 1 (reverse([l1, _sha])) -> not_null([_sha]) -> 1 } Sat witness: Found: (() -> reverse([nil, nil]), { }) ------------------------------------------- Step 1, which took 0.010322 s (model generation: 0.010152, model checking: 0.000170): Model: |_ { append -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; not_null -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; reverse -> {{{ Q={q_gen_6544}, Q_f={q_gen_6544}, Delta= { () -> q_gen_6544 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 0 () -> not_null([cons(x, ll)]) -> 3 () -> reverse([nil, nil]) -> 3 (append([_nha, cons(h1, nil), _oha]) /\ reverse([t1, _nha])) -> reverse([cons(h1, t1), _oha]) -> 1 (append([t1, l2, _iha])) -> append([cons(h1, t1), l2, cons(h1, _iha)]) -> 1 (not_null([nil])) -> BOT -> 1 (reverse([l1, _sha])) -> not_null([_sha]) -> 1 } Sat witness: Found: (() -> not_null([cons(x, ll)]), { ll -> nil ; x -> z }) ------------------------------------------- Step 2, which took 0.011274 s (model generation: 0.010717, model checking: 0.000557): Model: |_ { append -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: right }}} ; not_null -> {{{ Q={q_gen_6545, q_gen_6547}, Q_f={q_gen_6545}, Delta= { (q_gen_6547, q_gen_6545) -> q_gen_6545 () -> q_gen_6545 () -> q_gen_6547 } Datatype: Convolution form: right }}} ; reverse -> {{{ Q={q_gen_6544}, Q_f={q_gen_6544}, Delta= { () -> q_gen_6544 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 3 () -> not_null([cons(x, ll)]) -> 3 () -> reverse([nil, nil]) -> 3 (append([_nha, cons(h1, nil), _oha]) /\ reverse([t1, _nha])) -> reverse([cons(h1, t1), _oha]) -> 1 (append([t1, l2, _iha])) -> append([cons(h1, t1), l2, cons(h1, _iha)]) -> 1 (not_null([nil])) -> BOT -> 1 (reverse([l1, _sha])) -> not_null([_sha]) -> 1 } Sat witness: Found: (() -> append([nil, l2, l2]), { l2 -> nil }) ------------------------------------------- Step 3, which took 0.011105 s (model generation: 0.011004, model checking: 0.000101): Model: |_ { append -> {{{ Q={q_gen_6548}, Q_f={q_gen_6548}, Delta= { () -> q_gen_6548 } Datatype: Convolution form: right }}} ; not_null -> {{{ Q={q_gen_6545, q_gen_6547}, Q_f={q_gen_6545}, Delta= { (q_gen_6547, q_gen_6545) -> q_gen_6545 () -> q_gen_6545 () -> q_gen_6547 } Datatype: Convolution form: right }}} ; reverse -> {{{ Q={q_gen_6544}, Q_f={q_gen_6544}, Delta= { () -> q_gen_6544 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 3 () -> not_null([cons(x, ll)]) -> 3 () -> reverse([nil, nil]) -> 3 (append([_nha, cons(h1, nil), _oha]) /\ reverse([t1, _nha])) -> reverse([cons(h1, t1), _oha]) -> 1 (append([t1, l2, _iha])) -> append([cons(h1, t1), l2, cons(h1, _iha)]) -> 1 (not_null([nil])) -> BOT -> 4 (reverse([l1, _sha])) -> not_null([_sha]) -> 2 } Sat witness: Found: ((not_null([nil])) -> BOT, { }) ------------------------------------------- Step 4, which took 0.011359 s (model generation: 0.010818, model checking: 0.000541): Model: |_ { append -> {{{ Q={q_gen_6548}, Q_f={q_gen_6548}, Delta= { () -> q_gen_6548 } Datatype: Convolution form: right }}} ; not_null -> {{{ Q={q_gen_6545, q_gen_6546, q_gen_6547}, Q_f={q_gen_6545}, Delta= { (q_gen_6547, q_gen_6546) -> q_gen_6545 () -> q_gen_6546 () -> q_gen_6547 } Datatype: Convolution form: right }}} ; reverse -> {{{ Q={q_gen_6544}, Q_f={q_gen_6544}, Delta= { () -> q_gen_6544 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 3 () -> not_null([cons(x, ll)]) -> 3 () -> reverse([nil, nil]) -> 3 (append([_nha, cons(h1, nil), _oha]) /\ reverse([t1, _nha])) -> reverse([cons(h1, t1), _oha]) -> 1 (append([t1, l2, _iha])) -> append([cons(h1, t1), l2, cons(h1, _iha)]) -> 4 (not_null([nil])) -> BOT -> 4 (reverse([l1, _sha])) -> not_null([_sha]) -> 2 } Sat witness: Found: ((append([t1, l2, _iha])) -> append([cons(h1, t1), l2, cons(h1, _iha)]), { _iha -> nil ; h1 -> z ; l2 -> nil ; t1 -> nil }) ------------------------------------------- Step 5, which took 0.011350 s (model generation: 0.011120, model checking: 0.000230): Model: |_ { append -> {{{ Q={q_gen_6548, q_gen_6550, q_gen_6551}, Q_f={q_gen_6548}, Delta= { () -> q_gen_6550 () -> q_gen_6551 (q_gen_6551, q_gen_6550) -> q_gen_6548 () -> q_gen_6548 } Datatype: Convolution form: right }}} ; not_null -> {{{ Q={q_gen_6545, q_gen_6546, q_gen_6547}, Q_f={q_gen_6545}, Delta= { (q_gen_6547, q_gen_6546) -> q_gen_6545 () -> q_gen_6546 () -> q_gen_6547 } Datatype: Convolution form: right }}} ; reverse -> {{{ Q={q_gen_6544}, Q_f={q_gen_6544}, Delta= { () -> q_gen_6544 } Datatype: Convolution form: right }}} } -- Equality automata are defined for: {eq_nat, eq_natlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 3 () -> not_null([cons(x, ll)]) -> 3 () -> reverse([nil, nil]) -> 3 (append([_nha, cons(h1, nil), _oha]) /\ reverse([t1, _nha])) -> reverse([cons(h1, t1), _oha]) -> 2 (append([t1, l2, _iha])) -> append([cons(h1, t1), l2, cons(h1, _iha)]) -> 4 (not_null([nil])) -> BOT -> 4 (reverse([l1, _sha])) -> not_null([_sha]) -> 5 } Sat witness: Found: ((reverse([l1, _sha])) -> not_null([_sha]), { _sha -> nil ; l1 -> nil }) Total time: 0.076639 Reason for stopping: Disproved