Solving ../../benchmarks/smtlib/false/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(_neb, _oeb) <= max(_leb, _meb, _neb) /\ max(_leb, _meb, _oeb) ) } properties: { eq_nat(i, _peb) <= max(i, j, _peb) } 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 eq_nat(i, _peb) <= max(i, j, _peb) -> 0 } Solving took 0.091581 seconds. No: Contradictory set of ground constraints: { leq(s(s(z)), z) \/ max(s(s(z)), z, s(s(z))) <= True leq(s(z), s(s(z))) <= True leq(s(z), s(z)) <= True leq(z, s(z)) <= True leq(z, z) <= True max(s(z), s(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(s(z), s(z), s(s(z))) False <= max(s(z), z, s(s(z))) False <= max(z, s(z), s(z)) } ------------------- STEPS: ------------------------------------------- Step 0, which took 0.006039 s (model generation: 0.005956, model checking: 0.000083): 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 eq_nat(i, _peb) <= max(i, j, _peb) -> 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: () eq_nat(i, _peb) <= max(i, j, _peb) : No: () ------------------------------------------- Step 1, which took 0.006093 s (model generation: 0.006008, model checking: 0.000085): 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 eq_nat(i, _peb) <= max(i, j, _peb) -> 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(_ayoqw_0) } leq(z, n2) <= True : Yes: { n2 -> s(_dyoqw_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: () eq_nat(i, _peb) <= max(i, j, _peb) : No: () ------------------------------------------- Step 2, which took 0.007867 s (model generation: 0.007775, model checking: 0.000092): 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 eq_nat(i, _peb) <= max(i, j, _peb) -> 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(_lyoqw_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: { } eq_nat(i, _peb) <= max(i, j, _peb) : Yes: { _peb -> s(s(_wyoqw_0)) ; i -> s(z) ; j -> z } ------------------------------------------- Step 3, which took 0.009143 s (model generation: 0.009037, model checking: 0.000106): 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 eq_nat(i, _peb) <= max(i, j, _peb) -> 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) False <= max(s(z), 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 } ] ; max -> [ max : { _r_1(z) <= True max(s(x_0_0), z, s(x_2_0)) <= _r_1(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 : Yes: { m -> z ; n -> s(s(_izoqw_0)) } leq(z, n2) <= True : No: () max(n, m, m) <= leq(n, m) : Yes: { m -> s(_zyoqw_0) ; n -> s(_azoqw_0) } leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : No: () leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : Yes: { nn1 -> s(_dzoqw_0) ; nn2 -> z } False <= leq(s(nn1), z) : No: () eq_nat(i, _peb) <= max(i, j, _peb) : Yes: { _peb -> s(z) ; i -> s(s(_kzoqw_0)) ; j -> z } ------------------------------------------- Step 4, which took 0.012805 s (model generation: 0.012657, model checking: 0.000148): 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 eq_nat(i, _peb) <= max(i, j, _peb) -> 0 } Accumulated learning constraints: { leq(s(s(z)), z) \/ max(s(s(z)), z, s(s(z))) <= True leq(s(z), s(z)) <= True leq(z, s(z)) <= True leq(z, z) <= True max(s(z), s(z), s(z)) <= True max(s(z), 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(s(z), z, s(s(z))) } Current best model: |_ name: None leq -> [ leq : { _r_1(s(x_0_0), s(x_1_0)) <= True _r_1(z, z) <= True leq(s(x_0_0), s(x_1_0)) <= _r_1(x_0_0, x_1_0) leq(z, s(x_1_0)) <= True leq(z, z) <= True } ] ; max -> [ max : { _r_1(s(x_0_0), s(x_1_0)) <= True _r_1(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)) <= _r_1(x_0_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) : Yes: { m -> s(_nzoqw_0) ; n -> z } leq(s(nn1), s(nn2)) <= leq(nn1, nn2) : Yes: { nn1 -> z ; nn2 -> s(_szoqw_0) } leq(nn1, nn2) <= leq(s(nn1), s(nn2)) : Yes: { nn1 -> s(z) ; nn2 -> s(s(_oapqw_0)) } False <= leq(s(nn1), z) : No: () eq_nat(i, _peb) <= max(i, j, _peb) : Yes: { _peb -> s(s(_kapqw_0)) ; i -> s(z) ; j -> s(_bapqw_0) } ------------------------------------------- Step 5, which took 0.014235 s (model generation: 0.013975, model checking: 0.000260): 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 eq_nat(i, _peb) <= max(i, j, _peb) -> 0 } Accumulated learning constraints: { leq(s(s(z)), z) \/ max(s(s(z)), z, s(s(z))) <= True leq(s(z), s(s(z))) <= True leq(s(z), s(z)) <= True leq(z, s(z)) <= True leq(z, 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(s(z), s(z), s(s(z))) False <= max(s(z), z, s(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 : { _r_1(s(x_0_0), s(x_1_0)) <= True _r_1(z, z) <= True max(s(x_0_0), s(x_1_0), s(x_2_0)) <= _r_1(x_0_0, x_2_0) max(s(x_0_0), z, s(x_2_0)) <= _r_1(x_0_0, x_2_0) 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 : No: () leq(z, n2) <= True : No: () max(n, m, m) <= leq(n, m) : Yes: { m -> s(s(_pbpqw_0)) ; 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: () eq_nat(i, _peb) <= max(i, j, _peb) : Yes: { _peb -> s(_lbpqw_0) ; i -> z ; j -> s(_nbpqw_0) } Total time: 0.091581 Learner time: 0.055408 Teacher time: 0.000774 Reasons for stopping: No: Contradictory set of ground constraints: { leq(s(s(z)), z) \/ max(s(s(z)), z, s(s(z))) <= True leq(s(z), s(s(z))) <= True leq(s(z), s(z)) <= True leq(z, s(z)) <= True leq(z, z) <= True max(s(z), s(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(s(z), s(z), s(s(z))) False <= max(s(z), z, s(s(z))) False <= max(z, s(z), s(z)) }