Solving ../../benchmarks/smtlib/true/length_delete_leq.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(_pva)) <= length(ll, _pva) } eq_nat(_rva, _sva) <= length(_qva, _rva) /\ length(_qva, _sva) ) (delete, F: { delete(x, nil, nil) <= True delete(h, cons(h, t), _tva) <= delete(h, t, _tva) eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) } eq_eltlist(_xva, _yva) <= delete(_vva, _wva, _xva) /\ delete(_vva, _wva, _yva) ) } properties: { leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) } over-approximation: {delete, length} under-approximation: {leq} Clause system for inference is: { delete(x, nil, nil) <= True -> 0 length(nil, z) <= True -> 0 delete(h, cons(h, t), _tva) <= delete(h, t, _tva) -> 0 leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) -> 0 eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) -> 0 length(cons(x, ll), s(_pva)) <= length(ll, _pva) -> 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.188647 seconds. Yes: |_ name: None delete -> [ delete : { _r_1(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1)) <= _r_1(x_0_1, x_1_1) _r_1(cons(x_0_0, x_0_1), nil) <= True _r_1(nil, nil) <= True delete(a, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_1_1, x_2_1) delete(a, cons(x_1_0, x_1_1), nil) <= True delete(a, nil, nil) <= True delete(b, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_1_1, x_2_1) delete(b, cons(x_1_0, x_1_1), nil) <= True delete(b, nil, nil) <= 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.005556 s (model generation: 0.005507, model checking: 0.000049): Clauses: { delete(x, nil, nil) <= True -> 0 length(nil, z) <= True -> 0 delete(h, cons(h, t), _tva) <= delete(h, t, _tva) -> 0 leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) -> 0 eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) -> 0 length(cons(x, ll), s(_pva)) <= length(ll, _pva) -> 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 delete -> [ delete : { } ] ; length -> [ length : { } ] ; leq -> [ leq : { } ] -- Equality automata are defined for: {elt, eltlist, nat} _| Answer of teacher: delete(x, nil, nil) <= True : Yes: { x -> b } length(nil, z) <= True : Yes: { } delete(h, cons(h, t), _tva) <= delete(h, t, _tva) : No: () leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) : No: () eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) : No: () length(cons(x, ll), s(_pva)) <= length(ll, _pva) : 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.007612 s (model generation: 0.007436, model checking: 0.000176): Clauses: { delete(x, nil, nil) <= True -> 0 length(nil, z) <= True -> 0 delete(h, cons(h, t), _tva) <= delete(h, t, _tva) -> 0 leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) -> 0 eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) -> 0 length(cons(x, ll), s(_pva)) <= length(ll, _pva) -> 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: { delete(b, nil, nil) <= True length(nil, z) <= True } Current best model: |_ name: None delete -> [ delete : { delete(b, nil, nil) <= True } ] ; length -> [ length : { length(nil, z) <= True } ] ; leq -> [ leq : { } ] -- Equality automata are defined for: {elt, eltlist, nat} _| Answer of teacher: delete(x, nil, nil) <= True : Yes: { x -> a } length(nil, z) <= True : No: () delete(h, cons(h, t), _tva) <= delete(h, t, _tva) : Yes: { _tva -> nil ; h -> b ; t -> nil } leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) : Yes: { _awa -> z ; _bwa -> z ; _zva -> nil ; i -> b ; l -> nil } eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) : Yes: { _uva -> nil ; h -> a ; t -> nil ; x -> b } length(cons(x, ll), s(_pva)) <= length(ll, _pva) : Yes: { _pva -> 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.014347 s (model generation: 0.014230, model checking: 0.000117): Clauses: { delete(x, nil, nil) <= True -> 0 length(nil, z) <= True -> 0 delete(h, cons(h, t), _tva) <= delete(h, t, _tva) -> 0 leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) -> 0 eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) -> 0 length(cons(x, ll), s(_pva)) <= length(ll, _pva) -> 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: { delete(a, nil, nil) <= True delete(b, cons(a, nil), cons(a, nil)) <= True delete(b, cons(b, nil), nil) <= True delete(b, nil, nil) <= True length(cons(a, nil), s(z)) <= True length(nil, z) <= True leq(z, z) <= True } Current best model: |_ name: None delete -> [ delete : { delete(a, nil, nil) <= True delete(b, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True delete(b, cons(x_1_0, x_1_1), nil) <= True delete(b, nil, nil) <= 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: delete(x, nil, nil) <= True : No: () length(nil, z) <= True : No: () delete(h, cons(h, t), _tva) <= delete(h, t, _tva) : Yes: { _tva -> nil ; h -> a ; t -> nil } leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) : Yes: { _awa -> z ; _bwa -> s(_aliq_0) ; _zva -> nil ; i -> b ; l -> cons(_dliq_0, _dliq_1) } eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) : Yes: { _uva -> nil ; h -> b ; t -> nil ; x -> a } length(cons(x, ll), s(_pva)) <= length(ll, _pva) : 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.010674 s (model generation: 0.010597, model checking: 0.000077): Clauses: { delete(x, nil, nil) <= True -> 0 length(nil, z) <= True -> 0 delete(h, cons(h, t), _tva) <= delete(h, t, _tva) -> 0 leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) -> 0 eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) -> 0 length(cons(x, ll), s(_pva)) <= length(ll, _pva) -> 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: { delete(a, cons(a, nil), nil) <= True delete(a, cons(b, nil), cons(b, nil)) <= True delete(a, nil, nil) <= True delete(b, cons(a, nil), cons(a, nil)) <= True delete(b, cons(b, nil), nil) <= True delete(b, nil, nil) <= True length(cons(a, nil), s(z)) <= True length(nil, z) <= True leq(s(z), s(z)) <= True leq(z, z) <= True leq(z, s(z)) <= delete(b, cons(a, nil), nil) } Current best model: |_ name: None delete -> [ delete : { delete(a, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True delete(a, cons(x_1_0, x_1_1), nil) <= True delete(a, nil, nil) <= True delete(b, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True delete(b, cons(x_1_0, x_1_1), nil) <= True delete(b, nil, nil) <= 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: delete(x, nil, nil) <= True : No: () length(nil, z) <= True : No: () delete(h, cons(h, t), _tva) <= delete(h, t, _tva) : No: () leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) : No: () eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) : No: () length(cons(x, ll), s(_pva)) <= length(ll, _pva) : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : Yes: { nn1 -> s(_kliq_0) ; nn2 -> z } False <= leq(s(nn1), z) : No: () ------------------------------------------- Step 4, which took 0.009420 s (model generation: 0.009354, model checking: 0.000066): Clauses: { delete(x, nil, nil) <= True -> 0 length(nil, z) <= True -> 0 delete(h, cons(h, t), _tva) <= delete(h, t, _tva) -> 0 leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) -> 0 eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) -> 0 length(cons(x, ll), s(_pva)) <= length(ll, _pva) -> 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: { delete(a, cons(a, nil), nil) <= True delete(a, cons(b, nil), cons(b, nil)) <= True delete(a, nil, nil) <= True delete(b, cons(a, nil), cons(a, nil)) <= True delete(b, cons(b, nil), nil) <= True delete(b, nil, nil) <= True length(cons(a, nil), s(z)) <= True length(nil, z) <= True leq(s(z), s(z)) <= True leq(z, z) <= True leq(z, s(z)) <= delete(b, cons(a, nil), nil) leq(s(z), z) <= leq(s(s(z)), s(z)) } Current best model: |_ name: None delete -> [ delete : { delete(a, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True delete(a, cons(x_1_0, x_1_1), nil) <= True delete(a, nil, nil) <= True delete(b, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True delete(b, cons(x_1_0, x_1_1), nil) <= True delete(b, nil, nil) <= 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: delete(x, nil, nil) <= True : No: () length(nil, z) <= True : No: () delete(h, cons(h, t), _tva) <= delete(h, t, _tva) : No: () leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) : No: () eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) : No: () length(cons(x, ll), s(_pva)) <= length(ll, _pva) : 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.008999 s (model generation: 0.008845, model checking: 0.000154): Clauses: { delete(x, nil, nil) <= True -> 0 length(nil, z) <= True -> 0 delete(h, cons(h, t), _tva) <= delete(h, t, _tva) -> 0 leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) -> 0 eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) -> 0 length(cons(x, ll), s(_pva)) <= length(ll, _pva) -> 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: { delete(a, cons(a, nil), nil) <= True delete(a, cons(b, nil), cons(b, nil)) <= True delete(a, nil, nil) <= True delete(b, cons(a, nil), cons(a, nil)) <= True delete(b, cons(b, nil), nil) <= True delete(b, nil, nil) <= True length(cons(a, nil), s(z)) <= True length(nil, z) <= True leq(s(z), s(z)) <= True leq(z, z) <= True leq(z, s(z)) <= delete(b, cons(a, nil), nil) False <= leq(s(s(z)), s(z)) False <= leq(s(z), z) } Current best model: |_ name: None delete -> [ delete : { delete(a, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True delete(a, cons(x_1_0, x_1_1), nil) <= True delete(a, nil, nil) <= True delete(b, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True delete(b, cons(x_1_0, x_1_1), nil) <= True delete(b, nil, nil) <= 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: delete(x, nil, nil) <= True : No: () length(nil, z) <= True : No: () delete(h, cons(h, t), _tva) <= delete(h, t, _tva) : No: () leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) : Yes: { _awa -> s(s(_imiq_0)) ; _bwa -> s(z) ; _zva -> cons(_tliq_0, _tliq_1) ; i -> b ; l -> cons(_vliq_0, _vliq_1) } eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) : No: () length(cons(x, ll), s(_pva)) <= length(ll, _pva) : 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.009119 s (model generation: 0.008934, model checking: 0.000185): Clauses: { delete(x, nil, nil) <= True -> 0 length(nil, z) <= True -> 0 delete(h, cons(h, t), _tva) <= delete(h, t, _tva) -> 0 leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) -> 0 eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) -> 0 length(cons(x, ll), s(_pva)) <= length(ll, _pva) -> 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: { delete(a, cons(a, nil), nil) <= True delete(a, cons(b, nil), cons(b, nil)) <= True delete(a, nil, nil) <= True delete(b, cons(a, nil), cons(a, nil)) <= True delete(b, cons(b, nil), nil) <= True delete(b, nil, nil) <= True length(cons(a, nil), s(z)) <= True length(nil, z) <= True leq(s(z), s(z)) <= True leq(z, z) <= True leq(z, s(z)) <= delete(b, cons(a, nil), nil) False <= length(cons(a, nil), s(s(z))) False <= leq(s(s(z)), s(z)) False <= leq(s(z), z) } Current best model: |_ name: None delete -> [ delete : { delete(a, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True delete(a, cons(x_1_0, x_1_1), nil) <= True delete(a, nil, nil) <= True delete(b, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True delete(b, cons(x_1_0, x_1_1), nil) <= True delete(b, nil, nil) <= 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: delete(x, nil, nil) <= True : No: () length(nil, z) <= True : No: () delete(h, cons(h, t), _tva) <= delete(h, t, _tva) : No: () leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) : Yes: { _awa -> s(s(z)) ; _bwa -> s(z) ; _zva -> cons(_rmiq_0, cons(_oniq_0, nil)) ; i -> b ; l -> cons(_tmiq_0, nil) } eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) : No: () length(cons(x, ll), s(_pva)) <= length(ll, _pva) : 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.014653 s (model generation: 0.014488, model checking: 0.000165): Clauses: { delete(x, nil, nil) <= True -> 0 length(nil, z) <= True -> 0 delete(h, cons(h, t), _tva) <= delete(h, t, _tva) -> 0 leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) -> 0 eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) -> 0 length(cons(x, ll), s(_pva)) <= length(ll, _pva) -> 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: { delete(a, cons(a, nil), nil) <= True delete(a, cons(b, nil), cons(b, nil)) <= True delete(a, nil, nil) <= True delete(b, cons(a, nil), cons(a, nil)) <= True delete(b, cons(b, nil), nil) <= True delete(b, nil, nil) <= True length(cons(a, nil), s(z)) <= True length(nil, z) <= True leq(s(z), s(z)) <= True leq(z, z) <= True False <= delete(b, cons(a, nil), cons(a, cons(a, nil))) /\ length(cons(a, cons(a, nil)), s(s(z))) leq(z, s(z)) <= delete(b, cons(a, nil), nil) False <= length(cons(a, nil), s(s(z))) False <= leq(s(s(z)), s(z)) False <= leq(s(z), z) } Current best model: |_ name: None delete -> [ delete : { delete(a, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True delete(a, cons(x_1_0, x_1_1), nil) <= True delete(a, nil, nil) <= True delete(b, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True delete(b, cons(x_1_0, x_1_1), nil) <= True delete(b, nil, nil) <= True } ] ; length -> [ length : { _r_1(a, z) <= True length(cons(x_0_0, x_0_1), s(x_1_0)) <= _r_1(x_0_0, 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: delete(x, nil, nil) <= True : No: () length(nil, z) <= True : No: () delete(h, cons(h, t), _tva) <= delete(h, t, _tva) : No: () leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) : No: () eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) : No: () length(cons(x, ll), s(_pva)) <= length(ll, _pva) : Yes: { _pva -> z ; ll -> nil ; x -> b } 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.017288 s (model generation: 0.017028, model checking: 0.000260): Clauses: { delete(x, nil, nil) <= True -> 0 length(nil, z) <= True -> 0 delete(h, cons(h, t), _tva) <= delete(h, t, _tva) -> 0 leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) -> 0 eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) -> 0 length(cons(x, ll), s(_pva)) <= length(ll, _pva) -> 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: { delete(a, cons(a, nil), nil) <= True delete(a, cons(b, nil), cons(b, nil)) <= True delete(a, nil, nil) <= True delete(b, cons(a, nil), cons(a, nil)) <= True delete(b, cons(b, nil), nil) <= True delete(b, nil, nil) <= True length(cons(a, nil), s(z)) <= True length(cons(b, nil), s(z)) <= True length(nil, z) <= True leq(s(z), s(z)) <= True leq(z, z) <= True False <= delete(b, cons(a, nil), cons(a, cons(a, nil))) /\ length(cons(a, cons(a, nil)), s(s(z))) leq(z, s(z)) <= delete(b, cons(a, nil), nil) False <= length(cons(a, nil), s(s(z))) False <= leq(s(s(z)), s(z)) False <= leq(s(z), z) } Current best model: |_ name: None delete -> [ delete : { delete(a, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True delete(a, cons(x_1_0, x_1_1), nil) <= True delete(a, nil, nil) <= True delete(b, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True delete(b, cons(x_1_0, x_1_1), nil) <= True delete(b, nil, nil) <= True } ] ; length -> [ length : { _r_1(a, z) <= True _r_1(b, z) <= True length(cons(x_0_0, x_0_1), s(x_1_0)) <= _r_1(x_0_0, 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: delete(x, nil, nil) <= True : No: () length(nil, z) <= True : No: () delete(h, cons(h, t), _tva) <= delete(h, t, _tva) : No: () leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) : No: () eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) : No: () length(cons(x, ll), s(_pva)) <= length(ll, _pva) : Yes: { _pva -> s(z) ; ll -> cons(b, _epiq_1) ; x -> b } 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 9, which took 0.025905 s (model generation: 0.025687, model checking: 0.000218): Clauses: { delete(x, nil, nil) <= True -> 0 length(nil, z) <= True -> 0 delete(h, cons(h, t), _tva) <= delete(h, t, _tva) -> 0 leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) -> 0 eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) -> 0 length(cons(x, ll), s(_pva)) <= length(ll, _pva) -> 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: { delete(a, cons(a, nil), nil) <= True delete(a, cons(b, nil), cons(b, nil)) <= True delete(a, nil, nil) <= True delete(b, cons(a, nil), cons(a, nil)) <= True delete(b, cons(b, nil), nil) <= True delete(b, nil, nil) <= True length(cons(a, nil), s(z)) <= True length(cons(b, cons(b, nil)), s(s(z))) <= True length(cons(b, nil), s(z)) <= True length(nil, z) <= True leq(s(z), s(z)) <= True leq(z, z) <= True False <= delete(b, cons(a, nil), cons(a, cons(a, nil))) /\ length(cons(a, cons(a, nil)), s(s(z))) leq(z, s(z)) <= delete(b, cons(a, nil), nil) False <= length(cons(a, nil), s(s(z))) False <= leq(s(s(z)), s(z)) False <= leq(s(z), z) } Current best model: |_ name: None delete -> [ delete : { delete(a, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True delete(a, cons(x_1_0, x_1_1), nil) <= True delete(a, nil, nil) <= True delete(b, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True delete(b, cons(x_1_0, x_1_1), nil) <= True delete(b, nil, nil) <= True } ] ; length -> [ length : { _r_1(a, z) <= True _r_1(b, s(x_1_0)) <= True _r_1(b, z) <= True length(cons(x_0_0, x_0_1), s(x_1_0)) <= _r_1(x_0_0, 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: delete(x, nil, nil) <= True : No: () length(nil, z) <= True : No: () delete(h, cons(h, t), _tva) <= delete(h, t, _tva) : No: () leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) : Yes: { _awa -> s(s(_mriq_0)) ; _bwa -> s(z) ; _zva -> cons(b, _kqiq_1) ; i -> b ; l -> cons(b, _mqiq_1) } eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) : No: () length(cons(x, ll), s(_pva)) <= length(ll, _pva) : Yes: { _pva -> s(z) ; ll -> cons(b, _oqiq_1) ; x -> a } 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.018166 s (model generation: 0.017931, model checking: 0.000235): Clauses: { delete(x, nil, nil) <= True -> 0 length(nil, z) <= True -> 0 delete(h, cons(h, t), _tva) <= delete(h, t, _tva) -> 0 leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) -> 0 eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) -> 0 length(cons(x, ll), s(_pva)) <= length(ll, _pva) -> 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: { delete(a, cons(a, nil), nil) <= True delete(a, cons(b, nil), cons(b, nil)) <= True delete(a, nil, nil) <= True delete(b, cons(a, nil), cons(a, nil)) <= True delete(b, cons(b, nil), nil) <= True delete(b, nil, nil) <= True length(cons(a, cons(b, nil)), s(s(z))) <= True length(cons(a, nil), s(z)) <= True length(cons(b, cons(b, nil)), s(s(z))) <= True length(cons(b, nil), s(z)) <= True length(nil, z) <= True leq(s(z), s(z)) <= True leq(z, z) <= True False <= delete(b, cons(a, nil), cons(a, cons(a, nil))) /\ length(cons(a, cons(a, nil)), s(s(z))) leq(z, s(z)) <= delete(b, cons(a, nil), nil) False <= delete(b, cons(b, nil), cons(b, nil)) /\ length(cons(b, nil), s(s(z))) False <= length(cons(a, nil), s(s(z))) False <= leq(s(s(z)), s(z)) False <= leq(s(z), z) } Current best model: |_ name: None delete -> [ delete : { _r_1(nil) <= True delete(a, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True delete(a, cons(x_1_0, x_1_1), nil) <= True delete(a, nil, nil) <= True delete(b, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_2_1) delete(b, cons(x_1_0, x_1_1), nil) <= True delete(b, nil, nil) <= 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: delete(x, nil, nil) <= True : No: () length(nil, z) <= True : No: () delete(h, cons(h, t), _tva) <= delete(h, t, _tva) : No: () leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) : Yes: { _awa -> s(s(z)) ; _bwa -> s(z) ; _zva -> cons(_bsiq_0, cons(_ptiq_0, nil)) ; i -> a ; l -> cons(_dsiq_0, nil) } eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) : Yes: { _uva -> cons(_jsiq_0, nil) ; h -> a ; t -> cons(_lsiq_0, _lsiq_1) ; x -> b } length(cons(x, ll), s(_pva)) <= length(ll, _pva) : 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.020050 s (model generation: 0.019768, model checking: 0.000282): Clauses: { delete(x, nil, nil) <= True -> 0 length(nil, z) <= True -> 0 delete(h, cons(h, t), _tva) <= delete(h, t, _tva) -> 0 leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) -> 0 eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) -> 0 length(cons(x, ll), s(_pva)) <= length(ll, _pva) -> 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: { delete(a, cons(a, nil), nil) <= True delete(a, cons(b, nil), cons(b, nil)) <= True delete(a, nil, nil) <= True delete(b, cons(a, cons(a, nil)), cons(a, cons(a, nil))) <= True delete(b, cons(a, nil), cons(a, nil)) <= True delete(b, cons(b, nil), nil) <= True delete(b, nil, nil) <= True length(cons(a, cons(b, nil)), s(s(z))) <= True length(cons(a, nil), s(z)) <= True length(cons(b, cons(b, nil)), s(s(z))) <= True length(cons(b, nil), s(z)) <= True length(nil, z) <= True leq(s(z), s(z)) <= True leq(z, z) <= True False <= delete(a, cons(a, nil), cons(a, cons(a, nil))) /\ length(cons(a, cons(a, nil)), s(s(z))) False <= delete(b, cons(a, nil), cons(a, cons(a, nil))) /\ length(cons(a, cons(a, nil)), s(s(z))) leq(z, s(z)) <= delete(b, cons(a, nil), nil) False <= delete(b, cons(b, nil), cons(b, nil)) /\ length(cons(b, nil), s(s(z))) False <= length(cons(a, nil), s(s(z))) False <= leq(s(s(z)), s(z)) False <= leq(s(z), z) } Current best model: |_ name: None delete -> [ delete : { _r_1(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1)) <= True _r_1(nil, nil) <= True delete(a, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_1_1, x_2_1) delete(a, cons(x_1_0, x_1_1), nil) <= True delete(a, nil, nil) <= True delete(b, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_1_1, x_2_1) delete(b, cons(x_1_0, x_1_1), nil) <= True delete(b, nil, nil) <= 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: delete(x, nil, nil) <= True : No: () length(nil, z) <= True : No: () delete(h, cons(h, t), _tva) <= delete(h, t, _tva) : Yes: { _tva -> cons(_ztiq_0, nil) ; h -> b ; t -> cons(_buiq_0, nil) } leq(_awa, _bwa) <= delete(i, l, _zva) /\ length(_zva, _awa) /\ length(l, _bwa) : Yes: { _awa -> s(s(s(z))) ; _bwa -> s(s(z)) ; _zva -> cons(_juiq_0, cons(_bwiq_0, cons(_iwiq_0, nil))) ; i -> b ; l -> cons(_luiq_0, cons(_awiq_0, nil)) } eq_elt(x, h) \/ delete(x, cons(h, t), cons(h, _uva)) <= delete(x, t, _uva) : Yes: { _uva -> nil ; h -> b ; t -> cons(_suiq_0, _suiq_1) ; x -> a } length(cons(x, ll), s(_pva)) <= length(ll, _pva) : 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.188647 Learner time: 0.159805 Teacher time: 0.001984 Reasons for stopping: Yes: |_ name: None delete -> [ delete : { _r_1(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1)) <= _r_1(x_0_1, x_1_1) _r_1(cons(x_0_0, x_0_1), nil) <= True _r_1(nil, nil) <= True delete(a, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_1_1, x_2_1) delete(a, cons(x_1_0, x_1_1), nil) <= True delete(a, nil, nil) <= True delete(b, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_1_1, x_2_1) delete(b, cons(x_1_0, x_1_1), nil) <= True delete(b, nil, nil) <= 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} _|