Solving ../../benchmarks/smtlib/false/plus_le.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(_ikb)) <= plus(n, mm, _ikb) } eq_nat(_lkb, _mkb) <= plus(_jkb, _kkb, _lkb) /\ plus(_jkb, _kkb, _mkb) ) (le, P: { le(z, s(nn2)) <= True le(s(nn1), s(nn2)) <= le(nn1, nn2) le(nn1, nn2) <= le(s(nn1), s(nn2)) False <= le(s(nn1), z) False <= le(z, z) } ) } properties: { le(n, _nkb) <= plus(n, m, _nkb) } over-approximation: {plus} under-approximation: {le} Clause system for inference is: { plus(n, z, n) <= True -> 0 le(s(nn1), s(nn2)) <= le(nn1, nn2) -> 0 le(nn1, nn2) <= le(s(nn1), s(nn2)) -> 0 False <= le(s(nn1), z) -> 0 False <= le(z, z) -> 0 le(n, _nkb) <= plus(n, m, _nkb) -> 0 plus(n, s(mm), s(_ikb)) <= plus(n, mm, _ikb) -> 0 } Solving took 0.038301 seconds. No: Contradictory set of ground constraints: { le(z, s(z)) <= True le(z, z) <= True plus(s(z), s(z), s(s(z))) <= True plus(s(z), z, s(z)) <= True plus(z, s(z), s(z)) <= True plus(z, z, z) <= True False <= le(z, z) } ------------------- STEPS: ------------------------------------------- Step 0, which took 0.005614 s (model generation: 0.005558, model checking: 0.000056): Clauses: { plus(n, z, n) <= True -> 0 le(s(nn1), s(nn2)) <= le(nn1, nn2) -> 0 le(nn1, nn2) <= le(s(nn1), s(nn2)) -> 0 False <= le(s(nn1), z) -> 0 False <= le(z, z) -> 0 le(n, _nkb) <= plus(n, m, _nkb) -> 0 plus(n, s(mm), s(_ikb)) <= plus(n, mm, _ikb) -> 0 } Accumulated learning constraints: { } Current best model: |_ name: None le -> [ le : { } ] ; plus -> [ plus : { } ] -- Equality automata are defined for: {nat} _| Answer of teacher: plus(n, z, n) <= True : Yes: { n -> z } le(s(nn1), s(nn2)) <= le(nn1, nn2) : No: () le(nn1, nn2) <= le(s(nn1), s(nn2)) : No: () False <= le(s(nn1), z) : No: () False <= le(z, z) : No: () le(n, _nkb) <= plus(n, m, _nkb) : No: () plus(n, s(mm), s(_ikb)) <= plus(n, mm, _ikb) : No: () ------------------------------------------- Step 1, which took 0.005986 s (model generation: 0.005904, model checking: 0.000082): Clauses: { plus(n, z, n) <= True -> 0 le(s(nn1), s(nn2)) <= le(nn1, nn2) -> 0 le(nn1, nn2) <= le(s(nn1), s(nn2)) -> 0 False <= le(s(nn1), z) -> 0 False <= le(z, z) -> 0 le(n, _nkb) <= plus(n, m, _nkb) -> 0 plus(n, s(mm), s(_ikb)) <= plus(n, mm, _ikb) -> 0 } Accumulated learning constraints: { plus(z, z, z) <= True } Current best model: |_ name: None le -> [ le : { } ] ; plus -> [ plus : { plus(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| Answer of teacher: plus(n, z, n) <= True : Yes: { n -> s(_mfpqw_0) } le(s(nn1), s(nn2)) <= le(nn1, nn2) : No: () le(nn1, nn2) <= le(s(nn1), s(nn2)) : No: () False <= le(s(nn1), z) : No: () False <= le(z, z) : No: () le(n, _nkb) <= plus(n, m, _nkb) : Yes: { _nkb -> z ; m -> z ; n -> z } plus(n, s(mm), s(_ikb)) <= plus(n, mm, _ikb) : Yes: { _ikb -> z ; mm -> z ; n -> z } ------------------------------------------- Step 2, which took 0.007031 s (model generation: 0.006959, model checking: 0.000072): Clauses: { plus(n, z, n) <= True -> 0 le(s(nn1), s(nn2)) <= le(nn1, nn2) -> 0 le(nn1, nn2) <= le(s(nn1), s(nn2)) -> 0 False <= le(s(nn1), z) -> 0 False <= le(z, z) -> 0 le(n, _nkb) <= plus(n, m, _nkb) -> 0 plus(n, s(mm), s(_ikb)) <= plus(n, mm, _ikb) -> 0 } Accumulated learning constraints: { le(z, z) <= True plus(s(z), z, s(z)) <= True plus(z, s(z), s(z)) <= True plus(z, z, z) <= True } Current best model: |_ name: None le -> [ le : { le(z, z) <= True } ] ; 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: () le(s(nn1), s(nn2)) <= le(nn1, nn2) : Yes: { nn1 -> z ; nn2 -> z } le(nn1, nn2) <= le(s(nn1), s(nn2)) : No: () False <= le(s(nn1), z) : No: () False <= le(z, z) : Yes: { } le(n, _nkb) <= plus(n, m, _nkb) : Yes: { _nkb -> s(_yfpqw_0) ; m -> s(_zfpqw_0) ; n -> z } plus(n, s(mm), s(_ikb)) <= plus(n, mm, _ikb) : Yes: { _ikb -> s(_bgpqw_0) ; mm -> z ; n -> s(_dgpqw_0) } Total time: 0.038301 Learner time: 0.018421 Teacher time: 0.000210 Reasons for stopping: No: Contradictory set of ground constraints: { le(z, s(z)) <= True le(z, z) <= True plus(s(z), s(z), s(s(z))) <= True plus(s(z), z, s(z)) <= True plus(z, s(z), s(z)) <= True plus(z, z, z) <= True False <= le(z, z) }