Solving ../../benchmarks/smtlib/true/append_not_null_elt.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} ; eltlist -> {cons, nil} } definition: { (append, F: { append(nil, l2, l2) <= True append(cons(h1, t1), l2, cons(h1, _yla)) <= append(t1, l2, _yla) } eq_eltlist(_bma, _cma) <= append(_zla, _ama, _bma) /\ append(_zla, _ama, _cma) ) (not_null, P: { not_null(cons(x, ll)) <= True False <= not_null(nil) } ) } properties: { not_null(_dma) <= append(l1, l2, _dma) /\ not_null(l1) not_null(_ema) <= append(l1, l2, _ema) /\ not_null(l2) } over-approximation: {append} under-approximation: {} Clause system for inference is: { append(nil, l2, l2) <= True -> 0 not_null(cons(x, ll)) <= True -> 0 not_null(_dma) <= append(l1, l2, _dma) /\ not_null(l1) -> 0 not_null(_ema) <= append(l1, l2, _ema) /\ not_null(l2) -> 0 append(cons(h1, t1), l2, cons(h1, _yla)) <= append(t1, l2, _yla) -> 0 False <= not_null(nil) -> 0 } Solving took 0.031711 seconds. Yes: |_ name: None append -> [ append : { append(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True append(cons(x_0_0, x_0_1), nil, cons(x_2_0, x_2_1)) <= True append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True append(nil, nil, nil) <= True } ] ; not_null -> [ not_null : { not_null(cons(x_0_0, x_0_1)) <= True } ] -- Equality automata are defined for: {elt, eltlist} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.006007 s (model generation: 0.005923, model checking: 0.000084): Clauses: { append(nil, l2, l2) <= True -> 0 not_null(cons(x, ll)) <= True -> 0 not_null(_dma) <= append(l1, l2, _dma) /\ not_null(l1) -> 0 not_null(_ema) <= append(l1, l2, _ema) /\ not_null(l2) -> 0 append(cons(h1, t1), l2, cons(h1, _yla)) <= append(t1, l2, _yla) -> 0 False <= not_null(nil) -> 0 } Accumulated learning constraints: { } Current best model: |_ name: None append -> [ append : { } ] ; not_null -> [ not_null : { } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: append(nil, l2, l2) <= True : Yes: { l2 -> nil } not_null(cons(x, ll)) <= True : Yes: { } not_null(_dma) <= append(l1, l2, _dma) /\ not_null(l1) : No: () not_null(_ema) <= append(l1, l2, _ema) /\ not_null(l2) : No: () append(cons(h1, t1), l2, cons(h1, _yla)) <= append(t1, l2, _yla) : No: () False <= not_null(nil) : No: () ------------------------------------------- Step 1, which took 0.006419 s (model generation: 0.006373, model checking: 0.000046): Clauses: { append(nil, l2, l2) <= True -> 0 not_null(cons(x, ll)) <= True -> 0 not_null(_dma) <= append(l1, l2, _dma) /\ not_null(l1) -> 0 not_null(_ema) <= append(l1, l2, _ema) /\ not_null(l2) -> 0 append(cons(h1, t1), l2, cons(h1, _yla)) <= append(t1, l2, _yla) -> 0 False <= not_null(nil) -> 0 } Accumulated learning constraints: { append(nil, nil, nil) <= True not_null(cons(a, nil)) <= True } Current best model: |_ name: None append -> [ append : { append(nil, nil, nil) <= True } ] ; not_null -> [ not_null : { not_null(cons(x_0_0, x_0_1)) <= True } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: append(nil, l2, l2) <= True : Yes: { l2 -> cons(_fcud_0, _fcud_1) } not_null(cons(x, ll)) <= True : No: () not_null(_dma) <= append(l1, l2, _dma) /\ not_null(l1) : No: () not_null(_ema) <= append(l1, l2, _ema) /\ not_null(l2) : No: () append(cons(h1, t1), l2, cons(h1, _yla)) <= append(t1, l2, _yla) : Yes: { _yla -> nil ; l2 -> nil ; t1 -> nil } False <= not_null(nil) : No: () ------------------------------------------- Step 2, which took 0.007968 s (model generation: 0.007901, model checking: 0.000067): Clauses: { append(nil, l2, l2) <= True -> 0 not_null(cons(x, ll)) <= True -> 0 not_null(_dma) <= append(l1, l2, _dma) /\ not_null(l1) -> 0 not_null(_ema) <= append(l1, l2, _ema) /\ not_null(l2) -> 0 append(cons(h1, t1), l2, cons(h1, _yla)) <= append(t1, l2, _yla) -> 0 False <= not_null(nil) -> 0 } Accumulated learning constraints: { append(cons(a, nil), nil, cons(a, nil)) <= True append(nil, cons(a, nil), cons(a, nil)) <= True append(nil, nil, nil) <= True not_null(cons(a, nil)) <= True } Current best model: |_ name: None append -> [ append : { append(cons(x_0_0, x_0_1), nil, cons(x_2_0, x_2_1)) <= True append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True append(nil, nil, nil) <= True } ] ; not_null -> [ not_null : { not_null(cons(x_0_0, x_0_1)) <= True } ] -- Equality automata are defined for: {elt, eltlist} _| Answer of teacher: append(nil, l2, l2) <= True : No: () not_null(cons(x, ll)) <= True : No: () not_null(_dma) <= append(l1, l2, _dma) /\ not_null(l1) : No: () not_null(_ema) <= append(l1, l2, _ema) /\ not_null(l2) : No: () append(cons(h1, t1), l2, cons(h1, _yla)) <= append(t1, l2, _yla) : Yes: { _yla -> cons(_jcud_0, _jcud_1) ; l2 -> cons(_kcud_0, _kcud_1) ; t1 -> nil } False <= not_null(nil) : No: () Total time: 0.031711 Learner time: 0.020197 Teacher time: 0.000197 Reasons for stopping: Yes: |_ name: None append -> [ append : { append(cons(x_0_0, x_0_1), cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True append(cons(x_0_0, x_0_1), nil, cons(x_2_0, x_2_1)) <= True append(nil, cons(x_1_0, x_1_1), cons(x_2_0, x_2_1)) <= True append(nil, nil, nil) <= True } ] ; not_null -> [ not_null : { not_null(cons(x_0_0, x_0_1)) <= True } ] -- Equality automata are defined for: {elt, eltlist} _|