Solving ../../benchmarks/smtlib/true/max_nat.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: { (leq, P: { leq(z, n2) <= True leq(s(nn1), s(nn2)) <= leq(nn1, nn2) leq(nn1, nn2) <= leq(s(nn1), s(nn2)) False <= leq(s(nn1), z) } ) (max, F: { leq(n, m) \/ max(n, m, n) <= True max(n, m, m) <= leq(n, m) } eq_nat(_jaa, _kaa) <= max(_haa, _iaa, _jaa) /\ max(_haa, _iaa, _kaa) ) } properties: { leq(i, _laa) <= max(i, j, _laa) leq(j, _maa) <= max(i, j, _maa) } over-approximation: {max} under-approximation: {} Clause system for inference is: { leq(n, m) \/ max(n, m, n) <= True -> 0 leq(z, n2) <= True -> 0 max(n, m, m) <= leq(n, m) -> 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 leq(i, _laa) <= max(i, j, _laa) -> 0 leq(j, _maa) <= max(i, j, _maa) -> 0 } Solving took 0.065780 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 } ] ; max -> [ max : { 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 max(s(x_0_0), s(x_1_0), s(x_2_0)) <= leq(x_0_0, x_2_0) /\ leq(x_1_0, x_2_0) max(s(x_0_0), z, s(x_2_0)) <= leq(x_0_0, x_2_0) max(z, s(x_1_0), s(x_2_0)) <= leq(x_1_0, x_2_0) max(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.006045 s (model generation: 0.005973, model checking: 0.000072): Clauses: { leq(n, m) \/ max(n, m, n) <= True -> 0 leq(z, n2) <= True -> 0 max(n, m, m) <= leq(n, m) -> 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 leq(i, _laa) <= max(i, j, _laa) -> 0 leq(j, _maa) <= max(i, j, _maa) -> 0 } Accumulated learning constraints: { } Current best model: |_ name: None leq -> [ leq : { } ] ; max -> [ max : { } ] -- Equality automata are defined for: {nat} _| Answer of teacher: leq(n, m) \/ max(n, m, n) <= True : Yes: { m -> z ; n -> z } leq(z, n2) <= True : Yes: { n2 -> z } max(n, m, m) <= leq(n, m) : 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: () leq(i, _laa) <= max(i, j, _laa) : No: () leq(j, _maa) <= max(i, j, _maa) : No: () ------------------------------------------- Step 1, which took 0.006186 s (model generation: 0.006100, model checking: 0.000086): Clauses: { leq(n, m) \/ max(n, m, n) <= True -> 0 leq(z, n2) <= True -> 0 max(n, m, m) <= leq(n, m) -> 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 leq(i, _laa) <= max(i, j, _laa) -> 0 leq(j, _maa) <= max(i, j, _maa) -> 0 } Accumulated learning constraints: { leq(z, z) <= True } Current best model: |_ name: None leq -> [ leq : { leq(z, z) <= True } ] ; max -> [ max : { } ] -- Equality automata are defined for: {nat} _| Answer of teacher: leq(n, m) \/ max(n, m, n) <= True : Yes: { m -> z ; n -> s(_utus_0) } leq(z, n2) <= True : Yes: { n2 -> s(_xtus_0) } max(n, m, m) <= leq(n, m) : Yes: { m -> z ; n -> z } 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: () leq(i, _laa) <= max(i, j, _laa) : No: () leq(j, _maa) <= max(i, j, _maa) : No: () ------------------------------------------- Step 2, which took 0.011881 s (model generation: 0.011734, model checking: 0.000147): Clauses: { leq(n, m) \/ max(n, m, n) <= True -> 0 leq(z, n2) <= True -> 0 max(n, m, m) <= leq(n, m) -> 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 leq(i, _laa) <= max(i, j, _laa) -> 0 leq(j, _maa) <= max(i, j, _maa) -> 0 } Accumulated learning constraints: { leq(s(z), s(z)) <= True leq(s(z), z) \/ max(s(z), z, s(z)) <= True leq(z, s(z)) <= True leq(z, z) <= True max(z, z, z) <= True } 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 } ] ; max -> [ max : { max(s(x_0_0), z, s(x_2_0)) <= True max(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| Answer of teacher: leq(n, m) \/ max(n, m, n) <= True : No: () leq(z, n2) <= True : No: () max(n, m, m) <= leq(n, m) : Yes: { m -> z ; n -> s(_fuus_0) } leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : No: () False <= leq(s(nn1), z) : Yes: { } leq(i, _laa) <= max(i, j, _laa) : No: () leq(j, _maa) <= max(i, j, _maa) : No: () ------------------------------------------- Step 3, which took 0.011262 s (model generation: 0.011185, model checking: 0.000077): Clauses: { leq(n, m) \/ max(n, m, n) <= True -> 0 leq(z, n2) <= True -> 0 max(n, m, m) <= leq(n, m) -> 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 leq(i, _laa) <= max(i, j, _laa) -> 0 leq(j, _maa) <= max(i, j, _maa) -> 0 } Accumulated learning constraints: { leq(s(z), s(z)) <= True leq(z, s(z)) <= True leq(z, z) <= True max(s(z), z, s(z)) <= True max(z, z, z) <= True False <= leq(s(z), 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 } ] ; max -> [ max : { max(s(x_0_0), z, s(x_2_0)) <= True max(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| Answer of teacher: leq(n, m) \/ max(n, m, n) <= True : No: () leq(z, n2) <= True : No: () max(n, m, m) <= leq(n, m) : Yes: { m -> s(_kuus_0) ; n -> z } leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : Yes: { nn1 -> s(_muus_0) ; nn2 -> z } False <= leq(s(nn1), z) : No: () leq(i, _laa) <= max(i, j, _laa) : No: () leq(j, _maa) <= max(i, j, _maa) : No: () ------------------------------------------- Step 4, which took 0.009876 s (model generation: 0.009640, model checking: 0.000236): Clauses: { leq(n, m) \/ max(n, m, n) <= True -> 0 leq(z, n2) <= True -> 0 max(n, m, m) <= leq(n, m) -> 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 leq(i, _laa) <= max(i, j, _laa) -> 0 leq(j, _maa) <= max(i, j, _maa) -> 0 } Accumulated learning constraints: { leq(s(z), s(z)) <= True leq(z, s(z)) <= True leq(z, z) <= True max(s(z), z, s(z)) <= True max(z, s(z), s(z)) <= True max(z, z, z) <= True False <= leq(s(s(z)), 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 } ] ; max -> [ max : { max(s(x_0_0), z, s(x_2_0)) <= True max(z, s(x_1_0), s(x_2_0)) <= True max(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| Answer of teacher: leq(n, m) \/ max(n, m, n) <= True : Yes: { m -> s(z) ; n -> s(s(_kvus_0)) } leq(z, n2) <= True : No: () max(n, m, m) <= leq(n, m) : Yes: { m -> s(z) ; n -> s(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: () leq(i, _laa) <= max(i, j, _laa) : Yes: { _laa -> s(z) ; i -> s(s(_kvus_0)) ; j -> z } leq(j, _maa) <= max(i, j, _maa) : Yes: { _maa -> s(z) ; i -> z ; j -> s(s(_kvus_0)) } ------------------------------------------- Step 5, which took 0.009934 s (model generation: 0.009474, model checking: 0.000460): Clauses: { leq(n, m) \/ max(n, m, n) <= True -> 0 leq(z, n2) <= True -> 0 max(n, m, m) <= leq(n, m) -> 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 leq(i, _laa) <= max(i, j, _laa) -> 0 leq(j, _maa) <= max(i, j, _maa) -> 0 } Accumulated learning constraints: { leq(s(z), s(z)) <= True leq(z, s(z)) <= True leq(z, z) <= True max(s(s(z)), s(z), s(s(z))) <= True max(s(z), s(z), s(z)) <= True max(s(z), z, s(z)) <= True max(z, s(z), s(z)) <= True max(z, z, z) <= True False <= leq(s(s(z)), s(z)) False <= leq(s(z), z) False <= max(s(s(z)), z, s(z)) False <= max(z, s(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 } ] ; max -> [ max : { 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 max(s(x_0_0), s(x_1_0), s(x_2_0)) <= True max(s(x_0_0), z, s(x_2_0)) <= leq(x_0_0, x_2_0) max(z, s(x_1_0), s(x_2_0)) <= leq(x_1_0, x_2_0) max(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _| Answer of teacher: leq(n, m) \/ max(n, m, n) <= True : No: () leq(z, n2) <= True : No: () max(n, m, m) <= leq(n, m) : 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: () leq(i, _laa) <= max(i, j, _laa) : Yes: { _laa -> s(z) ; i -> s(s(_vwus_0)) ; j -> s(_iwus_0) } leq(j, _maa) <= max(i, j, _maa) : Yes: { _maa -> s(z) ; i -> s(_nwus_0) ; j -> s(s(_vwus_0)) } Total time: 0.065780 Learner time: 0.054106 Teacher time: 0.001078 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 } ] ; max -> [ max : { 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 max(s(x_0_0), s(x_1_0), s(x_2_0)) <= leq(x_0_0, x_2_0) /\ leq(x_1_0, x_2_0) max(s(x_0_0), z, s(x_2_0)) <= leq(x_0_0, x_2_0) max(z, s(x_1_0), s(x_2_0)) <= leq(x_1_0, x_2_0) max(z, z, z) <= True } ] -- Equality automata are defined for: {nat} _|