Solving ../../benchmarks/smtlib/true/member_equal_ab.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: { (memberl, P: { memberl(h1, cons(h1, t1)) <= True eq_elt(e, h1) \/ memberl(e, cons(h1, t1)) <= memberl(e, t1) eq_elt(e, h1) \/ memberl(e, t1) <= memberl(e, cons(h1, t1)) False <= memberl(e, nil) } ) } properties: { memberl(i, l2) <= memberl(i, l2) } over-approximation: {} under-approximation: {} Clause system for inference is: { memberl(h1, cons(h1, t1)) <= True -> 0 eq_elt(e, h1) \/ memberl(e, cons(h1, t1)) <= memberl(e, t1) -> 0 eq_elt(e, h1) \/ memberl(e, t1) <= memberl(e, cons(h1, t1)) -> 0 False <= memberl(e, nil) -> 0 memberl(i, l2) <= memberl(i, l2) -> 0 } Solving took 0.171609 seconds. Yes: |_ name: None memberl -> [ memberl : { _r_1(cons(x_0_0, x_0_1)) <= _r_1(x_0_1) _r_1(cons(x_0_0, x_0_1)) <= _r_3(x_0_0) _r_2(cons(x_0_0, x_0_1)) <= _r_2(x_0_1) _r_2(cons(x_0_0, x_0_1)) <= _r_4(x_0_0) _r_3(b) <= True _r_4(a) <= True memberl(a, cons(x_1_0, x_1_1)) <= _r_2(x_1_1) memberl(a, cons(x_1_0, x_1_1)) <= _r_4(x_1_0) memberl(b, cons(x_1_0, x_1_1)) <= _r_1(x_1_1) memberl(b, cons(x_1_0, x_1_1)) <= _r_3(x_1_0) } ] -- Equality automata are defined for: {elt, eltlist} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.005927 s (model generation: 0.005879, model checking: 0.000048): Clauses: { memberl(h1, cons(h1, t1)) <= True -> 0 eq_elt(e, h1) \/ memberl(e, cons(h1, t1)) <= memberl(e, t1) -> 0 eq_elt(e, h1) \/ memberl(e, t1) <= memberl(e, cons(h1, t1)) -> 0 False <= memberl(e, nil) -> 0 memberl(i, l2) <= memberl(i, l2) -> 0 } Accumulated learning constraints: { } Current best model: |_ name: None memberl -> [ memberl : { } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: memberl(h1, cons(h1, t1)) <= True : Yes: { h1 -> b } eq_elt(e, h1) \/ memberl(e, cons(h1, t1)) <= memberl(e, t1) : No: () eq_elt(e, h1) \/ memberl(e, t1) <= memberl(e, cons(h1, t1)) : No: () False <= memberl(e, nil) : No: () memberl(i, l2) <= memberl(i, l2) : No: () ------------------------------------------- Step 1, which took 0.006475 s (model generation: 0.006412, model checking: 0.000063): Clauses: { memberl(h1, cons(h1, t1)) <= True -> 0 eq_elt(e, h1) \/ memberl(e, cons(h1, t1)) <= memberl(e, t1) -> 0 eq_elt(e, h1) \/ memberl(e, t1) <= memberl(e, cons(h1, t1)) -> 0 False <= memberl(e, nil) -> 0 memberl(i, l2) <= memberl(i, l2) -> 0 } Accumulated learning constraints: { memberl(b, cons(b, nil)) <= True } Current best model: |_ name: None memberl -> [ memberl : { memberl(b, cons(x_1_0, x_1_1)) <= True } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: memberl(h1, cons(h1, t1)) <= True : Yes: { h1 -> a } eq_elt(e, h1) \/ memberl(e, cons(h1, t1)) <= memberl(e, t1) : No: () eq_elt(e, h1) \/ memberl(e, t1) <= memberl(e, cons(h1, t1)) : Yes: { e -> b ; h1 -> a ; t1 -> nil } False <= memberl(e, nil) : No: () memberl(i, l2) <= memberl(i, l2) : No: () ------------------------------------------- Step 2, which took 0.009390 s (model generation: 0.009337, model checking: 0.000053): Clauses: { memberl(h1, cons(h1, t1)) <= True -> 0 eq_elt(e, h1) \/ memberl(e, cons(h1, t1)) <= memberl(e, t1) -> 0 eq_elt(e, h1) \/ memberl(e, t1) <= memberl(e, cons(h1, t1)) -> 0 False <= memberl(e, nil) -> 0 memberl(i, l2) <= memberl(i, l2) -> 0 } Accumulated learning constraints: { memberl(a, cons(a, nil)) <= True memberl(b, cons(b, nil)) <= True memberl(b, nil) <= memberl(b, cons(a, nil)) } Current best model: |_ name: None memberl -> [ memberl : { memberl(a, cons(x_1_0, x_1_1)) <= True memberl(b, cons(x_1_0, x_1_1)) <= True memberl(b, nil) <= True } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: memberl(h1, cons(h1, t1)) <= True : No: () eq_elt(e, h1) \/ memberl(e, cons(h1, t1)) <= memberl(e, t1) : No: () eq_elt(e, h1) \/ memberl(e, t1) <= memberl(e, cons(h1, t1)) : Yes: { e -> a ; h1 -> b ; t1 -> nil } False <= memberl(e, nil) : Yes: { e -> b } memberl(i, l2) <= memberl(i, l2) : No: () ------------------------------------------- Step 3, which took 0.011431 s (model generation: 0.011339, model checking: 0.000092): Clauses: { memberl(h1, cons(h1, t1)) <= True -> 0 eq_elt(e, h1) \/ memberl(e, cons(h1, t1)) <= memberl(e, t1) -> 0 eq_elt(e, h1) \/ memberl(e, t1) <= memberl(e, cons(h1, t1)) -> 0 False <= memberl(e, nil) -> 0 memberl(i, l2) <= memberl(i, l2) -> 0 } Accumulated learning constraints: { memberl(a, cons(a, nil)) <= True memberl(b, cons(b, nil)) <= True memberl(a, nil) <= memberl(a, cons(b, nil)) False <= memberl(b, cons(a, nil)) False <= memberl(b, nil) } Current best model: |_ name: None memberl -> [ memberl : { _r_1(b) <= True memberl(a, cons(x_1_0, x_1_1)) <= True memberl(a, nil) <= True memberl(b, cons(x_1_0, x_1_1)) <= _r_1(x_1_0) } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: memberl(h1, cons(h1, t1)) <= True : No: () eq_elt(e, h1) \/ memberl(e, cons(h1, t1)) <= memberl(e, t1) : Yes: { e -> b ; h1 -> a ; t1 -> cons(b, _ceey_1) } eq_elt(e, h1) \/ memberl(e, t1) <= memberl(e, cons(h1, t1)) : No: () False <= memberl(e, nil) : Yes: { e -> a } memberl(i, l2) <= memberl(i, l2) : No: () ------------------------------------------- Step 4, which took 0.028666 s (model generation: 0.028327, model checking: 0.000339): Clauses: { memberl(h1, cons(h1, t1)) <= True -> 0 eq_elt(e, h1) \/ memberl(e, cons(h1, t1)) <= memberl(e, t1) -> 0 eq_elt(e, h1) \/ memberl(e, t1) <= memberl(e, cons(h1, t1)) -> 0 False <= memberl(e, nil) -> 0 memberl(i, l2) <= memberl(i, l2) -> 0 } Accumulated learning constraints: { memberl(a, cons(a, nil)) <= True memberl(b, cons(a, cons(b, nil))) <= True memberl(b, cons(b, nil)) <= True False <= memberl(a, cons(b, nil)) False <= memberl(a, nil) False <= memberl(b, cons(a, nil)) False <= memberl(b, nil) } Current best model: |_ name: None memberl -> [ memberl : { _r_1(cons(x_0_0, x_0_1)) <= True _r_2(b) <= True _r_3(a) <= True memberl(a, cons(x_1_0, x_1_1)) <= _r_3(x_1_0) memberl(b, cons(x_1_0, x_1_1)) <= _r_1(x_1_1) memberl(b, cons(x_1_0, x_1_1)) <= _r_2(x_1_0) } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: memberl(h1, cons(h1, t1)) <= True : No: () eq_elt(e, h1) \/ memberl(e, cons(h1, t1)) <= memberl(e, t1) : Yes: { e -> a ; h1 -> b ; t1 -> cons(a, _seey_1) } eq_elt(e, h1) \/ memberl(e, t1) <= memberl(e, cons(h1, t1)) : Yes: { e -> b ; h1 -> a ; t1 -> cons(a, nil) } False <= memberl(e, nil) : No: () memberl(i, l2) <= memberl(i, l2) : No: () ------------------------------------------- Step 5, which took 0.031168 s (model generation: 0.030784, model checking: 0.000384): Clauses: { memberl(h1, cons(h1, t1)) <= True -> 0 eq_elt(e, h1) \/ memberl(e, cons(h1, t1)) <= memberl(e, t1) -> 0 eq_elt(e, h1) \/ memberl(e, t1) <= memberl(e, cons(h1, t1)) -> 0 False <= memberl(e, nil) -> 0 memberl(i, l2) <= memberl(i, l2) -> 0 } Accumulated learning constraints: { memberl(a, cons(a, nil)) <= True memberl(a, cons(b, cons(a, nil))) <= True memberl(b, cons(a, cons(b, nil))) <= True memberl(b, cons(b, nil)) <= True False <= memberl(a, cons(b, nil)) False <= memberl(a, nil) False <= memberl(b, cons(a, cons(a, nil))) False <= memberl(b, cons(a, nil)) False <= memberl(b, nil) } Current best model: |_ name: None memberl -> [ memberl : { _r_1(cons(x_0_0, x_0_1)) <= _r_4(x_0_0) _r_2(cons(x_0_0, x_0_1)) <= True _r_3(a) <= True _r_4(b) <= True memberl(a, cons(x_1_0, x_1_1)) <= _r_2(x_1_1) memberl(a, cons(x_1_0, x_1_1)) <= _r_3(x_1_0) memberl(b, cons(x_1_0, x_1_1)) <= _r_1(x_1_1) memberl(b, cons(x_1_0, x_1_1)) <= _r_4(x_1_0) } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: memberl(h1, cons(h1, t1)) <= True : No: () eq_elt(e, h1) \/ memberl(e, cons(h1, t1)) <= memberl(e, t1) : Yes: { e -> b ; h1 -> a ; t1 -> cons(a, cons(b, _diey_1)) } eq_elt(e, h1) \/ memberl(e, t1) <= memberl(e, cons(h1, t1)) : Yes: { e -> a ; h1 -> b ; t1 -> cons(b, nil) } False <= memberl(e, nil) : No: () memberl(i, l2) <= memberl(i, l2) : No: () ------------------------------------------- Step 6, which took 0.035855 s (model generation: 0.035430, model checking: 0.000425): Clauses: { memberl(h1, cons(h1, t1)) <= True -> 0 eq_elt(e, h1) \/ memberl(e, cons(h1, t1)) <= memberl(e, t1) -> 0 eq_elt(e, h1) \/ memberl(e, t1) <= memberl(e, cons(h1, t1)) -> 0 False <= memberl(e, nil) -> 0 memberl(i, l2) <= memberl(i, l2) -> 0 } Accumulated learning constraints: { memberl(a, cons(a, nil)) <= True memberl(a, cons(b, cons(a, nil))) <= True memberl(b, cons(a, cons(a, cons(b, nil)))) <= True memberl(b, cons(a, cons(b, nil))) <= True memberl(b, cons(b, nil)) <= True False <= memberl(a, cons(b, cons(b, nil))) False <= memberl(a, cons(b, nil)) False <= memberl(a, nil) False <= memberl(b, cons(a, cons(a, nil))) False <= memberl(b, cons(a, nil)) False <= memberl(b, nil) } Current best model: |_ name: None memberl -> [ memberl : { _r_1(cons(x_0_0, x_0_1)) <= _r_4(x_0_0) _r_2(cons(x_0_0, x_0_1)) <= _r_2(x_0_1) _r_2(cons(x_0_0, x_0_1)) <= _r_3(x_0_0) _r_3(b) <= True _r_4(a) <= True memberl(a, cons(x_1_0, x_1_1)) <= _r_1(x_1_1) memberl(a, cons(x_1_0, x_1_1)) <= _r_4(x_1_0) memberl(b, cons(x_1_0, x_1_1)) <= _r_2(x_1_1) memberl(b, cons(x_1_0, x_1_1)) <= _r_3(x_1_0) } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: memberl(h1, cons(h1, t1)) <= True : No: () eq_elt(e, h1) \/ memberl(e, cons(h1, t1)) <= memberl(e, t1) : Yes: { e -> a ; h1 -> b ; t1 -> cons(b, cons(a, _qkey_1)) } eq_elt(e, h1) \/ memberl(e, t1) <= memberl(e, cons(h1, t1)) : No: () False <= memberl(e, nil) : No: () memberl(i, l2) <= memberl(i, l2) : No: () Total time: 0.171609 Learner time: 0.127507 Teacher time: 0.001405 Reasons for stopping: Yes: |_ name: None memberl -> [ memberl : { _r_1(cons(x_0_0, x_0_1)) <= _r_1(x_0_1) _r_1(cons(x_0_0, x_0_1)) <= _r_3(x_0_0) _r_2(cons(x_0_0, x_0_1)) <= _r_2(x_0_1) _r_2(cons(x_0_0, x_0_1)) <= _r_4(x_0_0) _r_3(b) <= True _r_4(a) <= True memberl(a, cons(x_1_0, x_1_1)) <= _r_2(x_1_1) memberl(a, cons(x_1_0, x_1_1)) <= _r_4(x_1_0) memberl(b, cons(x_1_0, x_1_1)) <= _r_1(x_1_1) memberl(b, cons(x_1_0, x_1_1)) <= _r_3(x_1_0) } ] -- Equality automata are defined for: {elt, eltlist} _|