Solving ../../benchmarks/smtlib/true/plus_succ_not_zero.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: { nat -> {s, z} } definition: { (plus, F: { plus(n, z, n) <= True plus(n, s(mm), s(_me)) <= plus(n, mm, _me) } eq_nat(_pe, _qe) <= plus(_ne, _oe, _pe) /\ plus(_ne, _oe, _qe) ) (not_zero, P: { not_zero(s(nn)) <= True False <= not_zero(z) } ) } properties: { not_zero(_re) <= plus(s(n), m, _re) } over-approximation: {plus} under-approximation: {not_zero} Clause system for inference is: { plus(n, z, n) <= True -> 0 False <= not_zero(z) -> 0 plus(n, s(mm), s(_me)) <= plus(n, mm, _me) -> 0 not_zero(_re) <= plus(s(n), m, _re) -> 0 } Solving took 0.049796 seconds. Yes: |_ name: None not_zero -> [ not_zero : { not_zero(s(x_0_0)) <= True } ] ; plus -> [ plus : { plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= True plus(s(x_0_0), z, s(x_2_0)) <= True plus(z, s(x_1_0), s(x_2_0)) <= True plus(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.005800 s (model generation: 0.005771, model checking: 0.000029): Clauses: { plus(n, z, n) <= True -> 0 False <= not_zero(z) -> 0 plus(n, s(mm), s(_me)) <= plus(n, mm, _me) -> 0 not_zero(_re) <= plus(s(n), m, _re) -> 0 } Accumulated learning constraints: { } Current best model: |_ name: None not_zero -> [ not_zero : { } ] ; plus -> [ plus : { } ] -- Equality automata are defined for: {nat} _| Answer of teacher: plus(n, z, n) <= True : Yes: { n -> z } False <= not_zero(z) : No: () plus(n, s(mm), s(_me)) <= plus(n, mm, _me) : No: () not_zero(_re) <= plus(s(n), m, _re) : No: () ------------------------------------------- Step 1, which took 0.007113 s (model generation: 0.007060, model checking: 0.000053): Clauses: { plus(n, z, n) <= True -> 0 False <= not_zero(z) -> 0 plus(n, s(mm), s(_me)) <= plus(n, mm, _me) -> 0 not_zero(_re) <= plus(s(n), m, _re) -> 0 } Accumulated learning constraints: { plus(z, z, z) <= True } Current best model: |_ name: None not_zero -> [ not_zero : { } ] ; plus -> [ plus : { plus(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| Answer of teacher: plus(n, z, n) <= True : Yes: { n -> s(_dxsba_0) } False <= not_zero(z) : No: () plus(n, s(mm), s(_me)) <= plus(n, mm, _me) : Yes: { _me -> z ; mm -> z ; n -> z } not_zero(_re) <= plus(s(n), m, _re) : No: () ------------------------------------------- Step 2, which took 0.015884 s (model generation: 0.015766, model checking: 0.000118): Clauses: { plus(n, z, n) <= True -> 0 False <= not_zero(z) -> 0 plus(n, s(mm), s(_me)) <= plus(n, mm, _me) -> 0 not_zero(_re) <= plus(s(n), m, _re) -> 0 } Accumulated learning constraints: { plus(s(z), z, s(z)) <= True plus(z, s(z), s(z)) <= True plus(z, z, z) <= True } Current best model: |_ name: None not_zero -> [ not_zero : { } ] ; plus -> [ plus : { plus(s(x_0_0), z, s(x_2_0)) <= True plus(z, s(x_1_0), s(x_2_0)) <= True plus(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| Answer of teacher: plus(n, z, n) <= True : No: () False <= not_zero(z) : No: () plus(n, s(mm), s(_me)) <= plus(n, mm, _me) : Yes: { _me -> s(_hxsba_0) ; mm -> z ; n -> s(_jxsba_0) } not_zero(_re) <= plus(s(n), m, _re) : Yes: { _re -> s(_kxsba_0) ; m -> z } Total time: 0.049796 Learner time: 0.028597 Teacher time: 0.000200 Reasons for stopping: Yes: |_ name: None not_zero -> [ not_zero : { not_zero(s(x_0_0)) <= True } ] ; plus -> [ plus : { plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= True plus(s(x_0_0), z, s(x_2_0)) <= True plus(z, s(x_1_0), s(x_2_0)) <= True plus(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _|