Solving ../../benchmarks/smtlib/true/plus_even_even.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: { (is_even, P: { is_even(z) <= True is_even(s(s(n3))) <= is_even(n3) is_even(n3) <= is_even(s(s(n3))) False <= is_even(s(z)) } ) (plus, F: { plus(n, z, n) <= True plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) } eq_nat(_ima, _jma) <= plus(_gma, _hma, _ima) /\ plus(_gma, _hma, _jma) ) } properties: { is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) } over-approximation: {plus} under-approximation: {} Clause system for inference is: { is_even(z) <= True -> 0 plus(n, z, n) <= True -> 0 is_even(s(s(n3))) <= is_even(n3) -> 0 is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) -> 0 is_even(n3) <= is_even(s(s(n3))) -> 0 False <= is_even(s(z)) -> 0 plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) -> 0 } Solving took 0.262431 seconds. Yes: |_ name: None is_even -> [ is_even : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True } ] ; plus -> [ plus : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= _r_1(x_1_0) /\ _r_1(x_2_0) plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= is_even(x_0_0) plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= is_even(x_1_0) /\ is_even(x_2_0) plus(s(x_0_0), z, s(x_2_0)) <= _r_1(x_2_0) plus(s(x_0_0), z, s(x_2_0)) <= is_even(x_0_0) plus(z, s(x_1_0), s(x_2_0)) <= _r_1(x_1_0) /\ _r_1(x_2_0) plus(z, s(x_1_0), s(x_2_0)) <= is_even(x_1_0) /\ is_even(x_2_0) plus(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.006046 s (model generation: 0.005988, model checking: 0.000058): Clauses: { is_even(z) <= True -> 0 plus(n, z, n) <= True -> 0 is_even(s(s(n3))) <= is_even(n3) -> 0 is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) -> 0 is_even(n3) <= is_even(s(s(n3))) -> 0 False <= is_even(s(z)) -> 0 plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) -> 0 } Accumulated learning constraints: { } Current best model: |_ name: None is_even -> [ is_even : { } ] ; plus -> [ plus : { } ] -- Equality automata are defined for: {nat} _| Answer of teacher: is_even(z) <= True : Yes: { } plus(n, z, n) <= True : Yes: { n -> z } is_even(s(s(n3))) <= is_even(n3) : No: () is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) : No: () is_even(n3) <= is_even(s(s(n3))) : No: () False <= is_even(s(z)) : No: () plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) : No: () ------------------------------------------- Step 1, which took 0.005784 s (model generation: 0.005728, model checking: 0.000056): Clauses: { is_even(z) <= True -> 0 plus(n, z, n) <= True -> 0 is_even(s(s(n3))) <= is_even(n3) -> 0 is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) -> 0 is_even(n3) <= is_even(s(s(n3))) -> 0 False <= is_even(s(z)) -> 0 plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) -> 0 } Accumulated learning constraints: { is_even(z) <= True plus(z, z, z) <= True } Current best model: |_ name: None is_even -> [ is_even : { is_even(z) <= True } ] ; plus -> [ plus : { plus(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| Answer of teacher: is_even(z) <= True : No: () plus(n, z, n) <= True : Yes: { n -> s(_azpba_0) } is_even(s(s(n3))) <= is_even(n3) : Yes: { n3 -> z } is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) : No: () is_even(n3) <= is_even(s(s(n3))) : No: () False <= is_even(s(z)) : No: () plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) : Yes: { _fma -> z ; mm -> z ; n -> z } ------------------------------------------- Step 2, which took 0.008707 s (model generation: 0.008666, model checking: 0.000041): Clauses: { is_even(z) <= True -> 0 plus(n, z, n) <= True -> 0 is_even(s(s(n3))) <= is_even(n3) -> 0 is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) -> 0 is_even(n3) <= is_even(s(s(n3))) -> 0 False <= is_even(s(z)) -> 0 plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) -> 0 } Accumulated learning constraints: { is_even(s(s(z))) <= True is_even(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 is_even -> [ is_even : { is_even(s(x_0_0)) <= True is_even(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: is_even(z) <= True : No: () plus(n, z, n) <= True : No: () is_even(s(s(n3))) <= is_even(n3) : No: () is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) : No: () is_even(n3) <= is_even(s(s(n3))) : No: () False <= is_even(s(z)) : Yes: { } plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) : Yes: { _fma -> s(_fzpba_0) ; mm -> z ; n -> s(_hzpba_0) } ------------------------------------------- Step 3, which took 0.013172 s (model generation: 0.013048, model checking: 0.000124): Clauses: { is_even(z) <= True -> 0 plus(n, z, n) <= True -> 0 is_even(s(s(n3))) <= is_even(n3) -> 0 is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) -> 0 is_even(n3) <= is_even(s(s(n3))) -> 0 False <= is_even(s(z)) -> 0 plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) -> 0 } Accumulated learning constraints: { is_even(s(s(z))) <= True is_even(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 <= is_even(s(z)) } Current best model: |_ name: None is_even -> [ is_even : { _r_1(s(x_0_0)) <= True is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(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: is_even(z) <= True : No: () plus(n, z, n) <= True : No: () is_even(s(s(n3))) <= is_even(n3) : No: () is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) : Yes: { _kma -> s(z) ; x -> z ; y -> s(s(_uzpba_0)) } is_even(n3) <= is_even(s(s(n3))) : Yes: { n3 -> s(z) } False <= is_even(s(z)) : No: () plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) : No: () ------------------------------------------- Step 4, which took 0.013996 s (model generation: 0.013603, model checking: 0.000393): Clauses: { is_even(z) <= True -> 0 plus(n, z, n) <= True -> 0 is_even(s(s(n3))) <= is_even(n3) -> 0 is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) -> 0 is_even(n3) <= is_even(s(s(n3))) -> 0 False <= is_even(s(z)) -> 0 plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) -> 0 } Accumulated learning constraints: { is_even(s(s(z))) <= True is_even(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 <= is_even(s(s(s(z)))) False <= is_even(s(z)) False <= plus(z, s(s(z)), s(z)) } Current best model: |_ name: None is_even -> [ is_even : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True } ] ; plus -> [ plus : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True 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)) <= is_even(x_1_0) plus(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| Answer of teacher: is_even(z) <= True : No: () plus(n, z, n) <= True : No: () is_even(s(s(n3))) <= is_even(n3) : No: () is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) : Yes: { _kma -> s(z) ; x -> s(s(z)) ; y -> z } is_even(n3) <= is_even(s(s(n3))) : No: () False <= is_even(s(z)) : No: () plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) : Yes: { _fma -> s(_jaqba_0) ; mm -> s(z) ; n -> z } ------------------------------------------- Step 5, which took 0.026688 s (model generation: 0.026170, model checking: 0.000518): Clauses: { is_even(z) <= True -> 0 plus(n, z, n) <= True -> 0 is_even(s(s(n3))) <= is_even(n3) -> 0 is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) -> 0 is_even(n3) <= is_even(s(s(n3))) -> 0 False <= is_even(s(z)) -> 0 plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) -> 0 } Accumulated learning constraints: { is_even(s(s(z))) <= True is_even(z) <= True plus(s(z), s(z), s(s(z))) <= True plus(s(z), z, s(z)) <= True plus(z, s(s(z)), s(s(z))) <= True plus(z, s(z), s(z)) <= True plus(z, z, z) <= True False <= is_even(s(s(s(z)))) False <= is_even(s(z)) False <= plus(s(s(z)), z, s(z)) False <= plus(z, s(s(z)), s(z)) } Current best model: |_ name: None is_even -> [ is_even : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True } ] ; plus -> [ plus : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= True plus(s(x_0_0), z, s(x_2_0)) <= is_even(x_0_0) plus(z, s(x_1_0), s(x_2_0)) <= _r_1(x_2_0) plus(z, s(x_1_0), s(x_2_0)) <= is_even(x_1_0) plus(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| Answer of teacher: is_even(z) <= True : No: () plus(n, z, n) <= True : Yes: { n -> s(s(z)) } is_even(s(s(n3))) <= is_even(n3) : No: () is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) : Yes: { _kma -> s(z) ; x -> s(s(z)) ; y -> s(s(z)) } is_even(n3) <= is_even(s(s(n3))) : No: () False <= is_even(s(z)) : No: () plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) : Yes: { _fma -> s(s(z)) ; mm -> s(z) ; n -> z } ------------------------------------------- Step 6, which took 0.022636 s (model generation: 0.021935, model checking: 0.000701): Clauses: { is_even(z) <= True -> 0 plus(n, z, n) <= True -> 0 is_even(s(s(n3))) <= is_even(n3) -> 0 is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) -> 0 is_even(n3) <= is_even(s(s(n3))) -> 0 False <= is_even(s(z)) -> 0 plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) -> 0 } Accumulated learning constraints: { is_even(s(s(z))) <= True is_even(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(s(z)), s(s(z))) <= True plus(z, s(z), s(z)) <= True plus(z, z, z) <= True False <= is_even(s(s(s(z)))) False <= is_even(s(z)) False <= plus(s(s(z)), s(s(z)), s(z)) False <= plus(s(s(z)), z, s(z)) False <= plus(z, s(s(z)), s(z)) plus(z, s(s(z)), s(s(s(z)))) <= plus(z, s(z), s(s(z))) } Current best model: |_ name: None is_even -> [ is_even : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True } ] ; plus -> [ plus : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= 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)) <= _r_1(x_2_0) plus(s(x_0_0), z, s(x_2_0)) <= is_even(x_0_0) plus(z, s(x_1_0), s(x_2_0)) <= _r_1(x_1_0) /\ _r_1(x_2_0) plus(z, s(x_1_0), s(x_2_0)) <= is_even(x_1_0) /\ is_even(x_2_0) plus(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| Answer of teacher: is_even(z) <= True : No: () plus(n, z, n) <= True : No: () is_even(s(s(n3))) <= is_even(n3) : No: () is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) : No: () is_even(n3) <= is_even(s(s(n3))) : No: () False <= is_even(s(z)) : No: () plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) : Yes: { _fma -> s(s(z)) ; mm -> z ; n -> s(_kdqba_0) } ------------------------------------------- Step 7, which took 0.022375 s (model generation: 0.021618, model checking: 0.000757): Clauses: { is_even(z) <= True -> 0 plus(n, z, n) <= True -> 0 is_even(s(s(n3))) <= is_even(n3) -> 0 is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) -> 0 is_even(n3) <= is_even(s(s(n3))) -> 0 False <= is_even(s(z)) -> 0 plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) -> 0 } Accumulated learning constraints: { is_even(s(s(z))) <= True is_even(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(s(z)), s(s(z))) <= True plus(z, s(z), s(z)) <= True plus(z, z, z) <= True False <= is_even(s(s(s(z)))) False <= is_even(s(z)) False <= plus(s(s(z)), s(s(z)), s(z)) False <= plus(s(s(z)), z, s(z)) plus(s(z), s(z), s(s(s(z)))) <= plus(s(z), z, s(s(z))) False <= plus(z, s(s(z)), s(z)) plus(z, s(s(z)), s(s(s(z)))) <= plus(z, s(z), s(s(z))) } Current best model: |_ name: None is_even -> [ is_even : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True } ] ; plus -> [ plus : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= is_even(x_0_0) plus(s(x_0_0), z, s(x_2_0)) <= _r_1(x_2_0) plus(s(x_0_0), z, s(x_2_0)) <= is_even(x_0_0) plus(z, s(x_1_0), s(x_2_0)) <= _r_1(x_1_0) /\ _r_1(x_2_0) plus(z, s(x_1_0), s(x_2_0)) <= is_even(x_1_0) /\ is_even(x_2_0) plus(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| Answer of teacher: is_even(z) <= True : No: () plus(n, z, n) <= True : No: () is_even(s(s(n3))) <= is_even(n3) : No: () is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) : No: () is_even(n3) <= is_even(s(s(n3))) : No: () False <= is_even(s(z)) : No: () plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) : Yes: { _fma -> s(s(z)) ; mm -> z ; n -> s(s(z)) } ------------------------------------------- Step 8, which took 0.024370 s (model generation: 0.023778, model checking: 0.000592): Clauses: { is_even(z) <= True -> 0 plus(n, z, n) <= True -> 0 is_even(s(s(n3))) <= is_even(n3) -> 0 is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) -> 0 is_even(n3) <= is_even(s(s(n3))) -> 0 False <= is_even(s(z)) -> 0 plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) -> 0 } Accumulated learning constraints: { is_even(s(s(z))) <= True is_even(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(s(z)), s(s(z))) <= True plus(z, s(z), s(z)) <= True plus(z, z, z) <= True False <= is_even(s(s(s(z)))) False <= is_even(s(z)) False <= plus(s(s(z)), s(s(z)), s(z)) False <= plus(s(s(z)), z, s(z)) plus(s(z), s(z), s(s(s(z)))) <= plus(s(z), z, s(s(z))) False <= plus(z, s(s(z)), s(z)) plus(z, s(s(z)), s(s(s(z)))) <= plus(z, s(z), s(s(z))) } Current best model: |_ name: None is_even -> [ is_even : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True } ] ; plus -> [ plus : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= is_even(x_1_0) plus(s(x_0_0), z, s(x_2_0)) <= _r_1(x_2_0) plus(s(x_0_0), z, s(x_2_0)) <= is_even(x_0_0) plus(z, s(x_1_0), s(x_2_0)) <= _r_1(x_1_0) /\ _r_1(x_2_0) plus(z, s(x_1_0), s(x_2_0)) <= is_even(x_1_0) /\ is_even(x_2_0) plus(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| Answer of teacher: is_even(z) <= True : No: () plus(n, z, n) <= True : No: () is_even(s(s(n3))) <= is_even(n3) : No: () is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) : No: () is_even(n3) <= is_even(s(s(n3))) : No: () False <= is_even(s(z)) : No: () plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) : Yes: { _fma -> s(_kkqba_0) ; mm -> s(z) ; n -> s(_mkqba_0) } ------------------------------------------- Step 9, which took 0.024138 s (model generation: 0.023450, model checking: 0.000688): Clauses: { is_even(z) <= True -> 0 plus(n, z, n) <= True -> 0 is_even(s(s(n3))) <= is_even(n3) -> 0 is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) -> 0 is_even(n3) <= is_even(s(s(n3))) -> 0 False <= is_even(s(z)) -> 0 plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) -> 0 } Accumulated learning constraints: { is_even(s(s(z))) <= True is_even(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(s(z)), s(s(z))) <= True plus(z, s(z), s(z)) <= True plus(z, z, z) <= True False <= is_even(s(s(s(z)))) False <= is_even(s(z)) False <= plus(s(s(z)), s(s(z)), s(z)) False <= plus(s(s(z)), z, s(z)) plus(s(z), s(s(z)), s(s(z))) <= plus(s(z), s(z), s(z)) plus(s(z), s(z), s(s(s(z)))) <= plus(s(z), z, s(s(z))) False <= plus(z, s(s(z)), s(z)) plus(z, s(s(z)), s(s(s(z)))) <= plus(z, s(z), s(s(z))) } Current best model: |_ name: None is_even -> [ is_even : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True } ] ; plus -> [ plus : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= is_even(x_0_0) plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= is_even(x_1_0) plus(s(x_0_0), z, s(x_2_0)) <= _r_1(x_2_0) plus(s(x_0_0), z, s(x_2_0)) <= is_even(x_0_0) plus(z, s(x_1_0), s(x_2_0)) <= _r_1(x_1_0) /\ _r_1(x_2_0) plus(z, s(x_1_0), s(x_2_0)) <= is_even(x_1_0) /\ is_even(x_2_0) plus(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| Answer of teacher: is_even(z) <= True : No: () plus(n, z, n) <= True : No: () is_even(s(s(n3))) <= is_even(n3) : No: () is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) : No: () is_even(n3) <= is_even(s(s(n3))) : No: () False <= is_even(s(z)) : No: () plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) : Yes: { _fma -> s(_boqba_0) ; mm -> s(z) ; n -> s(s(z)) } ------------------------------------------- Step 10, which took 0.026983 s (model generation: 0.026254, model checking: 0.000729): Clauses: { is_even(z) <= True -> 0 plus(n, z, n) <= True -> 0 is_even(s(s(n3))) <= is_even(n3) -> 0 is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) -> 0 is_even(n3) <= is_even(s(s(n3))) -> 0 False <= is_even(s(z)) -> 0 plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) -> 0 } Accumulated learning constraints: { is_even(s(s(z))) <= True is_even(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(s(z)), s(s(z))) <= True plus(z, s(z), s(z)) <= True plus(z, z, z) <= True False <= is_even(s(s(s(z)))) False <= is_even(s(z)) False <= plus(s(s(z)), s(s(z)), s(z)) plus(s(s(z)), s(s(z)), s(s(z))) <= plus(s(s(z)), s(z), s(z)) False <= plus(s(s(z)), z, s(z)) plus(s(z), s(s(z)), s(s(z))) <= plus(s(z), s(z), s(z)) plus(s(z), s(z), s(s(s(z)))) <= plus(s(z), z, s(s(z))) False <= plus(z, s(s(z)), s(z)) plus(z, s(s(z)), s(s(s(z)))) <= plus(z, s(z), s(s(z))) } Current best model: |_ name: None is_even -> [ is_even : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True } ] ; plus -> [ plus : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= _r_1(x_2_0) plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= is_even(x_1_0) plus(s(x_0_0), z, s(x_2_0)) <= _r_1(x_2_0) plus(s(x_0_0), z, s(x_2_0)) <= is_even(x_0_0) plus(z, s(x_1_0), s(x_2_0)) <= _r_1(x_1_0) /\ _r_1(x_2_0) plus(z, s(x_1_0), s(x_2_0)) <= is_even(x_1_0) /\ is_even(x_2_0) plus(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| Answer of teacher: is_even(z) <= True : No: () plus(n, z, n) <= True : No: () is_even(s(s(n3))) <= is_even(n3) : No: () is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) : No: () is_even(n3) <= is_even(s(s(n3))) : No: () False <= is_even(s(z)) : No: () plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) : Yes: { _fma -> s(s(z)) ; mm -> s(z) ; n -> s(_zrqba_0) } ------------------------------------------- Step 11, which took 0.031024 s (model generation: 0.030228, model checking: 0.000796): Clauses: { is_even(z) <= True -> 0 plus(n, z, n) <= True -> 0 is_even(s(s(n3))) <= is_even(n3) -> 0 is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) -> 0 is_even(n3) <= is_even(s(s(n3))) -> 0 False <= is_even(s(z)) -> 0 plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) -> 0 } Accumulated learning constraints: { is_even(s(s(z))) <= True is_even(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(s(z)), s(s(s(z)))) <= True plus(s(z), s(z), s(s(z))) <= True plus(s(z), z, s(z)) <= True plus(z, s(s(z)), s(s(z))) <= True plus(z, s(z), s(z)) <= True plus(z, z, z) <= True False <= is_even(s(s(s(z)))) False <= is_even(s(z)) False <= plus(s(s(z)), s(s(z)), s(z)) plus(s(s(z)), s(s(z)), s(s(z))) <= plus(s(s(z)), s(z), s(z)) False <= plus(s(s(z)), z, s(z)) plus(s(z), s(s(z)), s(s(z))) <= plus(s(z), s(z), s(z)) plus(s(z), s(z), s(s(s(z)))) <= plus(s(z), z, s(s(z))) False <= plus(z, s(s(z)), s(z)) plus(z, s(s(z)), s(s(s(z)))) <= plus(z, s(z), s(s(z))) } Current best model: |_ name: None is_even -> [ is_even : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True } ] ; plus -> [ plus : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= _r_1(x_2_0) plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= is_even(x_0_0) plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= is_even(x_1_0) plus(s(x_0_0), z, s(x_2_0)) <= _r_1(x_2_0) plus(s(x_0_0), z, s(x_2_0)) <= is_even(x_0_0) plus(z, s(x_1_0), s(x_2_0)) <= _r_1(x_1_0) /\ _r_1(x_2_0) plus(z, s(x_1_0), s(x_2_0)) <= is_even(x_1_0) /\ is_even(x_2_0) plus(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| Answer of teacher: is_even(z) <= True : No: () plus(n, z, n) <= True : No: () is_even(s(s(n3))) <= is_even(n3) : No: () is_even(_kma) <= is_even(x) /\ is_even(y) /\ plus(x, y, _kma) : No: () is_even(n3) <= is_even(s(s(n3))) : No: () False <= is_even(s(z)) : No: () plus(n, s(mm), s(_fma)) <= plus(n, mm, _fma) : Yes: { _fma -> s(s(z)) ; mm -> s(z) ; n -> s(s(z)) } Total time: 0.262431 Learner time: 0.220466 Teacher time: 0.005453 Reasons for stopping: Yes: |_ name: None is_even -> [ is_even : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True } ] ; plus -> [ plus : { _r_1(s(x_0_0)) <= is_even(x_0_0) is_even(s(x_0_0)) <= _r_1(x_0_0) is_even(z) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= _r_1(x_1_0) /\ _r_1(x_2_0) plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= is_even(x_0_0) plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= is_even(x_1_0) /\ is_even(x_2_0) plus(s(x_0_0), z, s(x_2_0)) <= _r_1(x_2_0) plus(s(x_0_0), z, s(x_2_0)) <= is_even(x_0_0) plus(z, s(x_1_0), s(x_2_0)) <= _r_1(x_1_0) /\ _r_1(x_2_0) plus(z, s(x_1_0), s(x_2_0)) <= is_even(x_1_0) /\ is_even(x_2_0) plus(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _|