Solving ../../benchmarks/smtlib/false/list_delete_all_count.smt2... Inference procedure has parameters: Ice fuel: 200 Timeout: Some(60.) (sec) Teacher_type: Checks all clauses every time Approximation method: remove every clause that can be safely removed Learning problem is: env: { elt -> {a, b} ; eltlist -> {cons, nil} ; nat -> {s, z} } definition: { (delete_one, F: { delete_one(x, nil, nil) <= True delete_one(y, cons(y, r), r) <= True eq_elt(x, y) \/ delete_one(x, cons(y, r), cons(y, _zab)) <= delete_one(x, r, _zab) } eq_eltlist(_cbb, _dbb) <= delete_one(_abb, _bbb, _cbb) /\ delete_one(_abb, _bbb, _dbb) ) (delete_all, F: { delete_all(x, nil, nil) <= True eq_elt(x, y) \/ delete_all(x, cons(y, r), cons(y, _fbb)) <= delete_all(x, r, _fbb) delete_all(y, cons(y, r), _ebb) <= delete_all(y, r, _ebb) } eq_eltlist(_ibb, _jbb) <= delete_all(_gbb, _hbb, _ibb) /\ delete_all(_gbb, _hbb, _jbb) ) (count, F: { count(x, nil, z) <= True eq_elt(x, y) \/ count(x, cons(y, r), _lbb) <= count(x, r, _lbb) count(y, cons(y, r), s(_kbb)) <= count(y, r, _kbb) } eq_nat(_obb, _pbb) <= count(_mbb, _nbb, _obb) /\ count(_mbb, _nbb, _pbb) ) } properties: { eq_nat(_sbb, s(z)) <= count(x, l, _sbb) /\ delete_all(x, l, _rbb) /\ delete_one(x, l, _rbb) } over-approximation: {count, delete_all, delete_one} under-approximation: {} Clause system for inference is: { count(x, nil, z) <= True -> 0 delete_all(x, nil, nil) <= True -> 0 delete_one(x, nil, nil) <= True -> 0 delete_one(y, cons(y, r), r) <= True -> 0 eq_nat(_sbb, s(z)) <= count(x, l, _sbb) /\ delete_all(x, l, _rbb) /\ delete_one(x, l, _rbb) -> 0 eq_elt(x, y) \/ count(x, cons(y, r), _lbb) <= count(x, r, _lbb) -> 0 count(y, cons(y, r), s(_kbb)) <= count(y, r, _kbb) -> 0 eq_elt(x, y) \/ delete_all(x, cons(y, r), cons(y, _fbb)) <= delete_all(x, r, _fbb) -> 0 delete_all(y, cons(y, r), _ebb) <= delete_all(y, r, _ebb) -> 0 eq_elt(x, y) \/ delete_one(x, cons(y, r), cons(y, _zab)) <= delete_one(x, r, _zab) -> 0 } Solving took 0.021936 seconds. No: Contradictory set of ground constraints: { False <= True count(a, nil, z) <= True count(b, cons(a, nil), z) <= True count(b, cons(b, nil), s(z)) <= True count(b, nil, z) <= True delete_all(a, nil, nil) <= True delete_all(b, cons(a, nil), cons(a, nil)) <= True delete_all(b, cons(b, nil), nil) <= True delete_all(b, nil, nil) <= True delete_one(a, cons(a, nil), nil) <= True delete_one(a, nil, nil) <= True delete_one(b, cons(a, nil), cons(a, nil)) <= True delete_one(b, cons(b, nil), nil) <= True delete_one(b, nil, nil) <= True } ------------------- STEPS: ------------------------------------------- Step 0, which took 0.006749 s (model generation: 0.006576, model checking: 0.000173): Clauses: { count(x, nil, z) <= True -> 0 delete_all(x, nil, nil) <= True -> 0 delete_one(x, nil, nil) <= True -> 0 delete_one(y, cons(y, r), r) <= True -> 0 eq_nat(_sbb, s(z)) <= count(x, l, _sbb) /\ delete_all(x, l, _rbb) /\ delete_one(x, l, _rbb) -> 0 eq_elt(x, y) \/ count(x, cons(y, r), _lbb) <= count(x, r, _lbb) -> 0 count(y, cons(y, r), s(_kbb)) <= count(y, r, _kbb) -> 0 eq_elt(x, y) \/ delete_all(x, cons(y, r), cons(y, _fbb)) <= delete_all(x, r, _fbb) -> 0 delete_all(y, cons(y, r), _ebb) <= delete_all(y, r, _ebb) -> 0 eq_elt(x, y) \/ delete_one(x, cons(y, r), cons(y, _zab)) <= delete_one(x, r, _zab) -> 0 } Accumulated learning constraints: { } Current best model: |_ name: None count -> [ count : { } ] ; delete_all -> [ delete_all : { } ] ; delete_one -> [ delete_one : { } ] -- Equality automata are defined for: {elt, eltlist, nat} _| Answer of teacher: count(x, nil, z) <= True : Yes: { x -> b } delete_all(x, nil, nil) <= True : Yes: { x -> b } delete_one(x, nil, nil) <= True : Yes: { x -> b } delete_one(y, cons(y, r), r) <= True : Yes: { r -> nil ; y -> b } eq_nat(_sbb, s(z)) <= count(x, l, _sbb) /\ delete_all(x, l, _rbb) /\ delete_one(x, l, _rbb) : No: () eq_elt(x, y) \/ count(x, cons(y, r), _lbb) <= count(x, r, _lbb) : No: () count(y, cons(y, r), s(_kbb)) <= count(y, r, _kbb) : No: () eq_elt(x, y) \/ delete_all(x, cons(y, r), cons(y, _fbb)) <= delete_all(x, r, _fbb) : No: () delete_all(y, cons(y, r), _ebb) <= delete_all(y, r, _ebb) : No: () eq_elt(x, y) \/ delete_one(x, cons(y, r), cons(y, _zab)) <= delete_one(x, r, _zab) : No: () ------------------------------------------- Step 1, which took 0.007062 s (model generation: 0.006931, model checking: 0.000131): Clauses: { count(x, nil, z) <= True -> 0 delete_all(x, nil, nil) <= True -> 0 delete_one(x, nil, nil) <= True -> 0 delete_one(y, cons(y, r), r) <= True -> 0 eq_nat(_sbb, s(z)) <= count(x, l, _sbb) /\ delete_all(x, l, _rbb) /\ delete_one(x, l, _rbb) -> 0 eq_elt(x, y) \/ count(x, cons(y, r), _lbb) <= count(x, r, _lbb) -> 0 count(y, cons(y, r), s(_kbb)) <= count(y, r, _kbb) -> 0 eq_elt(x, y) \/ delete_all(x, cons(y, r), cons(y, _fbb)) <= delete_all(x, r, _fbb) -> 0 delete_all(y, cons(y, r), _ebb) <= delete_all(y, r, _ebb) -> 0 eq_elt(x, y) \/ delete_one(x, cons(y, r), cons(y, _zab)) <= delete_one(x, r, _zab) -> 0 } Accumulated learning constraints: { count(b, nil, z) <= True delete_all(b, nil, nil) <= True delete_one(b, cons(b, nil), nil) <= True delete_one(b, nil, nil) <= True } Current best model: |_ name: None count -> [ count : { count(b, nil, z) <= True } ] ; delete_all -> [ delete_all : { delete_all(b, nil, nil) <= True } ] ; delete_one -> [ delete_one : { delete_one(b, cons(x_1_0, x_1_1), nil) <= True delete_one(b, nil, nil) <= True } ] -- Equality automata are defined for: {elt, eltlist, nat} _| Answer of teacher: count(x, nil, z) <= True : Yes: { x -> a } delete_all(x, nil, nil) <= True : Yes: { x -> a } delete_one(x, nil, nil) <= True : Yes: { x -> a } delete_one(y, cons(y, r), r) <= True : Yes: { r -> nil ; y -> a } eq_nat(_sbb, s(z)) <= count(x, l, _sbb) /\ delete_all(x, l, _rbb) /\ delete_one(x, l, _rbb) : Yes: { _rbb -> nil ; _sbb -> z ; l -> nil ; x -> b } eq_elt(x, y) \/ count(x, cons(y, r), _lbb) <= count(x, r, _lbb) : Yes: { _lbb -> z ; r -> nil ; x -> b ; y -> a } count(y, cons(y, r), s(_kbb)) <= count(y, r, _kbb) : Yes: { _kbb -> z ; r -> nil ; y -> b } eq_elt(x, y) \/ delete_all(x, cons(y, r), cons(y, _fbb)) <= delete_all(x, r, _fbb) : Yes: { _fbb -> nil ; r -> nil ; x -> b ; y -> a } delete_all(y, cons(y, r), _ebb) <= delete_all(y, r, _ebb) : Yes: { _ebb -> nil ; r -> nil ; y -> b } eq_elt(x, y) \/ delete_one(x, cons(y, r), cons(y, _zab)) <= delete_one(x, r, _zab) : Yes: { _zab -> nil ; r -> nil ; x -> b ; y -> a } Total time: 0.021936 Learner time: 0.013507 Teacher time: 0.000304 Reasons for stopping: No: Contradictory set of ground constraints: { False <= True count(a, nil, z) <= True count(b, cons(a, nil), z) <= True count(b, cons(b, nil), s(z)) <= True count(b, nil, z) <= True delete_all(a, nil, nil) <= True delete_all(b, cons(a, nil), cons(a, nil)) <= True delete_all(b, cons(b, nil), nil) <= True delete_all(b, nil, nil) <= True delete_one(a, cons(a, nil), nil) <= True delete_one(a, nil, nil) <= True delete_one(b, cons(a, nil), cons(a, nil)) <= True delete_one(b, cons(b, nil), nil) <= True delete_one(b, nil, nil) <= True }