Solving ../../benchmarks/smtlib/true/plus_succ_le_2.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(_wb)) <= plus(n, mm, _wb) } eq_nat(_zb, _ac) <= plus(_xb, _yb, _ac) /\ plus(_xb, _yb, _zb) ) (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, _bc) <= plus(n, s(m), _bc) } 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 plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) -> 0 le(n, _bc) <= plus(n, s(m), _bc) -> 0 } Solving took 0.220757 seconds. Yes: |_ name: None le -> [ le : { le(s(x_0_0), s(x_1_0)) <= le(x_0_0, x_1_0) le(z, s(x_1_0)) <= True } ] ; plus -> [ plus : { _r_1(s(x_0_0), s(x_1_0)) <= _r_1(x_0_0, x_1_0) _r_1(z, z) <= True le(s(x_0_0), s(x_1_0)) <= le(x_0_0, x_1_0) le(z, s(x_1_0)) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= le(x_0_0, x_2_0) plus(s(x_0_0), z, s(x_2_0)) <= _r_1(x_0_0, x_2_0) 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.015122 s (model generation: 0.015002, model checking: 0.000120): 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 plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) -> 0 le(n, _bc) <= plus(n, s(m), _bc) -> 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: () plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) : No: () le(n, _bc) <= plus(n, s(m), _bc) : No: () ------------------------------------------- Step 1, which took 0.008091 s (model generation: 0.008041, model checking: 0.000050): 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 plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) -> 0 le(n, _bc) <= plus(n, s(m), _bc) -> 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(_pnsba_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: () plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) : Yes: { _wb -> z ; mm -> z ; n -> z } le(n, _bc) <= plus(n, s(m), _bc) : No: () ------------------------------------------- Step 2, which took 0.006630 s (model generation: 0.006571, model checking: 0.000059): 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 plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) -> 0 le(n, _bc) <= plus(n, s(m), _bc) -> 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 le -> [ le : { } ] ; 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) : No: () le(nn1, nn2) <= le(s(nn1), s(nn2)) : No: () False <= le(s(nn1), z) : No: () False <= le(z, z) : No: () plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) : Yes: { _wb -> s(_tnsba_0) ; mm -> z ; n -> s(_vnsba_0) } le(n, _bc) <= plus(n, s(m), _bc) : Yes: { _bc -> s(_wnsba_0) ; n -> z } ------------------------------------------- Step 3, which took 0.017509 s (model generation: 0.017398, model checking: 0.000111): 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 plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) -> 0 le(n, _bc) <= plus(n, s(m), _bc) -> 0 } Accumulated learning constraints: { le(z, s(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 } Current best model: |_ name: None le -> [ le : { le(z, s(x_1_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} _| Answer of teacher: plus(n, z, n) <= True : No: () le(s(nn1), s(nn2)) <= le(nn1, nn2) : Yes: { nn1 -> z ; nn2 -> s(_znsba_0) } le(nn1, nn2) <= le(s(nn1), s(nn2)) : No: () False <= le(s(nn1), z) : No: () False <= le(z, z) : No: () plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) : No: () le(n, _bc) <= plus(n, s(m), _bc) : Yes: { _bc -> s(_aosba_0) ; n -> s(_bosba_0) } ------------------------------------------- Step 4, which took 0.012867 s (model generation: 0.012819, model checking: 0.000048): 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 plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) -> 0 le(n, _bc) <= plus(n, s(m), _bc) -> 0 } Accumulated learning constraints: { le(s(z), s(s(z))) <= True le(z, s(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 le(s(z), s(z)) <= plus(s(z), s(z), s(z)) } Current best model: |_ name: None le -> [ le : { le(s(x_0_0), s(x_1_0)) <= True le(z, s(x_1_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} _| Answer of teacher: plus(n, z, n) <= True : No: () le(s(nn1), s(nn2)) <= le(nn1, nn2) : No: () le(nn1, nn2) <= le(s(nn1), s(nn2)) : Yes: { nn1 -> z ; nn2 -> z } False <= le(s(nn1), z) : No: () False <= le(z, z) : No: () plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) : No: () le(n, _bc) <= plus(n, s(m), _bc) : No: () ------------------------------------------- Step 5, which took 0.010258 s (model generation: 0.010173, model checking: 0.000085): 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 plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) -> 0 le(n, _bc) <= plus(n, s(m), _bc) -> 0 } Accumulated learning constraints: { le(s(z), s(s(z))) <= True le(z, s(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 le(z, z) <= le(s(z), s(z)) le(s(z), s(z)) <= plus(s(z), s(z), s(z)) } Current best model: |_ name: None le -> [ le : { le(s(x_0_0), s(x_1_0)) <= True le(z, s(x_1_0)) <= True le(z, z) <= 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} _| Answer of teacher: plus(n, z, n) <= True : No: () le(s(nn1), s(nn2)) <= le(nn1, nn2) : No: () le(nn1, nn2) <= le(s(nn1), s(nn2)) : Yes: { nn1 -> s(_gosba_0) ; nn2 -> z } False <= le(s(nn1), z) : No: () False <= le(z, z) : Yes: { } plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) : No: () le(n, _bc) <= plus(n, s(m), _bc) : No: () ------------------------------------------- Step 6, which took 0.017195 s (model generation: 0.016988, model checking: 0.000207): 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 plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) -> 0 le(n, _bc) <= plus(n, s(m), _bc) -> 0 } Accumulated learning constraints: { le(s(z), s(s(z))) <= True le(z, s(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 le(s(z), z) <= le(s(s(z)), s(z)) False <= le(s(z), s(z)) False <= le(z, z) False <= plus(s(z), s(z), s(z)) } Current best model: |_ name: None le -> [ le : { le(s(x_0_0), s(x_1_0)) <= le(x_0_0, x_1_0) le(s(x_0_0), z) <= True le(z, s(x_1_0)) <= True } ] ; plus -> [ plus : { le(s(x_0_0), s(x_1_0)) <= le(x_0_0, x_1_0) le(s(x_0_0), z) <= True le(z, s(x_1_0)) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= le(x_1_0, x_2_0) 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) : No: () le(nn1, nn2) <= le(s(nn1), s(nn2)) : No: () False <= le(s(nn1), z) : Yes: { } False <= le(z, z) : No: () plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) : No: () le(n, _bc) <= plus(n, s(m), _bc) : Yes: { _bc -> s(z) ; m -> s(_dpsba_0) ; n -> s(z) } ------------------------------------------- Step 7, which took 0.011353 s (model generation: 0.011188, model checking: 0.000165): 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 plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) -> 0 le(n, _bc) <= plus(n, s(m), _bc) -> 0 } Accumulated learning constraints: { le(s(z), s(s(z))) <= True le(z, s(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(s(s(z)), s(z)) False <= le(s(z), s(z)) False <= le(s(z), z) False <= le(z, z) False <= plus(s(z), s(s(z)), s(z)) False <= plus(s(z), s(z), s(z)) } Current best model: |_ name: None le -> [ le : { le(s(x_0_0), s(x_1_0)) <= le(x_0_0, x_1_0) le(z, s(x_1_0)) <= True } ] ; plus -> [ plus : { le(s(x_0_0), s(x_1_0)) <= le(x_0_0, x_1_0) le(z, s(x_1_0)) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= le(x_0_0, x_2_0) 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) : No: () le(nn1, nn2) <= le(s(nn1), s(nn2)) : No: () False <= le(s(nn1), z) : No: () False <= le(z, z) : No: () plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) : Yes: { _wb -> s(z) ; mm -> z ; n -> s(s(z)) } le(n, _bc) <= plus(n, s(m), _bc) : No: () ------------------------------------------- Step 8, which took 0.013997 s (model generation: 0.013826, model checking: 0.000171): 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 plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) -> 0 le(n, _bc) <= plus(n, s(m), _bc) -> 0 } Accumulated learning constraints: { le(s(z), s(s(z))) <= True le(z, s(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(s(s(z)), s(z)) False <= le(s(z), s(z)) False <= le(s(z), z) False <= le(z, z) plus(s(s(z)), s(z), s(s(z))) <= plus(s(s(z)), z, s(z)) False <= plus(s(z), s(s(z)), s(z)) False <= plus(s(z), s(z), s(z)) } Current best model: |_ name: None le -> [ le : { le(s(x_0_0), s(x_1_0)) <= le(x_0_0, x_1_0) le(z, s(x_1_0)) <= True } ] ; plus -> [ plus : { le(s(x_0_0), s(x_1_0)) <= le(x_0_0, x_1_0) le(z, s(x_1_0)) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= le(x_1_0, x_2_0) 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) : No: () le(nn1, nn2) <= le(s(nn1), s(nn2)) : No: () False <= le(s(nn1), z) : No: () False <= le(z, z) : No: () plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) : No: () le(n, _bc) <= plus(n, s(m), _bc) : Yes: { _bc -> s(s(z)) ; m -> z ; n -> s(s(z)) } ------------------------------------------- Step 9, which took 0.020277 s (model generation: 0.020160, model checking: 0.000117): 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 plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) -> 0 le(n, _bc) <= plus(n, s(m), _bc) -> 0 } Accumulated learning constraints: { le(s(z), s(s(z))) <= True le(z, s(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(s(s(z)), s(z)) False <= le(s(z), s(z)) False <= le(s(z), z) False <= le(z, z) le(s(s(z)), s(s(z))) <= plus(s(s(z)), s(z), s(s(z))) plus(s(s(z)), s(z), s(s(z))) <= plus(s(s(z)), z, s(z)) False <= plus(s(z), s(s(z)), s(z)) False <= plus(s(z), s(z), s(z)) } Current best model: |_ name: None le -> [ le : { _r_1(s(x_0_0)) <= True le(s(x_0_0), s(x_1_0)) <= _r_1(x_1_0) le(z, s(x_1_0)) <= True } ] ; plus -> [ plus : { _r_1(s(x_0_0)) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= _r_1(x_2_0) 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) : No: () le(nn1, nn2) <= le(s(nn1), s(nn2)) : Yes: { nn1 -> s(_cssba_0) ; nn2 -> s(z) } False <= le(s(nn1), z) : No: () False <= le(z, z) : No: () plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) : No: () le(n, _bc) <= plus(n, s(m), _bc) : No: () ------------------------------------------- Step 10, which took 0.016121 s (model generation: 0.015932, model checking: 0.000189): 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 plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) -> 0 le(n, _bc) <= plus(n, s(m), _bc) -> 0 } Accumulated learning constraints: { le(s(z), s(s(z))) <= True le(z, s(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(s(s(z)), s(s(z))) False <= le(s(s(z)), s(z)) False <= le(s(z), s(z)) False <= le(s(z), z) False <= le(z, z) False <= plus(s(s(z)), s(z), s(s(z))) False <= plus(s(s(z)), z, s(z)) False <= plus(s(z), s(s(z)), s(z)) False <= plus(s(z), s(z), s(z)) } Current best model: |_ name: None le -> [ le : { le(s(x_0_0), s(x_1_0)) <= le(x_0_0, x_1_0) le(z, s(x_1_0)) <= True } ] ; plus -> [ plus : { _r_1(z, z) <= True le(s(x_0_0), s(x_1_0)) <= le(x_0_0, x_1_0) le(z, s(x_1_0)) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= le(x_0_0, x_2_0) plus(s(x_0_0), z, s(x_2_0)) <= _r_1(x_0_0, x_2_0) 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 : Yes: { n -> s(s(_ktsba_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: () plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) : No: () le(n, _bc) <= plus(n, s(m), _bc) : No: () ------------------------------------------- Step 11, which took 0.020055 s (model generation: 0.019831, model checking: 0.000224): 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 plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) -> 0 le(n, _bc) <= plus(n, s(m), _bc) -> 0 } Accumulated learning constraints: { le(s(z), s(s(z))) <= True le(z, s(z)) <= True plus(s(s(z)), z, s(s(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(s(s(z)), s(s(z))) False <= le(s(s(z)), s(z)) False <= le(s(z), s(z)) False <= le(s(z), z) False <= le(z, z) False <= plus(s(s(z)), s(z), s(s(z))) False <= plus(s(s(z)), z, s(z)) False <= plus(s(z), s(s(z)), s(z)) False <= plus(s(z), s(z), s(z)) } Current best model: |_ name: None le -> [ le : { le(s(x_0_0), s(x_1_0)) <= le(x_0_0, x_1_0) le(z, s(x_1_0)) <= True } ] ; plus -> [ plus : { _r_1(s(x_0_0), s(x_1_0)) <= True _r_1(z, z) <= True le(s(x_0_0), s(x_1_0)) <= le(x_0_0, x_1_0) le(z, s(x_1_0)) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= _r_1(x_0_0, x_1_0) /\ le(x_0_0, x_2_0) plus(s(x_0_0), z, s(x_2_0)) <= _r_1(x_0_0, x_2_0) 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) : No: () le(nn1, nn2) <= le(s(nn1), s(nn2)) : No: () False <= le(s(nn1), z) : No: () False <= le(z, z) : No: () plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) : Yes: { _wb -> s(s(_pusba_0)) ; mm -> z ; n -> s(s(_ousba_0)) } le(n, _bc) <= plus(n, s(m), _bc) : No: () ------------------------------------------- Step 12, which took 0.026327 s (model generation: 0.026146, model checking: 0.000181): 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 plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) -> 0 le(n, _bc) <= plus(n, s(m), _bc) -> 0 } Accumulated learning constraints: { le(s(z), s(s(z))) <= True le(z, s(z)) <= True plus(s(s(z)), s(z), s(s(s(z)))) <= True plus(s(s(z)), z, s(s(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(s(s(z)), s(s(z))) False <= le(s(s(z)), s(z)) False <= le(s(z), s(z)) False <= le(s(z), z) False <= le(z, z) False <= plus(s(s(z)), s(z), s(s(z))) False <= plus(s(s(z)), z, s(z)) False <= plus(s(z), s(s(z)), s(z)) False <= plus(s(z), s(z), s(z)) } Current best model: |_ name: None le -> [ le : { le(s(x_0_0), s(x_1_0)) <= le(x_0_0, x_1_0) le(z, s(x_1_0)) <= True } ] ; plus -> [ plus : { _r_1(s(x_0_0), s(x_1_0)) <= True _r_1(z, z) <= True le(s(x_0_0), s(x_1_0)) <= le(x_0_0, x_1_0) le(z, s(x_1_0)) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= le(x_0_0, x_2_0) plus(s(x_0_0), z, s(x_2_0)) <= _r_1(x_0_0, x_2_0) 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) : No: () le(nn1, nn2) <= le(s(nn1), s(nn2)) : No: () False <= le(s(nn1), z) : No: () False <= le(z, z) : No: () plus(n, s(mm), s(_wb)) <= plus(n, mm, _wb) : Yes: { _wb -> s(s(z)) ; mm -> z ; n -> s(s(s(z))) } le(n, _bc) <= plus(n, s(m), _bc) : No: () Total time: 0.220757 Learner time: 0.194075 Teacher time: 0.001726 Reasons for stopping: Yes: |_ name: None le -> [ le : { le(s(x_0_0), s(x_1_0)) <= le(x_0_0, x_1_0) le(z, s(x_1_0)) <= True } ] ; plus -> [ plus : { _r_1(s(x_0_0), s(x_1_0)) <= _r_1(x_0_0, x_1_0) _r_1(z, z) <= True le(s(x_0_0), s(x_1_0)) <= le(x_0_0, x_1_0) le(z, s(x_1_0)) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= le(x_0_0, x_2_0) plus(s(x_0_0), z, s(x_2_0)) <= _r_1(x_0_0, x_2_0) plus(z, s(x_1_0), s(x_2_0)) <= True plus(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _|