Inference procedure has parameters: Ice fuel: 200 Timeout: 60s Convolution: left Learning problem is: env: { nat -> {s, z} } definition: { (double, F: {() -> double([z, z]) (double([nn, _iw])) -> double([s(nn), s(s(_iw))])} (double([_jw, _kw]) /\ double([_jw, _lw])) -> eq_nat([_kw, _lw]) ) (le, P: {() -> le([z, s(nn2)]) (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) (le([s(nn1), z])) -> BOT (le([z, z])) -> BOT} ) } properties: {(double([n, _mw]) /\ le([z, n])) -> le([n, _mw])} over-approximation: {double} under-approximation: {} Clause system for inference is: { () -> double([z, z]) -> 0 () -> le([z, s(nn2)]) -> 0 (double([n, _mw]) /\ le([z, n])) -> le([n, _mw]) -> 0 (double([nn, _iw])) -> double([s(nn), s(s(_iw))]) -> 0 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 0 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 0 (le([s(nn1), z])) -> BOT -> 0 (le([z, z])) -> BOT -> 0 } Solving took 0.126960 seconds. Proved Model: |_ { double -> {{{ Q={q_gen_5954, q_gen_5956, q_gen_5958, q_gen_5959}, Q_f={q_gen_5954, q_gen_5956}, Delta= { (q_gen_5958) -> q_gen_5958 () -> q_gen_5958 () -> q_gen_5954 (q_gen_5956) -> q_gen_5956 (q_gen_5958) -> q_gen_5956 (q_gen_5954) -> q_gen_5959 (q_gen_5959) -> q_gen_5959 } Datatype: Convolution form: left }}} ; le -> {{{ Q={q_gen_5952, q_gen_5953, q_gen_5960}, Q_f={q_gen_5952}, Delta= { (q_gen_5953) -> q_gen_5953 () -> q_gen_5953 (q_gen_5952) -> q_gen_5952 (q_gen_5953) -> q_gen_5952 (q_gen_5960) -> q_gen_5960 () -> q_gen_5960 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.019163 s (model generation: 0.019026, model checking: 0.000137): Model: |_ { double -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: left }}} ; le -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> double([z, z]) -> 0 () -> le([z, s(nn2)]) -> 3 (double([n, _mw]) /\ le([z, n])) -> le([n, _mw]) -> 1 (double([nn, _iw])) -> double([s(nn), s(s(_iw))]) -> 1 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 1 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 1 (le([s(nn1), z])) -> BOT -> 1 (le([z, z])) -> BOT -> 1 } Sat witness: Found: (() -> le([z, s(nn2)]), { nn2 -> z }) ------------------------------------------- Step 1, which took 0.009227 s (model generation: 0.009184, model checking: 0.000043): Model: |_ { double -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: left }}} ; le -> {{{ Q={q_gen_5952, q_gen_5953}, Q_f={q_gen_5952}, Delta= { () -> q_gen_5953 (q_gen_5953) -> q_gen_5952 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> double([z, z]) -> 3 () -> le([z, s(nn2)]) -> 3 (double([n, _mw]) /\ le([z, n])) -> le([n, _mw]) -> 1 (double([nn, _iw])) -> double([s(nn), s(s(_iw))]) -> 1 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 1 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 1 (le([s(nn1), z])) -> BOT -> 1 (le([z, z])) -> BOT -> 1 } Sat witness: Found: (() -> double([z, z]), { }) ------------------------------------------- Step 2, which took 0.008595 s (model generation: 0.008461, model checking: 0.000134): Model: |_ { double -> {{{ Q={q_gen_5954}, Q_f={q_gen_5954}, Delta= { () -> q_gen_5954 } Datatype: Convolution form: left }}} ; le -> {{{ Q={q_gen_5952, q_gen_5953}, Q_f={q_gen_5952}, Delta= { () -> q_gen_5953 (q_gen_5953) -> q_gen_5952 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> double([z, z]) -> 3 () -> le([z, s(nn2)]) -> 3 (double([n, _mw]) /\ le([z, n])) -> le([n, _mw]) -> 1 (double([nn, _iw])) -> double([s(nn), s(s(_iw))]) -> 1 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 4 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 2 (le([s(nn1), z])) -> BOT -> 2 (le([z, z])) -> BOT -> 2 } Sat witness: Found: ((le([nn1, nn2])) -> le([s(nn1), s(nn2)]), { nn1 -> z ; nn2 -> s(z) }) ------------------------------------------- Step 3, which took 0.009084 s (model generation: 0.008966, model checking: 0.000118): Model: |_ { double -> {{{ Q={q_gen_5954}, Q_f={q_gen_5954}, Delta= { () -> q_gen_5954 } Datatype: Convolution form: left }}} ; le -> {{{ Q={q_gen_5952, q_gen_5953}, Q_f={q_gen_5952}, Delta= { () -> q_gen_5953 (q_gen_5952) -> q_gen_5952 (q_gen_5953) -> q_gen_5952 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> double([z, z]) -> 3 () -> le([z, s(nn2)]) -> 3 (double([n, _mw]) /\ le([z, n])) -> le([n, _mw]) -> 1 (double([nn, _iw])) -> double([s(nn), s(s(_iw))]) -> 4 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 4 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 2 (le([s(nn1), z])) -> BOT -> 2 (le([z, z])) -> BOT -> 2 } Sat witness: Found: ((double([nn, _iw])) -> double([s(nn), s(s(_iw))]), { _iw -> z ; nn -> z }) ------------------------------------------- Step 4, which took 0.009912 s (model generation: 0.009817, model checking: 0.000095): Model: |_ { double -> {{{ Q={q_gen_5954, q_gen_5958}, Q_f={q_gen_5954}, Delta= { () -> q_gen_5958 (q_gen_5954) -> q_gen_5954 (q_gen_5958) -> q_gen_5954 () -> q_gen_5954 } Datatype: Convolution form: left }}} ; le -> {{{ Q={q_gen_5952, q_gen_5953}, Q_f={q_gen_5952}, Delta= { () -> q_gen_5953 (q_gen_5952) -> q_gen_5952 (q_gen_5953) -> q_gen_5952 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> double([z, z]) -> 3 () -> le([z, s(nn2)]) -> 3 (double([n, _mw]) /\ le([z, n])) -> le([n, _mw]) -> 4 (double([nn, _iw])) -> double([s(nn), s(s(_iw))]) -> 4 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 4 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 2 (le([s(nn1), z])) -> BOT -> 2 (le([z, z])) -> BOT -> 2 } Sat witness: Found: ((double([n, _mw]) /\ le([z, n])) -> le([n, _mw]), { _mw -> s(z) ; n -> s(z) }) ------------------------------------------- Step 5, which took 0.009730 s (model generation: 0.009712, model checking: 0.000018): Model: |_ { double -> {{{ Q={q_gen_5954, q_gen_5958}, Q_f={q_gen_5954}, Delta= { () -> q_gen_5958 (q_gen_5954) -> q_gen_5954 (q_gen_5958) -> q_gen_5954 () -> q_gen_5954 } Datatype: Convolution form: left }}} ; le -> {{{ Q={q_gen_5952, q_gen_5953}, Q_f={q_gen_5952}, Delta= { () -> q_gen_5953 (q_gen_5952) -> q_gen_5952 (q_gen_5953) -> q_gen_5952 () -> q_gen_5952 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> double([z, z]) -> 3 () -> le([z, s(nn2)]) -> 3 (double([n, _mw]) /\ le([z, n])) -> le([n, _mw]) -> 4 (double([nn, _iw])) -> double([s(nn), s(s(_iw))]) -> 4 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 4 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 2 (le([s(nn1), z])) -> BOT -> 2 (le([z, z])) -> BOT -> 5 } Sat witness: Found: ((le([z, z])) -> BOT, { }) ------------------------------------------- Step 6, which took 0.008872 s (model generation: 0.008795, model checking: 0.000077): Model: |_ { double -> {{{ Q={q_gen_5954, q_gen_5958}, Q_f={q_gen_5954}, Delta= { () -> q_gen_5958 (q_gen_5954) -> q_gen_5954 (q_gen_5958) -> q_gen_5954 () -> q_gen_5954 } Datatype: Convolution form: left }}} ; le -> {{{ Q={q_gen_5952, q_gen_5953, q_gen_5961}, Q_f={q_gen_5952}, Delta= { () -> q_gen_5953 (q_gen_5952) -> q_gen_5952 (q_gen_5961) -> q_gen_5952 (q_gen_5953) -> q_gen_5952 () -> q_gen_5961 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> double([z, z]) -> 3 () -> le([z, s(nn2)]) -> 3 (double([n, _mw]) /\ le([z, n])) -> le([n, _mw]) -> 4 (double([nn, _iw])) -> double([s(nn), s(s(_iw))]) -> 4 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 4 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 5 (le([s(nn1), z])) -> BOT -> 3 (le([z, z])) -> BOT -> 5 } Sat witness: Found: ((le([s(nn1), s(nn2)])) -> le([nn1, nn2]), { nn1 -> z ; nn2 -> z }) ------------------------------------------- Step 7, which took 0.012454 s (model generation: 0.012346, model checking: 0.000108): Model: |_ { double -> {{{ Q={q_gen_5954, q_gen_5957, q_gen_5958}, Q_f={q_gen_5954}, Delta= { () -> q_gen_5958 (q_gen_5957) -> q_gen_5954 () -> q_gen_5954 (q_gen_5954) -> q_gen_5957 (q_gen_5958) -> q_gen_5957 } Datatype: Convolution form: left }}} ; le -> {{{ Q={q_gen_5952, q_gen_5953, q_gen_5960}, Q_f={q_gen_5952}, Delta= { () -> q_gen_5953 (q_gen_5952) -> q_gen_5952 (q_gen_5953) -> q_gen_5952 (q_gen_5960) -> q_gen_5960 () -> q_gen_5960 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> double([z, z]) -> 3 () -> le([z, s(nn2)]) -> 6 (double([n, _mw]) /\ le([z, n])) -> le([n, _mw]) -> 4 (double([nn, _iw])) -> double([s(nn), s(s(_iw))]) -> 4 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 4 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 5 (le([s(nn1), z])) -> BOT -> 4 (le([z, z])) -> BOT -> 5 } Sat witness: Found: (() -> le([z, s(nn2)]), { nn2 -> s(z) }) ------------------------------------------- Step 8, which took 0.014050 s (model generation: 0.013723, model checking: 0.000327): Model: |_ { double -> {{{ Q={q_gen_5954, q_gen_5957, q_gen_5958}, Q_f={q_gen_5954}, Delta= { () -> q_gen_5958 (q_gen_5957) -> q_gen_5954 () -> q_gen_5954 (q_gen_5954) -> q_gen_5957 (q_gen_5958) -> q_gen_5957 } Datatype: Convolution form: left }}} ; le -> {{{ Q={q_gen_5952, q_gen_5953, q_gen_5960}, Q_f={q_gen_5952}, Delta= { (q_gen_5953) -> q_gen_5953 () -> q_gen_5953 (q_gen_5952) -> q_gen_5952 (q_gen_5953) -> q_gen_5952 (q_gen_5960) -> q_gen_5960 () -> q_gen_5960 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> double([z, z]) -> 4 () -> le([z, s(nn2)]) -> 6 (double([n, _mw]) /\ le([z, n])) -> le([n, _mw]) -> 4 (double([nn, _iw])) -> double([s(nn), s(s(_iw))]) -> 7 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 5 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 5 (le([s(nn1), z])) -> BOT -> 5 (le([z, z])) -> BOT -> 5 } Sat witness: Found: ((double([nn, _iw])) -> double([s(nn), s(s(_iw))]), { _iw -> s(s(z)) ; nn -> s(z) }) ------------------------------------------- Step 9, which took 0.014439 s (model generation: 0.014338, model checking: 0.000101): Model: |_ { double -> {{{ Q={q_gen_5954, q_gen_5957, q_gen_5958, q_gen_5967}, Q_f={q_gen_5954}, Delta= { () -> q_gen_5958 (q_gen_5958) -> q_gen_5967 (q_gen_5957) -> q_gen_5954 (q_gen_5967) -> q_gen_5954 () -> q_gen_5954 (q_gen_5954) -> q_gen_5957 (q_gen_5958) -> q_gen_5957 } Datatype: Convolution form: left }}} ; le -> {{{ Q={q_gen_5952, q_gen_5953, q_gen_5960}, Q_f={q_gen_5952}, Delta= { (q_gen_5953) -> q_gen_5953 () -> q_gen_5953 (q_gen_5952) -> q_gen_5952 (q_gen_5953) -> q_gen_5952 (q_gen_5960) -> q_gen_5960 () -> q_gen_5960 } Datatype: Convolution form: left }}} } -- Equality automata are defined for: {eq_nat} _| Teacher's answer: New clause system: { () -> double([z, z]) -> 4 () -> le([z, s(nn2)]) -> 6 (double([n, _mw]) /\ le([z, n])) -> le([n, _mw]) -> 7 (double([nn, _iw])) -> double([s(nn), s(s(_iw))]) -> 7 (le([nn1, nn2])) -> le([s(nn1), s(nn2)]) -> 5 (le([s(nn1), s(nn2)])) -> le([nn1, nn2]) -> 5 (le([s(nn1), z])) -> BOT -> 5 (le([z, z])) -> BOT -> 5 } Sat witness: Found: ((double([n, _mw]) /\ le([z, n])) -> le([n, _mw]), { _mw -> s(s(z)) ; n -> s(s(z)) }) Total time: 0.126960 Reason for stopping: Proved