Solving ../../benchmarks/smtlib/true/mult_leq_succ.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(_naa)) <= plus(n, mm, _naa) } eq_nat(_qaa, _raa) <= plus(_oaa, _paa, _qaa) /\ plus(_oaa, _paa, _raa) ) (mult, F: { mult(n, z, z) <= True mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) } eq_nat(_waa, _xaa) <= mult(_uaa, _vaa, _waa) /\ mult(_uaa, _vaa, _xaa) ) (leq, P: { leq(z, s(nn2)) <= True leq(z, z) <= True leq(s(nn1), s(nn2)) <= leq(nn1, nn2) leq(nn1, nn2) <= leq(s(nn1), s(nn2)) False <= leq(s(nn1), z) } ) } properties: { leq(n, _yaa) <= mult(n, s(m), _yaa) } over-approximation: {mult, plus} under-approximation: {leq} Clause system for inference is: { mult(n, z, z) <= True -> 0 plus(n, z, n) <= True -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) -> 0 leq(n, _yaa) <= mult(n, s(m), _yaa) -> 0 plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) -> 0 } Solving took 0.122067 seconds. Yes: |_ name: None leq -> [ leq : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] ; mult -> [ mult : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True mult(s(x_0_0), s(x_1_0), s(x_2_0)) <= leq(x_0_0, x_2_0) mult(s(x_0_0), z, z) <= True mult(z, s(x_1_0), z) <= True mult(z, z, z) <= True } ] ; plus -> [ plus : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= leq(x_0_0, x_2_0) plus(s(x_0_0), z, s(x_2_0)) <= leq(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.005778 s (model generation: 0.005723, model checking: 0.000055): Clauses: { mult(n, z, z) <= True -> 0 plus(n, z, n) <= True -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) -> 0 leq(n, _yaa) <= mult(n, s(m), _yaa) -> 0 plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) -> 0 } Accumulated learning constraints: { } Current best model: |_ name: None leq -> [ leq : { } ] ; mult -> [ mult : { } ] ; plus -> [ plus : { } ] -- Equality automata are defined for: {nat} _| Answer of teacher: mult(n, z, z) <= True : Yes: { n -> z } plus(n, z, n) <= True : Yes: { n -> z } leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : No: () mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) : No: () leq(n, _yaa) <= mult(n, s(m), _yaa) : No: () plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) : No: () ------------------------------------------- Step 1, which took 0.007386 s (model generation: 0.007316, model checking: 0.000070): Clauses: { mult(n, z, z) <= True -> 0 plus(n, z, n) <= True -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) -> 0 leq(n, _yaa) <= mult(n, s(m), _yaa) -> 0 plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) -> 0 } Accumulated learning constraints: { mult(z, z, z) <= True plus(z, z, z) <= True } Current best model: |_ name: None leq -> [ leq : { } ] ; mult -> [ mult : { mult(z, z, z) <= True } ] ; plus -> [ plus : { plus(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| Answer of teacher: mult(n, z, z) <= True : Yes: { n -> s(_ogpaa_0) } plus(n, z, n) <= True : Yes: { n -> s(_pgpaa_0) } leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : No: () mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) : Yes: { _saa -> z ; _taa -> z ; mm -> z ; n -> z } leq(n, _yaa) <= mult(n, s(m), _yaa) : No: () plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) : Yes: { _naa -> z ; mm -> z ; n -> z } ------------------------------------------- Step 2, which took 0.007298 s (model generation: 0.007212, model checking: 0.000086): Clauses: { mult(n, z, z) <= True -> 0 plus(n, z, n) <= True -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) -> 0 leq(n, _yaa) <= mult(n, s(m), _yaa) -> 0 plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) -> 0 } Accumulated learning constraints: { mult(s(z), z, z) <= True mult(z, s(z), z) <= True mult(z, 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 leq -> [ leq : { } ] ; mult -> [ mult : { mult(s(x_0_0), z, z) <= True mult(z, s(x_1_0), z) <= True mult(z, 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: mult(n, z, z) <= True : No: () plus(n, z, n) <= True : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : No: () mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) : Yes: { _saa -> z ; _taa -> s(_ygpaa_0) ; mm -> z ; n -> s(_ahpaa_0) } leq(n, _yaa) <= mult(n, s(m), _yaa) : Yes: { _yaa -> z ; n -> z } plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) : Yes: { _naa -> s(_dhpaa_0) ; mm -> z ; n -> s(_fhpaa_0) } ------------------------------------------- Step 3, which took 0.015417 s (model generation: 0.015286, model checking: 0.000131): Clauses: { mult(n, z, z) <= True -> 0 plus(n, z, n) <= True -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) -> 0 leq(n, _yaa) <= mult(n, s(m), _yaa) -> 0 plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) -> 0 } Accumulated learning constraints: { leq(z, z) <= True mult(s(z), s(z), s(z)) <= True mult(s(z), z, z) <= True mult(z, s(z), z) <= True mult(z, 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 } Current best model: |_ name: None leq -> [ leq : { leq(z, z) <= True } ] ; mult -> [ mult : { mult(s(x_0_0), s(x_1_0), s(x_2_0)) <= True mult(s(x_0_0), z, z) <= True mult(z, s(x_1_0), z) <= True mult(z, 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: mult(n, z, z) <= True : No: () plus(n, z, n) <= True : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : Yes: { nn1 -> z ; nn2 -> z } leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : No: () mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) : No: () leq(n, _yaa) <= mult(n, s(m), _yaa) : Yes: { _yaa -> s(_ihpaa_0) ; n -> s(_jhpaa_0) } plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) : No: () ------------------------------------------- Step 4, which took 0.009105 s (model generation: 0.009034, model checking: 0.000071): Clauses: { mult(n, z, z) <= True -> 0 plus(n, z, n) <= True -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) -> 0 leq(n, _yaa) <= mult(n, s(m), _yaa) -> 0 plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) -> 0 } Accumulated learning constraints: { leq(s(z), s(z)) <= True leq(z, z) <= True mult(s(z), s(z), s(z)) <= True mult(s(z), z, z) <= True mult(z, s(z), z) <= True mult(z, 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 } Current best model: |_ name: None leq -> [ leq : { leq(s(x_0_0), s(x_1_0)) <= True leq(z, z) <= True } ] ; mult -> [ mult : { mult(s(x_0_0), s(x_1_0), s(x_2_0)) <= True mult(s(x_0_0), z, z) <= True mult(z, s(x_1_0), z) <= True mult(z, 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: mult(n, z, z) <= True : No: () plus(n, z, n) <= True : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : Yes: { nn1 -> z ; nn2 -> s(_nhpaa_0) } False <= leq(s(nn1), z) : No: () mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) : No: () leq(n, _yaa) <= mult(n, s(m), _yaa) : No: () plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) : No: () ------------------------------------------- Step 5, which took 0.009210 s (model generation: 0.009143, model checking: 0.000067): Clauses: { mult(n, z, z) <= True -> 0 plus(n, z, n) <= True -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) -> 0 leq(n, _yaa) <= mult(n, s(m), _yaa) -> 0 plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) -> 0 } Accumulated learning constraints: { leq(s(z), s(z)) <= True leq(z, z) <= True mult(s(z), s(z), s(z)) <= True mult(s(z), z, z) <= True mult(z, s(z), z) <= True mult(z, 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 leq(z, s(z)) <= leq(s(z), s(s(z))) } Current best model: |_ name: None leq -> [ leq : { leq(s(x_0_0), s(x_1_0)) <= True leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] ; mult -> [ mult : { mult(s(x_0_0), s(x_1_0), s(x_2_0)) <= True mult(s(x_0_0), z, z) <= True mult(z, s(x_1_0), z) <= True mult(z, 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: mult(n, z, z) <= True : No: () plus(n, z, n) <= True : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : Yes: { nn1 -> s(_ohpaa_0) ; nn2 -> z } False <= leq(s(nn1), z) : No: () mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) : No: () leq(n, _yaa) <= mult(n, s(m), _yaa) : No: () plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) : No: () ------------------------------------------- Step 6, which took 0.009416 s (model generation: 0.009354, model checking: 0.000062): Clauses: { mult(n, z, z) <= True -> 0 plus(n, z, n) <= True -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) -> 0 leq(n, _yaa) <= mult(n, s(m), _yaa) -> 0 plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) -> 0 } Accumulated learning constraints: { leq(s(z), s(z)) <= True leq(z, z) <= True mult(s(z), s(z), s(z)) <= True mult(s(z), z, z) <= True mult(z, s(z), z) <= True mult(z, 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 leq(s(z), z) <= leq(s(s(z)), s(z)) leq(z, s(z)) <= leq(s(z), s(s(z))) } Current best model: |_ name: None leq -> [ leq : { leq(s(x_0_0), s(x_1_0)) <= True leq(s(x_0_0), z) <= True leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] ; mult -> [ mult : { mult(s(x_0_0), s(x_1_0), s(x_2_0)) <= True mult(s(x_0_0), z, z) <= True mult(z, s(x_1_0), z) <= True mult(z, 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: mult(n, z, z) <= True : No: () plus(n, z, n) <= True : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : Yes: { } mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) : No: () leq(n, _yaa) <= mult(n, s(m), _yaa) : No: () plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) : No: () ------------------------------------------- Step 7, which took 0.015640 s (model generation: 0.015392, model checking: 0.000248): Clauses: { mult(n, z, z) <= True -> 0 plus(n, z, n) <= True -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) -> 0 leq(n, _yaa) <= mult(n, s(m), _yaa) -> 0 plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) -> 0 } Accumulated learning constraints: { leq(s(z), s(z)) <= True leq(z, z) <= True mult(s(z), s(z), s(z)) <= True mult(s(z), z, z) <= True mult(z, s(z), z) <= True mult(z, 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 <= leq(s(s(z)), s(z)) leq(z, s(z)) <= leq(s(z), s(s(z))) False <= leq(s(z), z) } Current best model: |_ name: None leq -> [ leq : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] ; mult -> [ mult : { mult(s(x_0_0), s(x_1_0), s(x_2_0)) <= True mult(s(x_0_0), z, z) <= True mult(z, s(x_1_0), z) <= True mult(z, 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: mult(n, z, z) <= True : No: () plus(n, z, n) <= True : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : No: () mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) : No: () leq(n, _yaa) <= mult(n, s(m), _yaa) : Yes: { _yaa -> s(z) ; n -> s(s(_eipaa_0)) } plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) : No: () ------------------------------------------- Step 8, which took 0.014684 s (model generation: 0.014457, model checking: 0.000227): Clauses: { mult(n, z, z) <= True -> 0 plus(n, z, n) <= True -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) -> 0 leq(n, _yaa) <= mult(n, s(m), _yaa) -> 0 plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) -> 0 } Accumulated learning constraints: { leq(s(z), s(z)) <= True leq(z, z) <= True mult(s(z), s(z), s(z)) <= True mult(s(z), z, z) <= True mult(z, s(z), z) <= True mult(z, 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 <= leq(s(s(z)), s(z)) leq(z, s(z)) <= leq(s(z), s(s(z))) False <= leq(s(z), z) False <= mult(s(s(z)), s(z), s(z)) } Current best model: |_ name: None leq -> [ leq : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] ; mult -> [ mult : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True mult(s(x_0_0), s(x_1_0), s(x_2_0)) <= leq(x_0_0, x_1_0) mult(s(x_0_0), z, z) <= True mult(z, s(x_1_0), z) <= True mult(z, 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: mult(n, z, z) <= True : No: () plus(n, z, n) <= True : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : No: () mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) : Yes: { _saa -> z ; _taa -> s(_vipaa_0) ; mm -> z ; n -> s(s(_ajpaa_0)) } leq(n, _yaa) <= mult(n, s(m), _yaa) : Yes: { _yaa -> s(z) ; m -> s(z) ; n -> s(s(z)) } plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) : No: () ------------------------------------------- Step 9, which took 0.013652 s (model generation: 0.013212, model checking: 0.000440): Clauses: { mult(n, z, z) <= True -> 0 plus(n, z, n) <= True -> 0 leq(s(nn1), s(nn2)) <= leq(nn1, nn2) -> 0 leq(nn1, nn2) <= leq(s(nn1), s(nn2)) -> 0 False <= leq(s(nn1), z) -> 0 mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) -> 0 leq(n, _yaa) <= mult(n, s(m), _yaa) -> 0 plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) -> 0 } Accumulated learning constraints: { leq(s(z), s(z)) <= True leq(z, z) <= True mult(s(z), s(z), s(z)) <= True mult(s(z), z, z) <= True mult(z, s(z), z) <= True mult(z, 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 <= leq(s(s(z)), s(z)) leq(z, s(z)) <= leq(s(z), s(s(z))) False <= leq(s(z), z) False <= mult(s(s(z)), s(s(z)), s(z)) False <= mult(s(s(z)), s(z), s(z)) False <= mult(s(s(z)), z, z) /\ plus(s(s(z)), z, s(z)) } Current best model: |_ name: None leq -> [ leq : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] ; mult -> [ mult : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True mult(s(x_0_0), s(x_1_0), s(x_2_0)) <= leq(x_0_0, x_2_0) mult(s(x_0_0), z, z) <= True mult(z, s(x_1_0), z) <= True mult(z, z, z) <= True } ] ; plus -> [ plus : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, 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)) <= leq(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: mult(n, z, z) <= True : No: () plus(n, z, n) <= True : No: () leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : No: () mult(n, s(mm), _taa) <= mult(n, mm, _saa) /\ plus(n, _saa, _taa) : Yes: { _saa -> s(s(z)) ; _taa -> s(z) ; mm -> s(_akpaa_0) ; n -> s(s(z)) } leq(n, _yaa) <= mult(n, s(m), _yaa) : No: () plus(n, s(mm), s(_naa)) <= plus(n, mm, _naa) : No: () Total time: 0.122067 Learner time: 0.106129 Teacher time: 0.001457 Reasons for stopping: Yes: |_ name: None leq -> [ leq : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] ; mult -> [ mult : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True mult(s(x_0_0), s(x_1_0), s(x_2_0)) <= leq(x_0_0, x_2_0) mult(s(x_0_0), z, z) <= True mult(z, s(x_1_0), z) <= True mult(z, z, z) <= True } ] ; plus -> [ plus : { leq(s(x_0_0), s(x_1_0)) <= leq(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True plus(s(x_0_0), s(x_1_0), s(x_2_0)) <= leq(x_0_0, x_2_0) plus(s(x_0_0), z, s(x_2_0)) <= leq(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} _|