Solving ../../benchmarks/smtlib/false/tree_depth_max_error.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: { elt -> {a, b} ; etree -> {leaf, node} ; nat -> {s, z} } definition: { (leq_nat, P: { leq_nat(z, n2) <= True leq_nat(s(nn1), s(nn2)) <= leq_nat(nn1, nn2) leq_nat(nn1, nn2) <= leq_nat(s(nn1), s(nn2)) False <= leq_nat(s(nn1), z) } ) (max, F: { leq_nat(n, m) \/ max(n, m, n) <= True max(n, m, m) <= leq_nat(n, m) } eq_nat(_vbb, _wbb) <= max(_tbb, _ubb, _vbb) /\ max(_tbb, _ubb, _wbb) ) (height, F: { height(leaf, z) <= True height(node(e, t1, t2), s(_acb)) \/ leq_nat(_xbb, _ybb) <= height(t1, _acb) /\ height(t1, _xbb) /\ height(t2, _ybb) height(node(e, t1, t2), s(_zbb)) <= height(t1, _xbb) /\ height(t2, _ybb) /\ height(t2, _zbb) /\ leq_nat(_xbb, _ybb) } eq_nat(_ccb, _dcb) <= height(_bcb, _ccb) /\ height(_bcb, _dcb) ) } properties: { leq_nat(_hcb, _gcb) <= height(t1, _ecb) /\ height(t2, _fcb) /\ height(node(e, t1, t2), _hcb) /\ max(_ecb, _fcb, _gcb) } over-approximation: {height, max} under-approximation: {} Clause system for inference is: { height(leaf, z) <= True -> 0 leq_nat(n, m) \/ max(n, m, n) <= True -> 0 leq_nat(z, n2) <= True -> 0 height(node(e, t1, t2), s(_acb)) \/ leq_nat(_xbb, _ybb) <= height(t1, _acb) /\ height(t1, _xbb) /\ height(t2, _ybb) -> 0 leq_nat(_hcb, _gcb) <= height(t1, _ecb) /\ height(t2, _fcb) /\ height(node(e, t1, t2), _hcb) /\ max(_ecb, _fcb, _gcb) -> 0 height(node(e, t1, t2), s(_zbb)) <= height(t1, _xbb) /\ height(t2, _ybb) /\ height(t2, _zbb) /\ leq_nat(_xbb, _ybb) -> 0 max(n, m, m) <= leq_nat(n, m) -> 0 leq_nat(s(nn1), s(nn2)) <= leq_nat(nn1, nn2) -> 0 leq_nat(nn1, nn2) <= leq_nat(s(nn1), s(nn2)) -> 0 False <= leq_nat(s(nn1), z) -> 0 } Solving took 0.038401 seconds. No: Contradictory set of ground constraints: { False <= True height(leaf, z) <= True height(node(a, leaf, leaf), s(z)) <= True leq_nat(s(z), s(z)) <= True leq_nat(z, s(z)) <= True leq_nat(z, z) <= True max(s(z), z, s(z)) <= True max(z, s(z), s(z)) <= True max(z, z, z) <= True False <= leq_nat(s(s(z)), s(z)) False <= leq_nat(s(z), z) } ------------------- STEPS: ------------------------------------------- Step 0, which took 0.006886 s (model generation: 0.006790, model checking: 0.000096): Clauses: { height(leaf, z) <= True -> 0 leq_nat(n, m) \/ max(n, m, n) <= True -> 0 leq_nat(z, n2) <= True -> 0 height(node(e, t1, t2), s(_acb)) \/ leq_nat(_xbb, _ybb) <= height(t1, _acb) /\ height(t1, _xbb) /\ height(t2, _ybb) -> 0 leq_nat(_hcb, _gcb) <= height(t1, _ecb) /\ height(t2, _fcb) /\ height(node(e, t1, t2), _hcb) /\ max(_ecb, _fcb, _gcb) -> 0 height(node(e, t1, t2), s(_zbb)) <= height(t1, _xbb) /\ height(t2, _ybb) /\ height(t2, _zbb) /\ leq_nat(_xbb, _ybb) -> 0 max(n, m, m) <= leq_nat(n, m) -> 0 leq_nat(s(nn1), s(nn2)) <= leq_nat(nn1, nn2) -> 0 leq_nat(nn1, nn2) <= leq_nat(s(nn1), s(nn2)) -> 0 False <= leq_nat(s(nn1), z) -> 0 } Accumulated learning constraints: { } Current best model: |_ name: None height -> [ height : { } ] ; leq_nat -> [ leq_nat : { } ] ; max -> [ max : { } ] -- Equality automata are defined for: {elt, etree, nat} _| Answer of teacher: height(leaf, z) <= True : Yes: { } leq_nat(n, m) \/ max(n, m, n) <= True : Yes: { m -> z ; n -> z } leq_nat(z, n2) <= True : Yes: { n2 -> z } height(node(e, t1, t2), s(_acb)) \/ leq_nat(_xbb, _ybb) <= height(t1, _acb) /\ height(t1, _xbb) /\ height(t2, _ybb) : No: () leq_nat(_hcb, _gcb) <= height(t1, _ecb) /\ height(t2, _fcb) /\ height(node(e, t1, t2), _hcb) /\ max(_ecb, _fcb, _gcb) : No: () height(node(e, t1, t2), s(_zbb)) <= height(t1, _xbb) /\ height(t2, _ybb) /\ height(t2, _zbb) /\ leq_nat(_xbb, _ybb) : No: () max(n, m, m) <= leq_nat(n, m) : No: () leq_nat(s(nn1), s(nn2)) <= leq_nat(nn1, nn2) : No: () leq_nat(nn1, nn2) <= leq_nat(s(nn1), s(nn2)) : No: () False <= leq_nat(s(nn1), z) : No: () ------------------------------------------- Step 1, which took 0.006113 s (model generation: 0.005986, model checking: 0.000127): Clauses: { height(leaf, z) <= True -> 0 leq_nat(n, m) \/ max(n, m, n) <= True -> 0 leq_nat(z, n2) <= True -> 0 height(node(e, t1, t2), s(_acb)) \/ leq_nat(_xbb, _ybb) <= height(t1, _acb) /\ height(t1, _xbb) /\ height(t2, _ybb) -> 0 leq_nat(_hcb, _gcb) <= height(t1, _ecb) /\ height(t2, _fcb) /\ height(node(e, t1, t2), _hcb) /\ max(_ecb, _fcb, _gcb) -> 0 height(node(e, t1, t2), s(_zbb)) <= height(t1, _xbb) /\ height(t2, _ybb) /\ height(t2, _zbb) /\ leq_nat(_xbb, _ybb) -> 0 max(n, m, m) <= leq_nat(n, m) -> 0 leq_nat(s(nn1), s(nn2)) <= leq_nat(nn1, nn2) -> 0 leq_nat(nn1, nn2) <= leq_nat(s(nn1), s(nn2)) -> 0 False <= leq_nat(s(nn1), z) -> 0 } Accumulated learning constraints: { height(leaf, z) <= True leq_nat(z, z) <= True } Current best model: |_ name: None height -> [ height : { height(leaf, z) <= True } ] ; leq_nat -> [ leq_nat : { leq_nat(z, z) <= True } ] ; max -> [ max : { } ] -- Equality automata are defined for: {elt, etree, nat} _| Answer of teacher: height(leaf, z) <= True : No: () leq_nat(n, m) \/ max(n, m, n) <= True : Yes: { m -> z ; n -> s(_pltqw_0) } leq_nat(z, n2) <= True : Yes: { n2 -> s(_sltqw_0) } height(node(e, t1, t2), s(_acb)) \/ leq_nat(_xbb, _ybb) <= height(t1, _acb) /\ height(t1, _xbb) /\ height(t2, _ybb) : No: () leq_nat(_hcb, _gcb) <= height(t1, _ecb) /\ height(t2, _fcb) /\ height(node(e, t1, t2), _hcb) /\ max(_ecb, _fcb, _gcb) : No: () height(node(e, t1, t2), s(_zbb)) <= height(t1, _xbb) /\ height(t2, _ybb) /\ height(t2, _zbb) /\ leq_nat(_xbb, _ybb) : Yes: { _xbb -> z ; _ybb -> z ; _zbb -> z ; t1 -> leaf ; t2 -> leaf } max(n, m, m) <= leq_nat(n, m) : Yes: { m -> z ; n -> z } leq_nat(s(nn1), s(nn2)) <= leq_nat(nn1, nn2) : Yes: { nn1 -> z ; nn2 -> z } leq_nat(nn1, nn2) <= leq_nat(s(nn1), s(nn2)) : No: () False <= leq_nat(s(nn1), z) : No: () ------------------------------------------- Step 2, which took 0.008574 s (model generation: 0.008455, model checking: 0.000119): Clauses: { height(leaf, z) <= True -> 0 leq_nat(n, m) \/ max(n, m, n) <= True -> 0 leq_nat(z, n2) <= True -> 0 height(node(e, t1, t2), s(_acb)) \/ leq_nat(_xbb, _ybb) <= height(t1, _acb) /\ height(t1, _xbb) /\ height(t2, _ybb) -> 0 leq_nat(_hcb, _gcb) <= height(t1, _ecb) /\ height(t2, _fcb) /\ height(node(e, t1, t2), _hcb) /\ max(_ecb, _fcb, _gcb) -> 0 height(node(e, t1, t2), s(_zbb)) <= height(t1, _xbb) /\ height(t2, _ybb) /\ height(t2, _zbb) /\ leq_nat(_xbb, _ybb) -> 0 max(n, m, m) <= leq_nat(n, m) -> 0 leq_nat(s(nn1), s(nn2)) <= leq_nat(nn1, nn2) -> 0 leq_nat(nn1, nn2) <= leq_nat(s(nn1), s(nn2)) -> 0 False <= leq_nat(s(nn1), z) -> 0 } Accumulated learning constraints: { height(leaf, z) <= True height(node(a, leaf, leaf), s(z)) <= True leq_nat(s(z), s(z)) <= True leq_nat(s(z), z) \/ max(s(z), z, s(z)) <= True leq_nat(z, s(z)) <= True leq_nat(z, z) <= True max(z, z, z) <= True } Current best model: |_ name: None height -> [ height : { height(leaf, z) <= True height(node(x_0_0, x_0_1, x_0_2), s(x_1_0)) <= True } ] ; leq_nat -> [ leq_nat : { leq_nat(s(x_0_0), s(x_1_0)) <= True leq_nat(s(x_0_0), z) <= True leq_nat(z, s(x_1_0)) <= True leq_nat(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: {elt, etree, nat} _| Answer of teacher: height(leaf, z) <= True : No: () leq_nat(n, m) \/ max(n, m, n) <= True : No: () leq_nat(z, n2) <= True : No: () height(node(e, t1, t2), s(_acb)) \/ leq_nat(_xbb, _ybb) <= height(t1, _acb) /\ height(t1, _xbb) /\ height(t2, _ybb) : No: () leq_nat(_hcb, _gcb) <= height(t1, _ecb) /\ height(t2, _fcb) /\ height(node(e, t1, t2), _hcb) /\ max(_ecb, _fcb, _gcb) : No: () height(node(e, t1, t2), s(_zbb)) <= height(t1, _xbb) /\ height(t2, _ybb) /\ height(t2, _zbb) /\ leq_nat(_xbb, _ybb) : No: () max(n, m, m) <= leq_nat(n, m) : Yes: { m -> z ; n -> s(_fmtqw_0) } leq_nat(s(nn1), s(nn2)) <= leq_nat(nn1, nn2) : No: () leq_nat(nn1, nn2) <= leq_nat(s(nn1), s(nn2)) : No: () False <= leq_nat(s(nn1), z) : Yes: { } ------------------------------------------- Step 3, which took 0.008163 s (model generation: 0.008052, model checking: 0.000111): Clauses: { height(leaf, z) <= True -> 0 leq_nat(n, m) \/ max(n, m, n) <= True -> 0 leq_nat(z, n2) <= True -> 0 height(node(e, t1, t2), s(_acb)) \/ leq_nat(_xbb, _ybb) <= height(t1, _acb) /\ height(t1, _xbb) /\ height(t2, _ybb) -> 0 leq_nat(_hcb, _gcb) <= height(t1, _ecb) /\ height(t2, _fcb) /\ height(node(e, t1, t2), _hcb) /\ max(_ecb, _fcb, _gcb) -> 0 height(node(e, t1, t2), s(_zbb)) <= height(t1, _xbb) /\ height(t2, _ybb) /\ height(t2, _zbb) /\ leq_nat(_xbb, _ybb) -> 0 max(n, m, m) <= leq_nat(n, m) -> 0 leq_nat(s(nn1), s(nn2)) <= leq_nat(nn1, nn2) -> 0 leq_nat(nn1, nn2) <= leq_nat(s(nn1), s(nn2)) -> 0 False <= leq_nat(s(nn1), z) -> 0 } Accumulated learning constraints: { height(leaf, z) <= True height(node(a, leaf, leaf), s(z)) <= True leq_nat(s(z), s(z)) <= True leq_nat(z, s(z)) <= True leq_nat(z, z) <= True max(s(z), z, s(z)) <= True max(z, z, z) <= True False <= leq_nat(s(z), z) } Current best model: |_ name: None height -> [ height : { height(leaf, z) <= True height(node(x_0_0, x_0_1, x_0_2), s(x_1_0)) <= True } ] ; leq_nat -> [ leq_nat : { leq_nat(s(x_0_0), s(x_1_0)) <= True leq_nat(z, s(x_1_0)) <= True leq_nat(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: {elt, etree, nat} _| Answer of teacher: height(leaf, z) <= True : No: () leq_nat(n, m) \/ max(n, m, n) <= True : No: () leq_nat(z, n2) <= True : No: () height(node(e, t1, t2), s(_acb)) \/ leq_nat(_xbb, _ybb) <= height(t1, _acb) /\ height(t1, _xbb) /\ height(t2, _ybb) : No: () leq_nat(_hcb, _gcb) <= height(t1, _ecb) /\ height(t2, _fcb) /\ height(node(e, t1, t2), _hcb) /\ max(_ecb, _fcb, _gcb) : Yes: { _ecb -> z ; _fcb -> z ; _gcb -> z ; _hcb -> s(_lmtqw_0) ; t1 -> leaf ; t2 -> leaf } height(node(e, t1, t2), s(_zbb)) <= height(t1, _xbb) /\ height(t2, _ybb) /\ height(t2, _zbb) /\ leq_nat(_xbb, _ybb) : No: () max(n, m, m) <= leq_nat(n, m) : Yes: { m -> s(_qmtqw_0) ; n -> z } leq_nat(s(nn1), s(nn2)) <= leq_nat(nn1, nn2) : No: () leq_nat(nn1, nn2) <= leq_nat(s(nn1), s(nn2)) : Yes: { nn1 -> s(_smtqw_0) ; nn2 -> z } False <= leq_nat(s(nn1), z) : No: () Total time: 0.038401 Learner time: 0.029283 Teacher time: 0.000453 Reasons for stopping: No: Contradictory set of ground constraints: { False <= True height(leaf, z) <= True height(node(a, leaf, leaf), s(z)) <= True leq_nat(s(z), s(z)) <= True leq_nat(z, s(z)) <= True leq_nat(z, z) <= True max(s(z), z, s(z)) <= True max(z, s(z), s(z)) <= True max(z, z, z) <= True False <= leq_nat(s(s(z)), s(z)) False <= leq_nat(s(z), z) }