Solving ../../benchmarks/smtlib/true/append_equal_elt.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} } definition: { (append, F: { append(nil, l2, l2) <= True append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) } eq_eltlist(_xs, _ys) <= append(_vs, _ws, _xs) /\ append(_vs, _ws, _ys) ) } properties: { eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) } over-approximation: {append} under-approximation: {} Clause system for inference is: { append(nil, l2, l2) <= True -> 0 eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) -> 0 append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) -> 0 } Solving took 6.626337 seconds. Yes: |_ name: None append -> [ append : { _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(nil, cons(x_1_0, x_1_1)) <= _r_3(x_1_0) _r_2(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1)) <= _r_2(x_0_1, x_1_1) _r_2(nil, cons(x_1_0, x_1_1)) <= _r_4(x_1_0) _r_3(a) <= True _r_4(b) <= True append(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_0_1, x_2_1) /\ _r_3(x_1_0) append(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_2(x_0_1, x_2_1) /\ _r_4(x_1_0) append(cons(x_0_0, x_0_1), nil, cons(x_2_0, x_2_1)) <= True append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_3(x_1_0) /\ _r_3(x_2_0) append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_4(x_1_0) /\ _r_4(x_2_0) append(nil, nil, nil) <= True } ] -- Equality automata are defined for: {elt, eltlist} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.006427 s (model generation: 0.006384, model checking: 0.000043): Clauses: { append(nil, l2, l2) <= True -> 0 eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) -> 0 append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) -> 0 } Accumulated learning constraints: { } Current best model: |_ name: None append -> [ append : { } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: append(nil, l2, l2) <= True : Yes: { l2 -> nil } eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) : No: () append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) : No: () ------------------------------------------- Step 1, which took 0.006015 s (model generation: 0.005975, model checking: 0.000040): Clauses: { append(nil, l2, l2) <= True -> 0 eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) -> 0 append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) -> 0 } Accumulated learning constraints: { append(nil, nil, nil) <= True } Current best model: |_ name: None append -> [ append : { append(nil, nil, nil) <= True } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: append(nil, l2, l2) <= True : Yes: { l2 -> cons(_olb_0, _olb_1) } eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) : No: () append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) : Yes: { _us -> nil ; l2 -> nil ; t1 -> nil } ------------------------------------------- Step 2, which took 0.007695 s (model generation: 0.007644, model checking: 0.000051): Clauses: { append(nil, l2, l2) <= True -> 0 eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) -> 0 append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) -> 0 } Accumulated learning constraints: { append(cons(a, nil), nil, cons(a, nil)) <= True append(nil, cons(a, nil), cons(a, nil)) <= True append(nil, nil, nil) <= True } Current best model: |_ name: None append -> [ append : { append(cons(x_0_0, x_0_1), nil, cons(x_2_0, x_2_1)) <= True append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True append(nil, nil, nil) <= True } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: append(nil, l2, l2) <= True : No: () eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) : Yes: { _at -> cons(_wlb_0, _wlb_1) ; i -> b ; j -> a ; l1 -> nil } append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) : Yes: { _us -> cons(_amb_0, _amb_1) ; l2 -> cons(_bmb_0, _bmb_1) ; t1 -> nil } ------------------------------------------- Step 3, which took 0.018011 s (model generation: 0.017927, model checking: 0.000084): Clauses: { append(nil, l2, l2) <= True -> 0 eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) -> 0 append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) -> 0 } Accumulated learning constraints: { append(cons(a, nil), cons(a, nil), cons(a, cons(a, nil))) <= True append(cons(a, nil), nil, cons(a, nil)) <= True append(nil, cons(a, nil), cons(a, nil)) <= True append(nil, nil, nil) <= True False <= append(nil, cons(b, nil), cons(a, nil)) } Current best model: |_ name: None append -> [ append : { _r_1(a) <= True append(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True append(cons(x_0_0, x_0_1), nil, cons(x_2_0, x_2_1)) <= True append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_1_0) append(nil, nil, nil) <= True } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: append(nil, l2, l2) <= True : Yes: { l2 -> cons(b, _dmb_1) } eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) : Yes: { _at -> cons(_imb_0, _imb_1) ; i -> b ; j -> a ; l1 -> cons(_lmb_0, _lmb_1) } append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) : No: () ------------------------------------------- Step 4, which took 0.018312 s (model generation: 0.018169, model checking: 0.000143): Clauses: { append(nil, l2, l2) <= True -> 0 eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) -> 0 append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) -> 0 } Accumulated learning constraints: { append(cons(a, nil), cons(a, nil), cons(a, cons(a, nil))) <= True append(cons(a, nil), nil, cons(a, nil)) <= True append(nil, cons(a, nil), cons(a, nil)) <= True append(nil, cons(b, nil), cons(b, nil)) <= True append(nil, nil, nil) <= True False <= append(cons(a, nil), cons(a, nil), cons(a, nil)) /\ append(cons(a, nil), cons(b, nil), cons(a, nil)) False <= append(nil, cons(b, nil), cons(a, nil)) } Current best model: |_ name: None append -> [ append : { _r_1(a, a) <= True _r_1(b, b) <= True append(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_1_0, x_2_0) append(cons(x_0_0, x_0_1), nil, cons(x_2_0, x_2_1)) <= True append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_1_0, x_2_0) append(nil, nil, nil) <= True } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: append(nil, l2, l2) <= True : No: () eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) : No: () append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) : Yes: { _us -> cons(b, _pnb_1) ; h1 -> a ; l2 -> cons(b, _qnb_1) ; t1 -> nil } ------------------------------------------- Step 5, which took 0.049099 s (model generation: 0.048944, model checking: 0.000155): Clauses: { append(nil, l2, l2) <= True -> 0 eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) -> 0 append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) -> 0 } Accumulated learning constraints: { append(cons(a, nil), cons(a, nil), cons(a, cons(a, nil))) <= True append(cons(a, nil), cons(b, nil), cons(a, cons(b, nil))) <= True append(cons(a, nil), nil, cons(a, nil)) <= True append(nil, cons(a, nil), cons(a, nil)) <= True append(nil, cons(b, nil), cons(b, nil)) <= True append(nil, nil, nil) <= True False <= append(cons(a, nil), cons(a, nil), cons(a, nil)) /\ append(cons(a, nil), cons(b, nil), cons(a, nil)) False <= append(nil, cons(b, nil), cons(a, nil)) } Current best model: |_ name: None append -> [ append : { _r_1(a, a) <= True _r_1(b, b) <= True _r_2(cons(x_0_0, x_0_1)) <= True append(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_2(x_2_1) append(cons(x_0_0, x_0_1), nil, cons(x_2_0, x_2_1)) <= True append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_1_0, x_2_0) append(nil, nil, nil) <= True } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: append(nil, l2, l2) <= True : No: () eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) : Yes: { _at -> cons(_znb_0, cons(_vob_0, _vob_1)) ; i -> a ; j -> b ; l1 -> cons(_cob_0, _cob_1) } append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) : No: () ------------------------------------------- Step 6, which took 0.048859 s (model generation: 0.048604, model checking: 0.000255): Clauses: { append(nil, l2, l2) <= True -> 0 eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) -> 0 append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) -> 0 } Accumulated learning constraints: { append(cons(a, nil), cons(a, nil), cons(a, cons(a, nil))) <= True append(cons(a, nil), cons(b, nil), cons(a, cons(b, nil))) <= True append(cons(a, nil), nil, cons(a, nil)) <= True append(nil, cons(a, nil), cons(a, nil)) <= True append(nil, cons(b, nil), cons(b, nil)) <= True append(nil, nil, nil) <= True False <= append(cons(a, nil), cons(a, nil), cons(a, nil)) /\ append(cons(a, nil), cons(b, nil), cons(a, nil)) False <= append(cons(a, nil), cons(b, nil), cons(a, cons(a, nil))) False <= append(nil, cons(b, nil), cons(a, nil)) } Current best model: |_ name: None append -> [ append : { _r_1(a, cons(x_1_0, x_1_1)) <= True _r_1(a, nil) <= True _r_1(b, cons(x_1_0, x_1_1)) <= _r_2(x_1_0) _r_2(b) <= True append(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_1_0, x_2_1) append(cons(x_0_0, x_0_1), nil, cons(x_2_0, x_2_1)) <= True append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_1_0, x_2_1) append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_2(x_2_0) append(nil, nil, nil) <= True } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: append(nil, l2, l2) <= True : No: () eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) : Yes: { _at -> cons(b, nil) ; i -> b ; j -> a ; l1 -> nil } append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) : Yes: { _us -> cons(a, cons(b, _xqb_1)) ; l2 -> cons(b, _pqb_1) ; t1 -> nil } ------------------------------------------- Step 7, which took 0.156937 s (model generation: 0.156664, model checking: 0.000273): Clauses: { append(nil, l2, l2) <= True -> 0 eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) -> 0 append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) -> 0 } Accumulated learning constraints: { append(cons(a, nil), cons(a, nil), cons(a, cons(a, nil))) <= True append(cons(a, nil), cons(b, nil), cons(a, cons(b, nil))) <= True append(cons(a, nil), nil, cons(a, nil)) <= True append(nil, cons(a, nil), cons(a, nil)) <= True append(nil, cons(b, nil), cons(b, nil)) <= True append(nil, nil, nil) <= True False <= append(cons(a, nil), cons(a, nil), cons(a, nil)) /\ append(cons(a, nil), cons(b, nil), cons(a, nil)) False <= append(cons(a, nil), cons(b, nil), cons(a, cons(a, nil))) False <= append(nil, cons(a, nil), cons(b, nil)) append(cons(a, nil), cons(b, nil), cons(a, cons(a, cons(b, nil)))) <= append(nil, cons(b, nil), cons(a, cons(b, nil))) False <= append(nil, cons(b, nil), cons(a, nil)) } Current best model: |_ name: None append -> [ append : { _r_1(a, a) <= True _r_1(b, b) <= True _r_2(cons(x_0_0, x_0_1)) <= _r_3(x_0_0) _r_3(b) <= True append(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_1_0, x_2_0) append(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_2(x_2_1) append(cons(x_0_0, x_0_1), nil, cons(x_2_0, x_2_1)) <= True append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_1_0, x_2_0) append(nil, nil, nil) <= True } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: append(nil, l2, l2) <= True : No: () eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) : Yes: { _at -> cons(a, cons(b, _jtb_1)) ; i -> b ; j -> a ; l1 -> cons(_bsb_0, _bsb_1) } append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) : Yes: { _us -> cons(a, cons(b, _htb_1)) ; h1 -> a ; l2 -> cons(b, _wsb_1) ; t1 -> cons(_xsb_0, _xsb_1) } ------------------------------------------- Step 8, which took 0.270573 s (model generation: 0.270277, model checking: 0.000296): Clauses: { append(nil, l2, l2) <= True -> 0 eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) -> 0 append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) -> 0 } Accumulated learning constraints: { append(cons(a, cons(a, nil)), cons(b, nil), cons(a, cons(a, cons(b, nil)))) <= True append(cons(a, nil), cons(a, nil), cons(a, cons(a, nil))) <= True append(cons(a, nil), cons(b, nil), cons(a, cons(b, nil))) <= True append(cons(a, nil), nil, cons(a, nil)) <= True append(nil, cons(a, nil), cons(a, nil)) <= True append(nil, cons(b, nil), cons(b, nil)) <= True append(nil, nil, nil) <= True False <= append(cons(a, nil), cons(a, nil), cons(a, cons(b, nil))) False <= append(cons(a, nil), cons(a, nil), cons(a, nil)) /\ append(cons(a, nil), cons(b, nil), cons(a, nil)) False <= append(cons(a, nil), cons(b, nil), cons(a, cons(a, nil))) False <= append(nil, cons(a, nil), cons(b, nil)) append(cons(a, nil), cons(b, nil), cons(a, cons(a, cons(b, nil)))) <= append(nil, cons(b, nil), cons(a, cons(b, nil))) False <= append(nil, cons(b, nil), cons(a, nil)) } Current best model: |_ name: None append -> [ append : { _r_1(cons(x_0_0, x_0_1), b, cons(x_2_0, x_2_1)) <= True _r_1(nil, a, cons(x_2_0, x_2_1)) <= _r_3(x_2_0) _r_1(nil, b, cons(x_2_0, x_2_1)) <= _r_2(x_2_0) _r_2(b) <= True _r_3(a) <= True append(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_0_1, x_1_0, x_2_1) append(cons(x_0_0, x_0_1), nil, cons(x_2_0, x_2_1)) <= True append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_2(x_1_0) /\ _r_2(x_2_0) append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_3(x_1_0) /\ _r_3(x_2_0) append(nil, nil, nil) <= True } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: append(nil, l2, l2) <= True : No: () eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) : No: () append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) : Yes: { _us -> cons(_dvb_0, cons(a, _pvb_1)) ; l2 -> cons(a, _evb_1) ; t1 -> cons(_fvb_0, nil) } ------------------------------------------- Step 9, which took 0.377238 s (model generation: 0.376936, model checking: 0.000302): Clauses: { append(nil, l2, l2) <= True -> 0 eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) -> 0 append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) -> 0 } Accumulated learning constraints: { append(cons(a, cons(a, nil)), cons(a, nil), cons(a, cons(a, cons(a, nil)))) <= True append(cons(a, cons(a, nil)), cons(b, nil), cons(a, cons(a, cons(b, nil)))) <= True append(cons(a, nil), cons(a, nil), cons(a, cons(a, nil))) <= True append(cons(a, nil), cons(b, nil), cons(a, cons(b, nil))) <= True append(cons(a, nil), nil, cons(a, nil)) <= True append(nil, cons(a, nil), cons(a, nil)) <= True append(nil, cons(b, nil), cons(b, nil)) <= True append(nil, nil, nil) <= True False <= append(cons(a, nil), cons(a, nil), cons(a, cons(b, nil))) False <= append(cons(a, nil), cons(a, nil), cons(a, nil)) /\ append(cons(a, nil), cons(b, nil), cons(a, nil)) False <= append(cons(a, nil), cons(b, nil), cons(a, cons(a, nil))) False <= append(nil, cons(a, nil), cons(b, nil)) append(cons(a, nil), cons(b, nil), cons(a, cons(a, cons(b, nil)))) <= append(nil, cons(b, nil), cons(a, cons(b, nil))) False <= append(nil, cons(b, nil), cons(a, nil)) } Current best model: |_ name: None append -> [ append : { _r_1(cons(x_0_0, x_0_1), a, cons(x_2_0, x_2_1)) <= True _r_1(cons(x_0_0, x_0_1), b, cons(x_2_0, x_2_1)) <= True _r_1(nil, a, cons(x_2_0, x_2_1)) <= _r_2(x_2_0) _r_1(nil, b, cons(x_2_0, x_2_1)) <= _r_3(x_2_0) _r_2(a) <= True _r_3(b) <= True append(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_0_1, x_1_0, x_2_1) append(cons(x_0_0, x_0_1), nil, cons(x_2_0, x_2_1)) <= True append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_2(x_1_0) /\ _r_2(x_2_0) append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_3(x_1_0) /\ _r_3(x_2_0) append(nil, nil, nil) <= True } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: append(nil, l2, l2) <= True : No: () eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) : Yes: { _at -> cons(_xvb_0, cons(_byb_0, _byb_1)) ; i -> a ; j -> b ; l1 -> cons(_awb_0, cons(_ayb_0, _ayb_1)) } append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) : No: () ------------------------------------------- Step 10, which took 0.442464 s (model generation: 0.441227, model checking: 0.001237): Clauses: { append(nil, l2, l2) <= True -> 0 eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) -> 0 append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) -> 0 } Accumulated learning constraints: { append(cons(a, cons(a, nil)), cons(a, nil), cons(a, cons(a, cons(a, nil)))) <= True append(cons(a, cons(a, nil)), cons(b, nil), cons(a, cons(a, cons(b, nil)))) <= True append(cons(a, nil), cons(a, nil), cons(a, cons(a, nil))) <= True append(cons(a, nil), cons(b, nil), cons(a, cons(b, nil))) <= True append(cons(a, nil), nil, cons(a, nil)) <= True append(nil, cons(a, nil), cons(a, nil)) <= True append(nil, cons(b, nil), cons(b, nil)) <= True append(nil, nil, nil) <= True False <= append(cons(a, cons(a, nil)), cons(a, nil), cons(a, cons(a, nil))) /\ append(cons(a, cons(a, nil)), cons(b, nil), cons(a, cons(a, nil))) False <= append(cons(a, nil), cons(a, nil), cons(a, cons(b, nil))) False <= append(cons(a, nil), cons(a, nil), cons(a, nil)) /\ append(cons(a, nil), cons(b, nil), cons(a, nil)) False <= append(cons(a, nil), cons(b, nil), cons(a, cons(a, nil))) False <= append(nil, cons(a, nil), cons(b, nil)) append(cons(a, nil), cons(b, nil), cons(a, cons(a, cons(b, nil)))) <= append(nil, cons(b, nil), cons(a, cons(b, nil))) False <= append(nil, cons(b, nil), cons(a, nil)) } Current best model: |_ name: None append -> [ append : { _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(nil, cons(x_1_0, x_1_1)) <= _r_2(x_1_0) _r_2(a) <= True _r_3(b) <= True append(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_0_1, x_2_1) /\ _r_2(x_1_0) append(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_3(x_1_0) /\ append(x_0_1, x_1_1, x_2_1) append(cons(x_0_0, x_0_1), nil, cons(x_2_0, x_2_1)) <= True append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_2(x_1_0) /\ _r_2(x_2_0) append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_3(x_1_0) /\ _r_3(x_2_0) append(nil, nil, cons(x_2_0, x_2_1)) <= _r_3(x_2_0) append(nil, nil, nil) <= True } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: append(nil, l2, l2) <= True : No: () eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) : Yes: { _at -> cons(_qyb_0, cons(_egc_0, cons(a, _tcc_1))) ; i -> a ; j -> b ; l1 -> cons(_tyb_0, cons(_dgc_0, nil)) } append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) : Yes: { _us -> cons(b, _ncc_1) ; l2 -> cons(b, cons(a, _yfc_1)) ; t1 -> nil } ------------------------------------------- Step 11, which took 0.579645 s (model generation: 0.578329, model checking: 0.001316): Clauses: { append(nil, l2, l2) <= True -> 0 eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) -> 0 append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) -> 0 } Accumulated learning constraints: { append(cons(a, cons(a, nil)), cons(a, nil), cons(a, cons(a, cons(a, nil)))) <= True append(cons(a, cons(a, nil)), cons(b, nil), cons(a, cons(a, cons(b, nil)))) <= True append(cons(a, nil), cons(a, nil), cons(a, cons(a, nil))) <= True append(cons(a, nil), cons(b, nil), cons(a, cons(b, nil))) <= True append(cons(a, nil), nil, cons(a, nil)) <= True append(nil, cons(a, nil), cons(a, nil)) <= True append(nil, cons(b, nil), cons(b, nil)) <= True append(nil, nil, nil) <= True False <= append(cons(a, cons(a, nil)), cons(a, nil), cons(a, cons(a, nil))) /\ append(cons(a, cons(a, nil)), cons(b, nil), cons(a, cons(a, nil))) False <= append(cons(a, cons(a, nil)), cons(b, nil), cons(a, cons(a, cons(a, nil)))) False <= append(cons(a, nil), cons(a, nil), cons(a, cons(b, nil))) False <= append(cons(a, nil), cons(a, nil), cons(a, nil)) /\ append(cons(a, nil), cons(b, nil), cons(a, nil)) False <= append(cons(a, nil), cons(b, nil), cons(a, cons(a, nil))) False <= append(nil, cons(a, nil), cons(b, nil)) append(cons(a, nil), cons(b, cons(a, nil)), cons(a, cons(b, nil))) <= append(nil, cons(b, cons(a, nil)), cons(b, nil)) append(cons(a, nil), cons(b, nil), cons(a, cons(a, cons(b, nil)))) <= append(nil, cons(b, nil), cons(a, cons(b, nil))) False <= append(nil, cons(b, nil), cons(a, nil)) } Current best model: |_ name: None append -> [ append : { _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(nil, cons(x_1_0, x_1_1)) <= _r_2(x_1_0) _r_2(b) <= True _r_3(a) <= True append(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_0_1, x_2_1) /\ _r_2(x_1_0) append(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_3(x_1_0) /\ append(x_0_1, x_1_1, x_2_1) append(cons(x_0_0, x_0_1), nil, cons(x_2_0, x_2_1)) <= True append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_2(x_1_0) /\ _r_2(x_2_0) append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_3(x_1_0) /\ _r_3(x_2_0) append(nil, nil, cons(x_2_0, x_2_1)) <= _r_3(x_2_0) append(nil, nil, nil) <= True } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: append(nil, l2, l2) <= True : No: () eq_elt(i, j) <= append(l1, cons(i, nil), _at) /\ append(l1, cons(j, nil), _at) : Yes: { _at -> cons(_ojc_0, cons(_uqc_0, cons(b, _jnc_1))) ; i -> a ; j -> b ; l1 -> cons(_rjc_0, cons(_tqc_0, nil)) } append(cons(h1, t1), l2, cons(h1, _us)) <= append(t1, l2, _us) : Yes: { _us -> cons(a, _dnc_1) ; l2 -> cons(a, cons(b, _oqc_1)) ; t1 -> nil } Total time: 6.626337 Learner time: 1.977080 Teacher time: 0.004195 Reasons for stopping: Yes: |_ name: None append -> [ append : { _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(nil, cons(x_1_0, x_1_1)) <= _r_3(x_1_0) _r_2(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1)) <= _r_2(x_0_1, x_1_1) _r_2(nil, cons(x_1_0, x_1_1)) <= _r_4(x_1_0) _r_3(a) <= True _r_4(b) <= True append(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_1(x_0_1, x_2_1) /\ _r_3(x_1_0) append(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_2(x_0_1, x_2_1) /\ _r_4(x_1_0) append(cons(x_0_0, x_0_1), nil, cons(x_2_0, x_2_1)) <= True append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_3(x_1_0) /\ _r_3(x_2_0) append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= _r_4(x_1_0) /\ _r_4(x_2_0) append(nil, nil, nil) <= True } ] -- Equality automata are defined for: {elt, eltlist} _|