Solving ../../benchmarks/smtlib/true/length_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: { (leq, P: { leq(z, s(nn2)) <= True leq(z, z) <= True leq(s(nn1), s(nn2)) <= leq(nn1, nn2) leq(nn1, nn2) <= leq(s(nn1), s(nn2)) False <= leq(s(nn1), z) } ) (length, F: { length(nil, z) <= True length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) } eq_nat(_bba, _cba) <= length(_aba, _bba) /\ length(_aba, _cba) ) (count, F: { count(x, nil, z) <= True count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) } eq_nat(_hba, _iba) <= count(_fba, _gba, _hba) /\ count(_fba, _gba, _iba) ) } properties: { leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) } over-approximation: {count, length} under-approximation: {leq} Clause system for inference is: { count(x, nil, z) <= True -> 0 length(nil, z) <= True -> 0 leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) -> 0 count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) -> 0 eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) -> 0 length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 } Solving took 0.275215 seconds. Yes: |_ name: None count -> [ count : { _r_1(cons(x_0_0, x_0_1), s(x_1_0)) <= _r_1(x_0_1, x_1_0) _r_1(cons(x_0_0, x_0_1), z) <= True _r_1(nil, z) <= True count(a, cons(x_1_0, x_1_1), s(x_2_0)) <= _r_1(x_1_1, x_2_0) count(a, cons(x_1_0, x_1_1), z) <= True count(a, nil, z) <= True count(b, cons(x_1_0, x_1_1), s(x_2_0)) <= _r_1(x_1_1, x_2_0) count(b, cons(x_1_0, x_1_1), z) <= True count(b, nil, z) <= True } ] ; length -> [ length : { length(cons(x_0_0, x_0_1), s(x_1_0)) <= length(x_0_1, x_1_0) length(nil, z) <= True } ] ; leq -> [ leq : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] -- Equality automata are defined for: {elt, eltlist, nat} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.018385 s (model generation: 0.018199, model checking: 0.000186): Clauses: { count(x, nil, z) <= True -> 0 length(nil, z) <= True -> 0 leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) -> 0 count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) -> 0 eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) -> 0 length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 } Accumulated learning constraints: { } Current best model: |_ name: None count -> [ count : { } ] ; length -> [ length : { } ] ; leq -> [ leq : { } ] -- Equality automata are defined for: {elt, eltlist, nat} _| Answer of teacher: count(x, nil, z) <= True : Yes: { x -> b } length(nil, z) <= True : Yes: { } leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) : No: () count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) : No: () eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) : No: () length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : No: () ------------------------------------------- Step 1, which took 0.017450 s (model generation: 0.017283, model checking: 0.000167): Clauses: { count(x, nil, z) <= True -> 0 length(nil, z) <= True -> 0 leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) -> 0 count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) -> 0 eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) -> 0 length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 } Accumulated learning constraints: { count(b, nil, z) <= True length(nil, z) <= True } Current best model: |_ name: None count -> [ count : { count(b, nil, z) <= True } ] ; length -> [ length : { length(nil, z) <= True } ] ; leq -> [ leq : { } ] -- Equality automata are defined for: {elt, eltlist, nat} _| Answer of teacher: count(x, nil, z) <= True : Yes: { x -> a } length(nil, z) <= True : No: () leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) : Yes: { _jba -> z ; _kba -> z ; l -> nil ; x -> b } count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) : Yes: { _dba -> z ; t1 -> nil ; x -> b } eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) : Yes: { _eba -> z ; h1 -> a ; t1 -> nil ; x -> b } length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) : Yes: { _zaa -> z ; ll -> nil } leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : No: () ------------------------------------------- Step 2, which took 0.020007 s (model generation: 0.018754, model checking: 0.001253): Clauses: { count(x, nil, z) <= True -> 0 length(nil, z) <= True -> 0 leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) -> 0 count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) -> 0 eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) -> 0 length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 } Accumulated learning constraints: { 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 length(cons(a, nil), s(z)) <= True length(nil, z) <= True leq(z, z) <= True } Current best model: |_ name: None count -> [ count : { count(a, nil, z) <= True count(b, cons(x_1_0, x_1_1), s(x_2_0)) <= True count(b, cons(x_1_0, x_1_1), z) <= True count(b, nil, z) <= True } ] ; length -> [ length : { length(cons(x_0_0, x_0_1), s(x_1_0)) <= True length(nil, z) <= True } ] ; leq -> [ leq : { leq(z, z) <= True } ] -- Equality automata are defined for: {elt, eltlist, nat} _| Answer of teacher: count(x, nil, z) <= True : No: () length(nil, z) <= True : No: () leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) : Yes: { _jba -> z ; _kba -> s(_iuhq_0) ; l -> cons(_juhq_0, _juhq_1) ; x -> b } count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) : Yes: { _dba -> z ; t1 -> nil ; x -> a } eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) : Yes: { _eba -> z ; h1 -> b ; t1 -> nil ; x -> a } length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : Yes: { nn1 -> z ; nn2 -> z } leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : No: () ------------------------------------------- Step 3, which took 0.018844 s (model generation: 0.018770, model checking: 0.000074): Clauses: { count(x, nil, z) <= True -> 0 length(nil, z) <= True -> 0 leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) -> 0 count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) -> 0 eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) -> 0 length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 } Accumulated learning constraints: { count(a, cons(a, nil), s(z)) <= True count(a, cons(b, nil), z) <= 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 length(cons(a, nil), s(z)) <= True length(nil, z) <= True leq(s(z), s(z)) <= True leq(z, s(z)) <= True leq(z, z) <= True } Current best model: |_ name: None count -> [ count : { count(a, cons(x_1_0, x_1_1), s(x_2_0)) <= True count(a, cons(x_1_0, x_1_1), z) <= True count(a, nil, z) <= True count(b, cons(x_1_0, x_1_1), s(x_2_0)) <= True count(b, cons(x_1_0, x_1_1), z) <= True count(b, nil, z) <= True } ] ; length -> [ length : { length(cons(x_0_0, x_0_1), s(x_1_0)) <= True length(nil, z) <= True } ] ; leq -> [ leq : { leq(s(x_0_0), s(x_1_0)) <= True leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] -- Equality automata are defined for: {elt, eltlist, nat} _| Answer of teacher: count(x, nil, z) <= True : No: () length(nil, z) <= True : No: () leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) : No: () count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) : No: () eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) : No: () length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : Yes: { nn1 -> s(_uuhq_0) ; nn2 -> z } False <= leq(s(nn1), z) : No: () ------------------------------------------- Step 4, which took 0.015163 s (model generation: 0.015043, model checking: 0.000120): Clauses: { count(x, nil, z) <= True -> 0 length(nil, z) <= True -> 0 leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) -> 0 count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) -> 0 eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) -> 0 length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 } Accumulated learning constraints: { count(a, cons(a, nil), s(z)) <= True count(a, cons(b, nil), z) <= 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 length(cons(a, nil), s(z)) <= True length(nil, z) <= True leq(s(z), s(z)) <= True leq(z, s(z)) <= True leq(z, z) <= True leq(s(z), z) <= leq(s(s(z)), s(z)) } Current best model: |_ name: None count -> [ count : { count(a, cons(x_1_0, x_1_1), s(x_2_0)) <= True count(a, cons(x_1_0, x_1_1), z) <= True count(a, nil, z) <= True count(b, cons(x_1_0, x_1_1), s(x_2_0)) <= True count(b, cons(x_1_0, x_1_1), z) <= True count(b, nil, z) <= True } ] ; length -> [ length : { length(cons(x_0_0, x_0_1), s(x_1_0)) <= True length(nil, z) <= True } ] ; leq -> [ leq : { leq(s(x_0_0), s(x_1_0)) <= True leq(s(x_0_0), z) <= True leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] -- Equality automata are defined for: {elt, eltlist, nat} _| Answer of teacher: count(x, nil, z) <= True : No: () length(nil, z) <= True : No: () leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) : No: () count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) : No: () eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) : No: () length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : Yes: { } ------------------------------------------- Step 5, which took 0.024117 s (model generation: 0.023881, model checking: 0.000236): Clauses: { count(x, nil, z) <= True -> 0 length(nil, z) <= True -> 0 leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) -> 0 count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) -> 0 eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) -> 0 length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 } Accumulated learning constraints: { count(a, cons(a, nil), s(z)) <= True count(a, cons(b, nil), z) <= 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 length(cons(a, nil), s(z)) <= True length(nil, z) <= True leq(s(z), s(z)) <= True leq(z, s(z)) <= True leq(z, z) <= True False <= leq(s(s(z)), s(z)) False <= leq(s(z), z) } Current best model: |_ name: None count -> [ count : { count(a, cons(x_1_0, x_1_1), s(x_2_0)) <= True count(a, cons(x_1_0, x_1_1), z) <= True count(a, nil, z) <= True count(b, cons(x_1_0, x_1_1), s(x_2_0)) <= True count(b, cons(x_1_0, x_1_1), z) <= True count(b, nil, z) <= True } ] ; length -> [ length : { length(cons(x_0_0, x_0_1), s(x_1_0)) <= True length(nil, z) <= True } ] ; leq -> [ leq : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] -- Equality automata are defined for: {elt, eltlist, nat} _| Answer of teacher: count(x, nil, z) <= True : No: () length(nil, z) <= True : No: () leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) : Yes: { _jba -> s(s(_qvhq_0)) ; _kba -> s(z) ; l -> cons(_yuhq_0, _yuhq_1) ; x -> a } count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) : No: () eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) : No: () length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : No: () ------------------------------------------- Step 6, which took 0.020927 s (model generation: 0.020529, model checking: 0.000398): Clauses: { count(x, nil, z) <= True -> 0 length(nil, z) <= True -> 0 leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) -> 0 count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) -> 0 eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) -> 0 length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 } Accumulated learning constraints: { count(a, cons(a, nil), s(z)) <= True count(a, cons(b, nil), z) <= 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 length(cons(a, nil), s(z)) <= True length(nil, z) <= True leq(s(z), s(z)) <= True leq(z, s(z)) <= True leq(z, z) <= True False <= count(a, cons(a, nil), s(s(z))) False <= leq(s(s(z)), s(z)) False <= leq(s(z), z) } Current best model: |_ name: None count -> [ count : { count(a, cons(x_1_0, x_1_1), s(x_2_0)) <= length(x_1_1, x_2_0) count(a, cons(x_1_0, x_1_1), z) <= True count(a, nil, z) <= True count(b, cons(x_1_0, x_1_1), s(x_2_0)) <= True count(b, cons(x_1_0, x_1_1), z) <= True count(b, nil, z) <= True length(cons(x_0_0, x_0_1), s(x_1_0)) <= True length(nil, z) <= True } ] ; length -> [ length : { length(cons(x_0_0, x_0_1), s(x_1_0)) <= True length(nil, z) <= True } ] ; leq -> [ leq : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] -- Equality automata are defined for: {elt, eltlist, nat} _| Answer of teacher: count(x, nil, z) <= True : No: () length(nil, z) <= True : No: () leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) : Yes: { _jba -> s(s(_zwhq_0)) ; _kba -> s(z) ; l -> cons(_yvhq_0, _yvhq_1) ; x -> b } count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) : Yes: { _dba -> z ; t1 -> cons(_ewhq_0, _ewhq_1) ; x -> a } eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) : Yes: { _eba -> s(z) ; h1 -> b ; t1 -> cons(_lwhq_0, nil) ; x -> a } length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : No: () ------------------------------------------- Step 7, which took 0.024011 s (model generation: 0.023372, model checking: 0.000639): Clauses: { count(x, nil, z) <= True -> 0 length(nil, z) <= True -> 0 leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) -> 0 count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) -> 0 eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) -> 0 length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 } Accumulated learning constraints: { count(a, cons(a, nil), s(z)) <= True count(a, cons(b, cons(a, nil)), s(z)) <= True count(a, cons(b, nil), z) <= 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 length(cons(a, nil), s(z)) <= True length(nil, z) <= True leq(s(z), s(z)) <= True leq(z, s(z)) <= True leq(z, z) <= True False <= count(a, cons(a, nil), s(s(z))) count(a, cons(a, cons(a, nil)), s(z)) <= count(a, cons(a, nil), z) False <= count(b, cons(a, nil), s(s(z))) False <= leq(s(s(z)), s(z)) False <= leq(s(z), z) } Current best model: |_ name: None count -> [ count : { count(a, cons(x_1_0, x_1_1), s(x_2_0)) <= length(x_1_1, x_2_0) count(a, cons(x_1_0, x_1_1), z) <= True count(a, nil, z) <= True count(b, cons(x_1_0, x_1_1), s(x_2_0)) <= length(x_1_1, x_2_0) count(b, cons(x_1_0, x_1_1), z) <= True count(b, nil, z) <= True length(cons(x_0_0, x_0_1), s(x_1_0)) <= True length(cons(x_0_0, x_0_1), z) <= True length(nil, z) <= True } ] ; length -> [ length : { length(cons(x_0_0, x_0_1), s(x_1_0)) <= True length(cons(x_0_0, x_0_1), z) <= True length(nil, z) <= True } ] ; leq -> [ leq : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] -- Equality automata are defined for: {elt, eltlist, nat} _| Answer of teacher: count(x, nil, z) <= True : No: () length(nil, z) <= True : No: () leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) : Yes: { _jba -> s(z) ; _kba -> z ; l -> cons(_rxhq_0, nil) ; x -> b } count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) : No: () eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) : No: () length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : No: () ------------------------------------------- Step 8, which took 0.024947 s (model generation: 0.024716, model checking: 0.000231): Clauses: { count(x, nil, z) <= True -> 0 length(nil, z) <= True -> 0 leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) -> 0 count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) -> 0 eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) -> 0 length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 } Accumulated learning constraints: { count(a, cons(a, nil), s(z)) <= True count(a, cons(b, cons(a, nil)), s(z)) <= True count(a, cons(b, nil), z) <= 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 length(cons(a, nil), s(z)) <= True length(nil, z) <= True leq(s(z), s(z)) <= True leq(z, s(z)) <= True leq(z, z) <= True False <= count(a, cons(a, nil), s(s(z))) count(a, cons(a, cons(a, nil)), s(z)) <= count(a, cons(a, nil), z) False <= count(b, cons(a, nil), s(s(z))) False <= count(b, cons(a, nil), s(z)) /\ length(cons(a, nil), z) False <= leq(s(s(z)), s(z)) False <= leq(s(z), z) } Current best model: |_ name: None count -> [ count : { _r_1(z) <= True count(a, cons(x_1_0, x_1_1), s(x_2_0)) <= _r_1(x_2_0) count(a, cons(x_1_0, x_1_1), z) <= True count(a, nil, z) <= True count(b, cons(x_1_0, x_1_1), s(x_2_0)) <= _r_1(x_2_0) count(b, cons(x_1_0, x_1_1), z) <= True count(b, nil, z) <= True } ] ; length -> [ length : { length(cons(x_0_0, x_0_1), s(x_1_0)) <= True length(nil, z) <= True } ] ; leq -> [ leq : { _r_1(z) <= True leq(s(x_0_0), s(x_1_0)) <= _r_1(x_0_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] -- Equality automata are defined for: {elt, eltlist, nat} _| Answer of teacher: count(x, nil, z) <= True : No: () length(nil, z) <= True : No: () leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) : No: () count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) : Yes: { _dba -> s(z) ; t1 -> cons(_szhq_0, _szhq_1) ; x -> a } eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) : No: () length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : Yes: { nn1 -> s(z) ; nn2 -> s(_saiq_0) } leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : No: () ------------------------------------------- Step 9, which took 0.024694 s (model generation: 0.024518, model checking: 0.000176): Clauses: { count(x, nil, z) <= True -> 0 length(nil, z) <= True -> 0 leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) -> 0 count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) -> 0 eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) -> 0 length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 } Accumulated learning constraints: { count(a, cons(a, cons(a, nil)), s(s(z))) <= True count(a, cons(a, nil), s(z)) <= True count(a, cons(b, cons(a, nil)), s(z)) <= True count(a, cons(b, nil), z) <= 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 length(cons(a, nil), s(z)) <= True length(nil, z) <= True leq(s(s(z)), s(s(z))) <= True leq(s(z), s(z)) <= True leq(z, s(z)) <= True leq(z, z) <= True False <= count(a, cons(a, nil), s(s(z))) count(a, cons(a, cons(a, nil)), s(z)) <= count(a, cons(a, nil), z) False <= count(b, cons(a, nil), s(s(z))) False <= count(b, cons(a, nil), s(z)) /\ length(cons(a, nil), z) False <= leq(s(s(z)), s(z)) False <= leq(s(z), z) } Current best model: |_ name: None count -> [ count : { _r_1(cons(x_0_0, x_0_1), s(x_1_0)) <= True _r_1(cons(x_0_0, x_0_1), z) <= True _r_1(nil, z) <= True count(a, cons(x_1_0, x_1_1), s(x_2_0)) <= _r_1(x_1_1, x_2_0) count(a, cons(x_1_0, x_1_1), z) <= True count(a, nil, z) <= True count(b, cons(x_1_0, x_1_1), s(x_2_0)) <= _r_1(x_1_1, x_2_0) count(b, cons(x_1_0, x_1_1), z) <= True count(b, nil, z) <= True } ] ; length -> [ length : { length(cons(x_0_0, x_0_1), s(x_1_0)) <= True length(nil, z) <= True } ] ; leq -> [ leq : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] -- Equality automata are defined for: {elt, eltlist, nat} _| Answer of teacher: count(x, nil, z) <= True : No: () length(nil, z) <= True : No: () leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) : Yes: { _jba -> s(s(_zciq_0)) ; _kba -> s(z) ; l -> cons(_jbiq_0, cons(_yciq_0, _yciq_1)) ; x -> b } count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) : No: () eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) : No: () length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : No: () ------------------------------------------- Step 10, which took 0.018081 s (model generation: 0.017815, model checking: 0.000266): Clauses: { count(x, nil, z) <= True -> 0 length(nil, z) <= True -> 0 leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) -> 0 count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) -> 0 eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) -> 0 length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 } Accumulated learning constraints: { count(a, cons(a, cons(a, nil)), s(s(z))) <= True count(a, cons(a, nil), s(z)) <= True count(a, cons(b, cons(a, nil)), s(z)) <= True count(a, cons(b, nil), z) <= 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 length(cons(a, nil), s(z)) <= True length(nil, z) <= True leq(s(s(z)), s(s(z))) <= True leq(s(z), s(z)) <= True leq(z, s(z)) <= True leq(z, z) <= True False <= count(a, cons(a, nil), s(s(z))) count(a, cons(a, cons(a, nil)), s(z)) <= count(a, cons(a, nil), z) False <= count(b, cons(a, cons(a, nil)), s(s(z))) /\ length(cons(a, cons(a, nil)), s(z)) False <= count(b, cons(a, nil), s(s(z))) False <= count(b, cons(a, nil), s(z)) /\ length(cons(a, nil), z) False <= leq(s(s(z)), s(z)) False <= leq(s(z), z) } Current best model: |_ name: None count -> [ count : { _r_1(cons(x_0_0, x_0_1), z) <= True _r_1(nil, z) <= True count(a, cons(x_1_0, x_1_1), s(x_2_0)) <= _r_1(x_1_1, x_2_0) count(a, cons(x_1_0, x_1_1), s(x_2_0)) <= length(x_1_1, x_2_0) count(a, cons(x_1_0, x_1_1), z) <= True count(a, nil, z) <= True count(b, cons(x_1_0, x_1_1), s(x_2_0)) <= _r_1(x_1_1, x_2_0) count(b, cons(x_1_0, x_1_1), z) <= True count(b, nil, z) <= True length(cons(x_0_0, x_0_1), s(x_1_0)) <= True length(nil, z) <= True } ] ; length -> [ length : { length(cons(x_0_0, x_0_1), s(x_1_0)) <= True length(nil, z) <= True } ] ; leq -> [ leq : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] -- Equality automata are defined for: {elt, eltlist, nat} _| Answer of teacher: count(x, nil, z) <= True : No: () length(nil, z) <= True : No: () leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) : Yes: { _jba -> s(s(_ifiq_0)) ; _kba -> s(z) ; l -> cons(_hdiq_0, cons(_hfiq_0, _hfiq_1)) ; x -> a } count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) : Yes: { _dba -> s(z) ; t1 -> cons(_aeiq_0, nil) ; x -> b } eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) : No: () length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : No: () ------------------------------------------- Step 11, which took 0.020515 s (model generation: 0.020269, model checking: 0.000246): Clauses: { count(x, nil, z) <= True -> 0 length(nil, z) <= True -> 0 leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) -> 0 count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) -> 0 eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) -> 0 length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 } Accumulated learning constraints: { count(a, cons(a, cons(a, nil)), s(s(z))) <= True count(a, cons(a, nil), s(z)) <= True count(a, cons(b, cons(a, nil)), s(z)) <= True count(a, cons(b, nil), z) <= 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 length(cons(a, nil), s(z)) <= True length(nil, z) <= True leq(s(s(z)), s(s(z))) <= True leq(s(z), s(z)) <= True leq(z, s(z)) <= True leq(z, z) <= True False <= count(a, cons(a, nil), s(s(z))) count(a, cons(a, cons(a, nil)), s(z)) <= count(a, cons(a, nil), z) False <= count(b, cons(a, nil), s(s(z))) count(b, cons(b, cons(a, nil)), s(s(z))) <= count(b, cons(a, nil), s(z)) False <= count(b, cons(a, nil), s(z)) /\ length(cons(a, nil), z) False <= length(cons(a, cons(a, nil)), s(z)) False <= leq(s(s(z)), s(z)) False <= leq(s(z), z) } Current best model: |_ name: None count -> [ count : { _r_1(cons(x_0_0, x_0_1), s(x_1_0)) <= True _r_1(cons(x_0_0, x_0_1), z) <= True _r_1(nil, z) <= True count(a, cons(x_1_0, x_1_1), s(x_2_0)) <= _r_1(x_1_1, x_2_0) count(a, cons(x_1_0, x_1_1), z) <= True count(a, nil, z) <= True count(b, cons(x_1_0, x_1_1), s(x_2_0)) <= _r_1(x_1_1, x_2_0) count(b, cons(x_1_0, x_1_1), z) <= True count(b, nil, z) <= True } ] ; length -> [ length : { length(cons(x_0_0, x_0_1), s(x_1_0)) <= length(x_0_1, x_1_0) length(nil, z) <= True } ] ; leq -> [ leq : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] -- Equality automata are defined for: {elt, eltlist, nat} _| Answer of teacher: count(x, nil, z) <= True : No: () length(nil, z) <= True : No: () leq(_jba, _kba) <= count(x, l, _jba) /\ length(l, _kba) : Yes: { _jba -> s(s(s(_shiq_0))) ; _kba -> s(s(z)) ; l -> cons(_ufiq_0, cons(_khiq_0, nil)) ; x -> b } count(x, cons(x, t1), s(_dba)) <= count(x, t1, _dba) : No: () eq_elt(h1, x) \/ count(x, cons(h1, t1), _eba) <= count(x, t1, _eba) : No: () length(cons(x, ll), s(_zaa)) <= length(ll, _zaa) : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : No: () Total time: 0.275215 Learner time: 0.243148 Teacher time: 0.003993 Reasons for stopping: Yes: |_ name: None count -> [ count : { _r_1(cons(x_0_0, x_0_1), s(x_1_0)) <= _r_1(x_0_1, x_1_0) _r_1(cons(x_0_0, x_0_1), z) <= True _r_1(nil, z) <= True count(a, cons(x_1_0, x_1_1), s(x_2_0)) <= _r_1(x_1_1, x_2_0) count(a, cons(x_1_0, x_1_1), z) <= True count(a, nil, z) <= True count(b, cons(x_1_0, x_1_1), s(x_2_0)) <= _r_1(x_1_1, x_2_0) count(b, cons(x_1_0, x_1_1), z) <= True count(b, nil, z) <= True } ] ; length -> [ length : { length(cons(x_0_0, x_0_1), s(x_1_0)) <= length(x_0_1, x_1_0) length(nil, z) <= True } ] ; leq -> [ leq : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] -- Equality automata are defined for: {elt, eltlist, nat} _|