/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.pl /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.pl # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Left Termination of the query pattern countstack(g,a) w.r.t. the given Prolog program could successfully be proven: (0) Prolog (1) PrologToDTProblemTransformerProof [SOUND, 65 ms] (2) TRIPLES (3) TriplesToPiDPProof [SOUND, 0 ms] (4) PiDP (5) DependencyGraphProof [EQUIVALENT, 0 ms] (6) PiDP (7) PiDPToQDPProof [SOUND, 0 ms] (8) QDP (9) UsableRulesReductionPairsProof [EQUIVALENT, 10 ms] (10) QDP (11) PisEmptyProof [EQUIVALENT, 0 ms] (12) YES ---------------------------------------- (0) Obligation: Clauses: countstack(empty, 0). countstack(S, X) :- ','(no(empty_stack(S)), ','(pop(S, nil), ','(popped(S, Pd), countstack(Pd, X)))). countstack(S, s(X)) :- ','(no(empty_stack(S)), ','(pop(S, P), ','(no(empty_list(P)), ','(head(P, H), ','(tail(P, T), ','(popped(S, Pd), countstack(push(H, push(T, Pd)), X))))))). pop(empty, X1). pop(push(P, X2), P). popped(empty, empty). popped(push(X3, Pd), Pd). head(nil, X4). head(cons(H, X5), H). tail(nil, nil). tail(cons(X6, T), T). empty_stack(empty). empty_list(nil). no(X) :- ','(X, ','(!, failure(a))). no(X7). failure(b). Query: countstack(g,a) ---------------------------------------- (1) PrologToDTProblemTransformerProof (SOUND) Built DT problem from termination graph DT10. { "root": 4, "program": { "directives": [], "clauses": [ [ "(countstack (empty) (0))", null ], [ "(countstack S X)", "(',' (no (empty_stack S)) (',' (pop S (nil)) (',' (popped S Pd) (countstack Pd X))))" ], [ "(countstack S (s X))", "(',' (no (empty_stack S)) (',' (pop S P) (',' (no (empty_list P)) (',' (head P H) (',' (tail P T) (',' (popped S Pd) (countstack (push H (push T Pd)) X)))))))" ], [ "(pop (empty) X1)", null ], [ "(pop (push P X2) P)", null ], [ "(popped (empty) (empty))", null ], [ "(popped (push X3 Pd) Pd)", null ], [ "(head (nil) X4)", null ], [ "(head (cons H X5) H)", null ], [ "(tail (nil) (nil))", null ], [ "(tail (cons X6 T) T)", null ], [ "(empty_stack (empty))", null ], [ "(empty_list (nil))", null ], [ "(no X)", "(',' X (',' (!) (failure (a))))" ], [ "(no X7)", null ], [ "(failure (b))", null ] ] }, "graph": { "nodes": { "88": { "goal": [ { "clause": 13, "scope": 14, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) X51) (',' (no (empty_list X51)) (',' (head X51 X52) (',' (tail X51 X53) (',' (popped (empty) X54) (countstack (push X52 (push X53 X54)) T21)))))))" }, { "clause": 14, "scope": 14, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) X51) (',' (no (empty_list X51)) (',' (head X51 X52) (',' (tail X51 X53) (',' (popped (empty) X54) (countstack (push X52 (push X53 X54)) T21)))))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X51", "X52", "X53", "X54" ], "exprvars": [] } }, "190": { "goal": [ { "clause": 9, "scope": 29, "term": "(',' (tail (cons T65 T66) X88) (',' (popped (push (cons T65 T66) T54) X89) (countstack (push T65 (push X88 X89)) T42)))" }, { "clause": 10, "scope": 29, "term": "(',' (tail (cons T65 T66) X88) (',' (popped (push (cons T65 T66) T54) X89) (countstack (push T65 (push X88 X89)) T42)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T54", "T65", "T66" ], "free": [ "X88", "X89" ], "exprvars": [] } }, "191": { "goal": [{ "clause": 10, "scope": 29, "term": "(',' (tail (cons T65 T66) X88) (',' (popped (push (cons T65 T66) T54) X89) (countstack (push T65 (push X88 X89)) T42)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T54", "T65", "T66" ], "free": [ "X88", "X89" ], "exprvars": [] } }, "192": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (popped (push (cons T71 T72) T54) X89) (countstack (push T71 (push T72 X89)) T42))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T54", "T71", "T72" ], "free": ["X89"], "exprvars": [] } }, "193": { "goal": [ { "clause": 5, "scope": 30, "term": "(',' (popped (push (cons T71 T72) T54) X89) (countstack (push T71 (push T72 X89)) T42))" }, { "clause": 6, "scope": 30, "term": "(',' (popped (push (cons T71 T72) T54) X89) (countstack (push T71 (push T72 X89)) T42))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T54", "T71", "T72" ], "free": ["X89"], "exprvars": [] } }, "type": "Nodes", "194": { "goal": [{ "clause": 6, "scope": 30, "term": "(',' (popped (push (cons T71 T72) T54) X89) (countstack (push T71 (push T72 X89)) T42))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T54", "T71", "T72" ], "free": ["X89"], "exprvars": [] } }, "110": { "goal": [{ "clause": 14, "scope": 10, "term": "(',' (no (empty_stack T17)) (',' (pop T17 (nil)) (',' (popped T17 X37) (countstack X37 T14))))" }], "kb": { "nonunifying": [ [ "(countstack T17 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T17)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T17"], "free": ["X37"], "exprvars": [] } }, "111": { "goal": [ { "clause": -1, "scope": 10, "term": null }, { "clause": 2, "scope": 1, "term": "(countstack T17 T2)" } ], "kb": { "nonunifying": [ [ "(countstack T17 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T17)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T17"], "free": [], "exprvars": [] } }, "199": { "goal": [{ "clause": -1, "scope": -1, "term": "(countstack (push T79 (push T80 T81)) T42)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T79", "T80", "T81" ], "free": [], "exprvars": [] } }, "113": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (pop T26 (nil)) (',' (popped T26 X37) (countstack X37 T14)))" }], "kb": { "nonunifying": [ [ "(countstack T26 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T26)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T26"], "free": ["X37"], "exprvars": [] } }, "116": { "goal": [ { "clause": 3, "scope": 18, "term": "(',' (pop T26 (nil)) (',' (popped T26 X37) (countstack X37 T14)))" }, { "clause": 4, "scope": 18, "term": "(',' (pop T26 (nil)) (',' (popped T26 X37) (countstack X37 T14)))" } ], "kb": { "nonunifying": [ [ "(countstack T26 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T26)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T26"], "free": ["X37"], "exprvars": [] } }, "91": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (',' (call (empty_stack (empty))) (',' (!_14) (failure (a)))) (',' (pop (empty) X51) (',' (no (empty_list X51)) (',' (head X51 X52) (',' (tail X51 X53) (',' (popped (empty) X54) (countstack (push X52 (push X53 X54)) T21)))))))" }, { "clause": 14, "scope": 14, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) X51) (',' (no (empty_list X51)) (',' (head X51 X52) (',' (tail X51 X53) (',' (popped (empty) X54) (countstack (push X52 (push X53 X54)) T21)))))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X51", "X52", "X53", "X54" ], "exprvars": [] } }, "118": { "goal": [{ "clause": 4, "scope": 18, "term": "(',' (pop T26 (nil)) (',' (popped T26 X37) (countstack X37 T14)))" }], "kb": { "nonunifying": [ [ "(countstack T26 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T26)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T26"], "free": ["X37"], "exprvars": [] } }, "93": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (empty_stack (empty)) (',' (',' (!_14) (failure (a))) (',' (pop (empty) X51) (',' (no (empty_list X51)) (',' (head X51 X52) (',' (tail X51 X53) (',' (popped (empty) X54) (countstack (push X52 (push X53 X54)) T21))))))))" }, { "clause": -1, "scope": 15, "term": null }, { "clause": 14, "scope": 14, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) X51) (',' (no (empty_list X51)) (',' (head X51 X52) (',' (tail X51 X53) (',' (popped (empty) X54) (countstack (push X52 (push X53 X54)) T21)))))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X51", "X52", "X53", "X54" ], "exprvars": [] } }, "95": { "goal": [ { "clause": 11, "scope": 16, "term": "(',' (empty_stack (empty)) (',' (',' (!_14) (failure (a))) (',' (pop (empty) X51) (',' (no (empty_list X51)) (',' (head X51 X52) (',' (tail X51 X53) (',' (popped (empty) X54) (countstack (push X52 (push X53 X54)) T21))))))))" }, { "clause": -1, "scope": 16, "term": null }, { "clause": -1, "scope": 15, "term": null }, { "clause": 14, "scope": 14, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) X51) (',' (no (empty_list X51)) (',' (head X51 X52) (',' (tail X51 X53) (',' (popped (empty) X54) (countstack (push X52 (push X53 X54)) T21)))))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X51", "X52", "X53", "X54" ], "exprvars": [] } }, "98": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (',' (!_14) (failure (a))) (',' (pop (empty) X51) (',' (no (empty_list X51)) (',' (head X51 X52) (',' (tail X51 X53) (',' (popped (empty) X54) (countstack (push X52 (push X53 X54)) T21)))))))" }, { "clause": -1, "scope": 16, "term": null }, { "clause": -1, "scope": 15, "term": null }, { "clause": 14, "scope": 14, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) X51) (',' (no (empty_list X51)) (',' (head X51 X52) (',' (tail X51 X53) (',' (popped (empty) X54) (countstack (push X52 (push X53 X54)) T21)))))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X51", "X52", "X53", "X54" ], "exprvars": [] } }, "12": { "goal": [ { "clause": -1, "scope": -1, "term": "(true)" }, { "clause": 1, "scope": 1, "term": "(countstack (empty) T2)" }, { "clause": 2, "scope": 1, "term": "(countstack (empty) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "14": { "goal": [ { "clause": 1, "scope": 1, "term": "(countstack T1 T2)" }, { "clause": 2, "scope": 1, "term": "(countstack T1 T2)" } ], "kb": { "nonunifying": [[ "(countstack T1 T2)", "(countstack (empty) (0))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "17": { "goal": [ { "clause": 1, "scope": 1, "term": "(countstack (empty) T2)" }, { "clause": 2, "scope": 1, "term": "(countstack (empty) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "120": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (popped (push (nil) T32) X37) (countstack X37 T14))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T32"], "free": ["X37"], "exprvars": [] } }, "122": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "124": { "goal": [ { "clause": 5, "scope": 19, "term": "(',' (popped (push (nil) T32) X37) (countstack X37 T14))" }, { "clause": 6, "scope": 19, "term": "(',' (popped (push (nil) T32) X37) (countstack X37 T14))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T32"], "free": ["X37"], "exprvars": [] } }, "4": { "goal": [{ "clause": -1, "scope": -1, "term": "(countstack T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "125": { "goal": [{ "clause": 6, "scope": 19, "term": "(',' (popped (push (nil) T32) X37) (countstack X37 T14))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T32"], "free": ["X37"], "exprvars": [] } }, "5": { "goal": [ { "clause": 0, "scope": 1, "term": "(countstack T1 T2)" }, { "clause": 1, "scope": 1, "term": "(countstack T1 T2)" }, { "clause": 2, "scope": 1, "term": "(countstack T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "129": { "goal": [{ "clause": -1, "scope": -1, "term": "(countstack T35 T14)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T35"], "free": [], "exprvars": [] } }, "130": { "goal": [{ "clause": 2, "scope": 1, "term": "(countstack T17 T2)" }], "kb": { "nonunifying": [ [ "(countstack T17 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T17)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T17"], "free": [], "exprvars": [] } }, "132": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (no (empty_stack T40)) (',' (pop T40 X86) (',' (no (empty_list X86)) (',' (head X86 X87) (',' (tail X86 X88) (',' (popped T40 X89) (countstack (push X87 (push X88 X89)) T42)))))))" }], "kb": { "nonunifying": [ [ "(countstack T40 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T40)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": [ "X86", "X87", "X88", "X89" ], "exprvars": [] } }, "133": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "134": { "goal": [ { "clause": 13, "scope": 20, "term": "(',' (no (empty_stack T40)) (',' (pop T40 X86) (',' (no (empty_list X86)) (',' (head X86 X87) (',' (tail X86 X88) (',' (popped T40 X89) (countstack (push X87 (push X88 X89)) T42)))))))" }, { "clause": 14, "scope": 20, "term": "(',' (no (empty_stack T40)) (',' (pop T40 X86) (',' (no (empty_list X86)) (',' (head X86 X87) (',' (tail X86 X88) (',' (popped T40 X89) (countstack (push X87 (push X88 X89)) T42)))))))" } ], "kb": { "nonunifying": [ [ "(countstack T40 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T40)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T40"], "free": [ "X86", "X87", "X88", "X89" ], "exprvars": [] } }, "135": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (',' (call (empty_stack T45)) (',' (!_20) (failure (a)))) (',' (pop T45 X86) (',' (no (empty_list X86)) (',' (head X86 X87) (',' (tail X86 X88) (',' (popped T45 X89) (countstack (push X87 (push X88 X89)) T42)))))))" }, { "clause": 14, "scope": 20, "term": "(',' (no (empty_stack T45)) (',' (pop T45 X86) (',' (no (empty_list X86)) (',' (head X86 X87) (',' (tail X86 X88) (',' (popped T45 X89) (countstack (push X87 (push X88 X89)) T42)))))))" } ], "kb": { "nonunifying": [ [ "(countstack T45 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T45)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T45"], "free": [ "X86", "X87", "X88", "X89" ], "exprvars": [] } }, "139": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (empty_stack T45) (',' (',' (!_20) (failure (a))) (',' (pop T45 X86) (',' (no (empty_list X86)) (',' (head X86 X87) (',' (tail X86 X88) (',' (popped T45 X89) (countstack (push X87 (push X88 X89)) T42))))))))" }, { "clause": -1, "scope": 21, "term": null }, { "clause": 14, "scope": 20, "term": "(',' (no (empty_stack T45)) (',' (pop T45 X86) (',' (no (empty_list X86)) (',' (head X86 X87) (',' (tail X86 X88) (',' (popped T45 X89) (countstack (push X87 (push X88 X89)) T42)))))))" } ], "kb": { "nonunifying": [ [ "(countstack T45 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T45)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T45"], "free": [ "X86", "X87", "X88", "X89" ], "exprvars": [] } }, "30": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) (nil)) (',' (popped (empty) X12) (countstack X12 T5))))" }, { "clause": 2, "scope": 1, "term": "(countstack (empty) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "32": { "goal": [ { "clause": 13, "scope": 2, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) (nil)) (',' (popped (empty) X12) (countstack X12 T5))))" }, { "clause": 14, "scope": 2, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) (nil)) (',' (popped (empty) X12) (countstack X12 T5))))" }, { "clause": -1, "scope": 2, "term": null }, { "clause": 2, "scope": 1, "term": "(countstack (empty) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "37": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (',' (call (empty_stack (empty))) (',' (!_2) (failure (a)))) (',' (pop (empty) (nil)) (',' (popped (empty) X12) (countstack X12 T5))))" }, { "clause": 14, "scope": 2, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) (nil)) (',' (popped (empty) X12) (countstack X12 T5))))" }, { "clause": -1, "scope": 2, "term": null }, { "clause": 2, "scope": 1, "term": "(countstack (empty) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "39": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (empty_stack (empty)) (',' (',' (!_2) (failure (a))) (',' (pop (empty) (nil)) (',' (popped (empty) X12) (countstack X12 T5)))))" }, { "clause": -1, "scope": 3, "term": null }, { "clause": 14, "scope": 2, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) (nil)) (',' (popped (empty) X12) (countstack X12 T5))))" }, { "clause": -1, "scope": 2, "term": null }, { "clause": 2, "scope": 1, "term": "(countstack (empty) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "141": { "goal": [ { "clause": 11, "scope": 22, "term": "(',' (empty_stack T45) (',' (',' (!_20) (failure (a))) (',' (pop T45 X86) (',' (no (empty_list X86)) (',' (head X86 X87) (',' (tail X86 X88) (',' (popped T45 X89) (countstack (push X87 (push X88 X89)) T42))))))))" }, { "clause": -1, "scope": 22, "term": null }, { "clause": -1, "scope": 21, "term": null }, { "clause": 14, "scope": 20, "term": "(',' (no (empty_stack T45)) (',' (pop T45 X86) (',' (no (empty_list X86)) (',' (head X86 X87) (',' (tail X86 X88) (',' (popped T45 X89) (countstack (push X87 (push X88 X89)) T42)))))))" } ], "kb": { "nonunifying": [ [ "(countstack T45 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T45)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T45"], "free": [ "X86", "X87", "X88", "X89" ], "exprvars": [] } }, "142": { "goal": [ { "clause": -1, "scope": 22, "term": null }, { "clause": -1, "scope": 21, "term": null }, { "clause": 14, "scope": 20, "term": "(',' (no (empty_stack T45)) (',' (pop T45 X86) (',' (no (empty_list X86)) (',' (head X86 X87) (',' (tail X86 X88) (',' (popped T45 X89) (countstack (push X87 (push X88 X89)) T42)))))))" } ], "kb": { "nonunifying": [ [ "(countstack T45 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T45)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T45"], "free": [ "X86", "X87", "X88", "X89" ], "exprvars": [] } }, "147": { "goal": [ { "clause": -1, "scope": 21, "term": null }, { "clause": 14, "scope": 20, "term": "(',' (no (empty_stack T45)) (',' (pop T45 X86) (',' (no (empty_list X86)) (',' (head X86 X87) (',' (tail X86 X88) (',' (popped T45 X89) (countstack (push X87 (push X88 X89)) T42)))))))" } ], "kb": { "nonunifying": [ [ "(countstack T45 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T45)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T45"], "free": [ "X86", "X87", "X88", "X89" ], "exprvars": [] } }, "149": { "goal": [{ "clause": 14, "scope": 20, "term": "(',' (no (empty_stack T45)) (',' (pop T45 X86) (',' (no (empty_list X86)) (',' (head X86 X87) (',' (tail X86 X88) (',' (popped T45 X89) (countstack (push X87 (push X88 X89)) T42)))))))" }], "kb": { "nonunifying": [ [ "(countstack T45 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T45)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T45"], "free": [ "X86", "X87", "X88", "X89" ], "exprvars": [] } }, "40": { "goal": [ { "clause": 11, "scope": 4, "term": "(',' (empty_stack (empty)) (',' (',' (!_2) (failure (a))) (',' (pop (empty) (nil)) (',' (popped (empty) X12) (countstack X12 T5)))))" }, { "clause": -1, "scope": 4, "term": null }, { "clause": -1, "scope": 3, "term": null }, { "clause": 14, "scope": 2, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) (nil)) (',' (popped (empty) X12) (countstack X12 T5))))" }, { "clause": -1, "scope": 2, "term": null }, { "clause": 2, "scope": 1, "term": "(countstack (empty) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "42": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (',' (!_2) (failure (a))) (',' (pop (empty) (nil)) (',' (popped (empty) X12) (countstack X12 T5))))" }, { "clause": -1, "scope": 4, "term": null }, { "clause": -1, "scope": 3, "term": null }, { "clause": 14, "scope": 2, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) (nil)) (',' (popped (empty) X12) (countstack X12 T5))))" }, { "clause": -1, "scope": 2, "term": null }, { "clause": 2, "scope": 1, "term": "(countstack (empty) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "44": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (failure (a)) (',' (pop (empty) (nil)) (',' (popped (empty) X12) (countstack X12 T5))))" }, { "clause": 2, "scope": 1, "term": "(countstack (empty) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "45": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (failure (a)) (',' (pop (empty) (nil)) (',' (popped (empty) X12) (countstack X12 T5))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "46": { "goal": [{ "clause": 2, "scope": 1, "term": "(countstack (empty) T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "47": { "goal": [{ "clause": 15, "scope": 5, "term": "(',' (failure (a)) (',' (pop (empty) (nil)) (',' (popped (empty) X12) (countstack X12 T5))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X12"], "exprvars": [] } }, "49": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "152": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (pop T48 X86) (',' (no (empty_list X86)) (',' (head X86 X87) (',' (tail X86 X88) (',' (popped T48 X89) (countstack (push X87 (push X88 X89)) T42))))))" }], "kb": { "nonunifying": [ [ "(countstack T48 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T48)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T48"], "free": [ "X86", "X87", "X88", "X89" ], "exprvars": [] } }, "154": { "goal": [ { "clause": 3, "scope": 23, "term": "(',' (pop T48 X86) (',' (no (empty_list X86)) (',' (head X86 X87) (',' (tail X86 X88) (',' (popped T48 X89) (countstack (push X87 (push X88 X89)) T42))))))" }, { "clause": 4, "scope": 23, "term": "(',' (pop T48 X86) (',' (no (empty_list X86)) (',' (head X86 X87) (',' (tail X86 X88) (',' (popped T48 X89) (countstack (push X87 (push X88 X89)) T42))))))" } ], "kb": { "nonunifying": [ [ "(countstack T48 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T48)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T48"], "free": [ "X86", "X87", "X88", "X89" ], "exprvars": [] } }, "156": { "goal": [{ "clause": 4, "scope": 23, "term": "(',' (pop T48 X86) (',' (no (empty_list X86)) (',' (head X86 X87) (',' (tail X86 X88) (',' (popped T48 X89) (countstack (push X87 (push X88 X89)) T42))))))" }], "kb": { "nonunifying": [ [ "(countstack T48 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T48)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T48"], "free": [ "X86", "X87", "X88", "X89" ], "exprvars": [] } }, "158": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (no (empty_list T53)) (',' (head T53 X87) (',' (tail T53 X88) (',' (popped (push T53 T54) X89) (countstack (push X87 (push X88 X89)) T42)))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T53", "T54" ], "free": [ "X87", "X88", "X89" ], "exprvars": [] } }, "52": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) X26) (',' (no (empty_list X26)) (',' (head X26 X27) (',' (tail X26 X28) (',' (popped (empty) X29) (countstack (push X27 (push X28 X29)) T9)))))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X26", "X27", "X28", "X29" ], "exprvars": [] } }, "54": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "57": { "goal": [ { "clause": 13, "scope": 6, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) X26) (',' (no (empty_list X26)) (',' (head X26 X27) (',' (tail X26 X28) (',' (popped (empty) X29) (countstack (push X27 (push X28 X29)) T9)))))))" }, { "clause": 14, "scope": 6, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) X26) (',' (no (empty_list X26)) (',' (head X26 X27) (',' (tail X26 X28) (',' (popped (empty) X29) (countstack (push X27 (push X28 X29)) T9)))))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X26", "X27", "X28", "X29" ], "exprvars": [] } }, "59": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (',' (call (empty_stack (empty))) (',' (!_6) (failure (a)))) (',' (pop (empty) X26) (',' (no (empty_list X26)) (',' (head X26 X27) (',' (tail X26 X28) (',' (popped (empty) X29) (countstack (push X27 (push X28 X29)) T9)))))))" }, { "clause": 14, "scope": 6, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) X26) (',' (no (empty_list X26)) (',' (head X26 X27) (',' (tail X26 X28) (',' (popped (empty) X29) (countstack (push X27 (push X28 X29)) T9)))))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X26", "X27", "X28", "X29" ], "exprvars": [] } }, "161": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "162": { "goal": [ { "clause": 13, "scope": 24, "term": "(',' (no (empty_list T53)) (',' (head T53 X87) (',' (tail T53 X88) (',' (popped (push T53 T54) X89) (countstack (push X87 (push X88 X89)) T42)))))" }, { "clause": 14, "scope": 24, "term": "(',' (no (empty_list T53)) (',' (head T53 X87) (',' (tail T53 X88) (',' (popped (push T53 T54) X89) (countstack (push X87 (push X88 X89)) T42)))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T53", "T54" ], "free": [ "X87", "X88", "X89" ], "exprvars": [] } }, "163": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (',' (call (empty_list T57)) (',' (!_24) (failure (a)))) (',' (head T57 X87) (',' (tail T57 X88) (',' (popped (push T57 T54) X89) (countstack (push X87 (push X88 X89)) T42)))))" }, { "clause": 14, "scope": 24, "term": "(',' (no (empty_list T57)) (',' (head T57 X87) (',' (tail T57 X88) (',' (popped (push T57 T54) X89) (countstack (push X87 (push X88 X89)) T42)))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T54", "T57" ], "free": [ "X87", "X88", "X89" ], "exprvars": [] } }, "164": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (empty_list T57) (',' (',' (!_24) (failure (a))) (',' (head T57 X87) (',' (tail T57 X88) (',' (popped (push T57 T54) X89) (countstack (push X87 (push X88 X89)) T42))))))" }, { "clause": -1, "scope": 25, "term": null }, { "clause": 14, "scope": 24, "term": "(',' (no (empty_list T57)) (',' (head T57 X87) (',' (tail T57 X88) (',' (popped (push T57 T54) X89) (countstack (push X87 (push X88 X89)) T42)))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T54", "T57" ], "free": [ "X87", "X88", "X89" ], "exprvars": [] } }, "165": { "goal": [ { "clause": 12, "scope": 26, "term": "(',' (empty_list T57) (',' (',' (!_24) (failure (a))) (',' (head T57 X87) (',' (tail T57 X88) (',' (popped (push T57 T54) X89) (countstack (push X87 (push X88 X89)) T42))))))" }, { "clause": -1, "scope": 26, "term": null }, { "clause": -1, "scope": 25, "term": null }, { "clause": 14, "scope": 24, "term": "(',' (no (empty_list T57)) (',' (head T57 X87) (',' (tail T57 X88) (',' (popped (push T57 T54) X89) (countstack (push X87 (push X88 X89)) T42)))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T54", "T57" ], "free": [ "X87", "X88", "X89" ], "exprvars": [] } }, "166": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (',' (!_24) (failure (a))) (',' (head (nil) X87) (',' (tail (nil) X88) (',' (popped (push (nil) T54) X89) (countstack (push X87 (push X88 X89)) T42)))))" }, { "clause": -1, "scope": 26, "term": null }, { "clause": -1, "scope": 25, "term": null }, { "clause": 14, "scope": 24, "term": "(',' (no (empty_list (nil))) (',' (head (nil) X87) (',' (tail (nil) X88) (',' (popped (push (nil) T54) X89) (countstack (push X87 (push X88 X89)) T42)))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T54"], "free": [ "X87", "X88", "X89" ], "exprvars": [] } }, "167": { "goal": [ { "clause": -1, "scope": 26, "term": null }, { "clause": -1, "scope": 25, "term": null }, { "clause": 14, "scope": 24, "term": "(',' (no (empty_list T57)) (',' (head T57 X87) (',' (tail T57 X88) (',' (popped (push T57 T54) X89) (countstack (push X87 (push X88 X89)) T42)))))" } ], "kb": { "nonunifying": [[ "(empty_list T57)", "(empty_list (nil))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T54", "T57" ], "free": [ "X87", "X88", "X89" ], "exprvars": [] } }, "168": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (failure (a)) (',' (head (nil) X87) (',' (tail (nil) X88) (',' (popped (push (nil) T54) X89) (countstack (push X87 (push X88 X89)) T42)))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T54"], "free": [ "X87", "X88", "X89" ], "exprvars": [] } }, "169": { "goal": [{ "clause": 15, "scope": 27, "term": "(',' (failure (a)) (',' (head (nil) X87) (',' (tail (nil) X88) (',' (popped (push (nil) T54) X89) (countstack (push X87 (push X88 X89)) T42)))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T54"], "free": [ "X87", "X88", "X89" ], "exprvars": [] } }, "61": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (empty_stack (empty)) (',' (',' (!_6) (failure (a))) (',' (pop (empty) X26) (',' (no (empty_list X26)) (',' (head X26 X27) (',' (tail X26 X28) (',' (popped (empty) X29) (countstack (push X27 (push X28 X29)) T9))))))))" }, { "clause": -1, "scope": 7, "term": null }, { "clause": 14, "scope": 6, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) X26) (',' (no (empty_list X26)) (',' (head X26 X27) (',' (tail X26 X28) (',' (popped (empty) X29) (countstack (push X27 (push X28 X29)) T9)))))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X26", "X27", "X28", "X29" ], "exprvars": [] } }, "62": { "goal": [ { "clause": 11, "scope": 8, "term": "(',' (empty_stack (empty)) (',' (',' (!_6) (failure (a))) (',' (pop (empty) X26) (',' (no (empty_list X26)) (',' (head X26 X27) (',' (tail X26 X28) (',' (popped (empty) X29) (countstack (push X27 (push X28 X29)) T9))))))))" }, { "clause": -1, "scope": 8, "term": null }, { "clause": -1, "scope": 7, "term": null }, { "clause": 14, "scope": 6, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) X26) (',' (no (empty_list X26)) (',' (head X26 X27) (',' (tail X26 X28) (',' (popped (empty) X29) (countstack (push X27 (push X28 X29)) T9)))))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X26", "X27", "X28", "X29" ], "exprvars": [] } }, "63": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (',' (!_6) (failure (a))) (',' (pop (empty) X26) (',' (no (empty_list X26)) (',' (head X26 X27) (',' (tail X26 X28) (',' (popped (empty) X29) (countstack (push X27 (push X28 X29)) T9)))))))" }, { "clause": -1, "scope": 8, "term": null }, { "clause": -1, "scope": 7, "term": null }, { "clause": 14, "scope": 6, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) X26) (',' (no (empty_list X26)) (',' (head X26 X27) (',' (tail X26 X28) (',' (popped (empty) X29) (countstack (push X27 (push X28 X29)) T9)))))))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X26", "X27", "X28", "X29" ], "exprvars": [] } }, "64": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (failure (a)) (',' (pop (empty) X26) (',' (no (empty_list X26)) (',' (head X26 X27) (',' (tail X26 X28) (',' (popped (empty) X29) (countstack (push X27 (push X28 X29)) T9)))))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X26", "X27", "X28", "X29" ], "exprvars": [] } }, "65": { "goal": [{ "clause": 15, "scope": 9, "term": "(',' (failure (a)) (',' (pop (empty) X26) (',' (no (empty_list X26)) (',' (head X26 X27) (',' (tail X26 X28) (',' (popped (empty) X29) (countstack (push X27 (push X28 X29)) T9)))))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X26", "X27", "X28", "X29" ], "exprvars": [] } }, "66": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "67": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (no (empty_stack T12)) (',' (pop T12 (nil)) (',' (popped T12 X37) (countstack X37 T14))))" }, { "clause": 2, "scope": 1, "term": "(countstack T12 T2)" } ], "kb": { "nonunifying": [[ "(countstack T12 T2)", "(countstack (empty) (0))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T12"], "free": ["X37"], "exprvars": [] } }, "68": { "goal": [ { "clause": 13, "scope": 10, "term": "(',' (no (empty_stack T12)) (',' (pop T12 (nil)) (',' (popped T12 X37) (countstack X37 T14))))" }, { "clause": 14, "scope": 10, "term": "(',' (no (empty_stack T12)) (',' (pop T12 (nil)) (',' (popped T12 X37) (countstack X37 T14))))" }, { "clause": -1, "scope": 10, "term": null }, { "clause": 2, "scope": 1, "term": "(countstack T12 T2)" } ], "kb": { "nonunifying": [[ "(countstack T12 T2)", "(countstack (empty) (0))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T12"], "free": ["X37"], "exprvars": [] } }, "69": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (',' (call (empty_stack T17)) (',' (!_10) (failure (a)))) (',' (pop T17 (nil)) (',' (popped T17 X37) (countstack X37 T14))))" }, { "clause": 14, "scope": 10, "term": "(',' (no (empty_stack T17)) (',' (pop T17 (nil)) (',' (popped T17 X37) (countstack X37 T14))))" }, { "clause": -1, "scope": 10, "term": null }, { "clause": 2, "scope": 1, "term": "(countstack T17 T2)" } ], "kb": { "nonunifying": [[ "(countstack T17 T2)", "(countstack (empty) (0))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T17"], "free": ["X37"], "exprvars": [] } }, "170": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "171": { "goal": [ { "clause": -1, "scope": 25, "term": null }, { "clause": 14, "scope": 24, "term": "(',' (no (empty_list T57)) (',' (head T57 X87) (',' (tail T57 X88) (',' (popped (push T57 T54) X89) (countstack (push X87 (push X88 X89)) T42)))))" } ], "kb": { "nonunifying": [[ "(empty_list T57)", "(empty_list (nil))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T54", "T57" ], "free": [ "X87", "X88", "X89" ], "exprvars": [] } }, "172": { "goal": [{ "clause": 14, "scope": 24, "term": "(',' (no (empty_list T57)) (',' (head T57 X87) (',' (tail T57 X88) (',' (popped (push T57 T54) X89) (countstack (push X87 (push X88 X89)) T42)))))" }], "kb": { "nonunifying": [[ "(empty_list T57)", "(empty_list (nil))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T54", "T57" ], "free": [ "X87", "X88", "X89" ], "exprvars": [] } }, "174": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (head T60 X87) (',' (tail T60 X88) (',' (popped (push T60 T54) X89) (countstack (push X87 (push X88 X89)) T42))))" }], "kb": { "nonunifying": [[ "(empty_list T60)", "(empty_list (nil))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T54", "T60" ], "free": [ "X87", "X88", "X89" ], "exprvars": [] } }, "175": { "goal": [ { "clause": 7, "scope": 28, "term": "(',' (head T60 X87) (',' (tail T60 X88) (',' (popped (push T60 T54) X89) (countstack (push X87 (push X88 X89)) T42))))" }, { "clause": 8, "scope": 28, "term": "(',' (head T60 X87) (',' (tail T60 X88) (',' (popped (push T60 T54) X89) (countstack (push X87 (push X88 X89)) T42))))" } ], "kb": { "nonunifying": [[ "(empty_list T60)", "(empty_list (nil))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T54", "T60" ], "free": [ "X87", "X88", "X89" ], "exprvars": [] } }, "70": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (empty_stack T17) (',' (',' (!_10) (failure (a))) (',' (pop T17 (nil)) (',' (popped T17 X37) (countstack X37 T14)))))" }, { "clause": -1, "scope": 11, "term": null }, { "clause": 14, "scope": 10, "term": "(',' (no (empty_stack T17)) (',' (pop T17 (nil)) (',' (popped T17 X37) (countstack X37 T14))))" }, { "clause": -1, "scope": 10, "term": null }, { "clause": 2, "scope": 1, "term": "(countstack T17 T2)" } ], "kb": { "nonunifying": [[ "(countstack T17 T2)", "(countstack (empty) (0))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T17"], "free": ["X37"], "exprvars": [] } }, "71": { "goal": [ { "clause": 11, "scope": 12, "term": "(',' (empty_stack T17) (',' (',' (!_10) (failure (a))) (',' (pop T17 (nil)) (',' (popped T17 X37) (countstack X37 T14)))))" }, { "clause": -1, "scope": 12, "term": null }, { "clause": -1, "scope": 11, "term": null }, { "clause": 14, "scope": 10, "term": "(',' (no (empty_stack T17)) (',' (pop T17 (nil)) (',' (popped T17 X37) (countstack X37 T14))))" }, { "clause": -1, "scope": 10, "term": null }, { "clause": 2, "scope": 1, "term": "(countstack T17 T2)" } ], "kb": { "nonunifying": [[ "(countstack T17 T2)", "(countstack (empty) (0))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T17"], "free": ["X37"], "exprvars": [] } }, "72": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (',' (!_10) (failure (a))) (',' (pop (empty) (nil)) (',' (popped (empty) X37) (countstack X37 T14))))" }, { "clause": -1, "scope": 12, "term": null }, { "clause": -1, "scope": 11, "term": null }, { "clause": 14, "scope": 10, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) (nil)) (',' (popped (empty) X37) (countstack X37 T14))))" }, { "clause": -1, "scope": 10, "term": null }, { "clause": 2, "scope": 1, "term": "(countstack (empty) T2)" } ], "kb": { "nonunifying": [[ "(countstack (empty) T2)", "(countstack (empty) (0))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X37"], "exprvars": [] } }, "77": { "goal": [ { "clause": -1, "scope": 12, "term": null }, { "clause": -1, "scope": 11, "term": null }, { "clause": 14, "scope": 10, "term": "(',' (no (empty_stack T17)) (',' (pop T17 (nil)) (',' (popped T17 X37) (countstack X37 T14))))" }, { "clause": -1, "scope": 10, "term": null }, { "clause": 2, "scope": 1, "term": "(countstack T17 T2)" } ], "kb": { "nonunifying": [ [ "(countstack T17 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T17)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T17"], "free": ["X37"], "exprvars": [] } }, "78": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (failure (a)) (',' (pop (empty) (nil)) (',' (popped (empty) X37) (countstack X37 T14))))" }, { "clause": 2, "scope": 1, "term": "(countstack (empty) T2)" } ], "kb": { "nonunifying": [[ "(countstack (empty) T2)", "(countstack (empty) (0))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X37"], "exprvars": [] } }, "79": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (failure (a)) (',' (pop (empty) (nil)) (',' (popped (empty) X37) (countstack X37 T14))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X37"], "exprvars": [] } }, "186": { "goal": [{ "clause": 8, "scope": 28, "term": "(',' (head T60 X87) (',' (tail T60 X88) (',' (popped (push T60 T54) X89) (countstack (push X87 (push X88 X89)) T42))))" }], "kb": { "nonunifying": [[ "(empty_list T60)", "(empty_list (nil))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T54", "T60" ], "free": [ "X87", "X88", "X89" ], "exprvars": [] } }, "187": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (tail (cons T65 T66) X88) (',' (popped (push (cons T65 T66) T54) X89) (countstack (push T65 (push X88 X89)) T42)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T54", "T65", "T66" ], "free": [ "X88", "X89" ], "exprvars": [] } }, "188": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "101": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (failure (a)) (',' (pop (empty) X51) (',' (no (empty_list X51)) (',' (head X51 X52) (',' (tail X51 X53) (',' (popped (empty) X54) (countstack (push X52 (push X53 X54)) T21)))))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X51", "X52", "X53", "X54" ], "exprvars": [] } }, "104": { "goal": [{ "clause": 15, "scope": 17, "term": "(',' (failure (a)) (',' (pop (empty) X51) (',' (no (empty_list X51)) (',' (head X51 X52) (',' (tail X51 X53) (',' (popped (empty) X54) (countstack (push X52 (push X53 X54)) T21)))))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X51", "X52", "X53", "X54" ], "exprvars": [] } }, "105": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "106": { "goal": [ { "clause": -1, "scope": 11, "term": null }, { "clause": 14, "scope": 10, "term": "(',' (no (empty_stack T17)) (',' (pop T17 (nil)) (',' (popped T17 X37) (countstack X37 T14))))" }, { "clause": -1, "scope": 10, "term": null }, { "clause": 2, "scope": 1, "term": "(countstack T17 T2)" } ], "kb": { "nonunifying": [ [ "(countstack T17 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T17)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T17"], "free": ["X37"], "exprvars": [] } }, "80": { "goal": [{ "clause": 2, "scope": 1, "term": "(countstack (empty) T2)" }], "kb": { "nonunifying": [[ "(countstack (empty) T2)", "(countstack (empty) (0))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "107": { "goal": [ { "clause": 14, "scope": 10, "term": "(',' (no (empty_stack T17)) (',' (pop T17 (nil)) (',' (popped T17 X37) (countstack X37 T14))))" }, { "clause": -1, "scope": 10, "term": null }, { "clause": 2, "scope": 1, "term": "(countstack T17 T2)" } ], "kb": { "nonunifying": [ [ "(countstack T17 T2)", "(countstack (empty) (0))" ], [ "(empty_stack T17)", "(empty_stack (empty))" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T17"], "free": ["X37"], "exprvars": [] } }, "81": { "goal": [{ "clause": 15, "scope": 13, "term": "(',' (failure (a)) (',' (pop (empty) (nil)) (',' (popped (empty) X37) (countstack X37 T14))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": ["X37"], "exprvars": [] } }, "82": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "86": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (no (empty_stack (empty))) (',' (pop (empty) X51) (',' (no (empty_list X51)) (',' (head X51 X52) (',' (tail X51 X53) (',' (popped (empty) X54) (countstack (push X52 (push X53 X54)) T21)))))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X51", "X52", "X53", "X54" ], "exprvars": [] } }, "87": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 4, "to": 5, "label": "CASE" }, { "from": 5, "to": 12, "label": "EVAL with clause\ncountstack(empty, 0).\nand substitutionT1 -> empty,\nT2 -> 0" }, { "from": 5, "to": 14, "label": "EVAL-BACKTRACK" }, { "from": 12, "to": 17, "label": "SUCCESS" }, { "from": 14, "to": 67, "label": "ONLY EVAL with clause\ncountstack(X35, X36) :- ','(no(empty_stack(X35)), ','(pop(X35, nil), ','(popped(X35, X37), countstack(X37, X36)))).\nand substitutionT1 -> T12,\nX35 -> T12,\nT2 -> T14,\nX36 -> T14,\nT13 -> T14" }, { "from": 17, "to": 30, "label": "ONLY EVAL with clause\ncountstack(X10, X11) :- ','(no(empty_stack(X10)), ','(pop(X10, nil), ','(popped(X10, X12), countstack(X12, X11)))).\nand substitutionX10 -> empty,\nT2 -> T5,\nX11 -> T5,\nT4 -> T5" }, { "from": 30, "to": 32, "label": "CASE" }, { "from": 32, "to": 37, "label": "ONLY EVAL with clause\nno(X15) :- ','(call(X15), ','(!_2, failure(a))).\nand substitutionX15 -> empty_stack(empty)" }, { "from": 37, "to": 39, "label": "CALL" }, { "from": 39, "to": 40, "label": "CASE" }, { "from": 40, "to": 42, "label": "ONLY EVAL with clause\nempty_stack(empty).\nand substitution" }, { "from": 42, "to": 44, "label": "CUT" }, { "from": 44, "to": 45, "label": "PARALLEL" }, { "from": 44, "to": 46, "label": "PARALLEL" }, { "from": 45, "to": 47, "label": "CASE" }, { "from": 46, "to": 52, "label": "EVAL with clause\ncountstack(X24, s(X25)) :- ','(no(empty_stack(X24)), ','(pop(X24, X26), ','(no(empty_list(X26)), ','(head(X26, X27), ','(tail(X26, X28), ','(popped(X24, X29), countstack(push(X27, push(X28, X29)), X25))))))).\nand substitutionX24 -> empty,\nX25 -> T9,\nT2 -> s(T9),\nT8 -> T9" }, { "from": 46, "to": 54, "label": "EVAL-BACKTRACK" }, { "from": 47, "to": 49, "label": "BACKTRACK\nfor clause: failure(b)because of non-unification" }, { "from": 52, "to": 57, "label": "CASE" }, { "from": 57, "to": 59, "label": "ONLY EVAL with clause\nno(X32) :- ','(call(X32), ','(!_6, failure(a))).\nand substitutionX32 -> empty_stack(empty)" }, { "from": 59, "to": 61, "label": "CALL" }, { "from": 61, "to": 62, "label": "CASE" }, { "from": 62, "to": 63, "label": "ONLY EVAL with clause\nempty_stack(empty).\nand substitution" }, { "from": 63, "to": 64, "label": "CUT" }, { "from": 64, "to": 65, "label": "CASE" }, { "from": 65, "to": 66, "label": "BACKTRACK\nfor clause: failure(b)because of non-unification" }, { "from": 67, "to": 68, "label": "CASE" }, { "from": 68, "to": 69, "label": "ONLY EVAL with clause\nno(X40) :- ','(call(X40), ','(!_10, failure(a))).\nand substitutionT12 -> T17,\nX40 -> empty_stack(T17)" }, { "from": 69, "to": 70, "label": "CALL" }, { "from": 70, "to": 71, "label": "CASE" }, { "from": 71, "to": 72, "label": "EVAL with clause\nempty_stack(empty).\nand substitutionT17 -> empty" }, { "from": 71, "to": 77, "label": "EVAL-BACKTRACK" }, { "from": 72, "to": 78, "label": "CUT" }, { "from": 77, "to": 106, "label": "FAILURE" }, { "from": 78, "to": 79, "label": "PARALLEL" }, { "from": 78, "to": 80, "label": "PARALLEL" }, { "from": 79, "to": 81, "label": "CASE" }, { "from": 80, "to": 86, "label": "EVAL with clause\ncountstack(X49, s(X50)) :- ','(no(empty_stack(X49)), ','(pop(X49, X51), ','(no(empty_list(X51)), ','(head(X51, X52), ','(tail(X51, X53), ','(popped(X49, X54), countstack(push(X52, push(X53, X54)), X50))))))).\nand substitutionX49 -> empty,\nX50 -> T21,\nT2 -> s(T21),\nT20 -> T21" }, { "from": 80, "to": 87, "label": "EVAL-BACKTRACK" }, { "from": 81, "to": 82, "label": "BACKTRACK\nfor clause: failure(b)because of non-unification" }, { "from": 86, "to": 88, "label": "CASE" }, { "from": 88, "to": 91, "label": "ONLY EVAL with clause\nno(X57) :- ','(call(X57), ','(!_14, failure(a))).\nand substitutionX57 -> empty_stack(empty)" }, { "from": 91, "to": 93, "label": "CALL" }, { "from": 93, "to": 95, "label": "CASE" }, { "from": 95, "to": 98, "label": "ONLY EVAL with clause\nempty_stack(empty).\nand substitution" }, { "from": 98, "to": 101, "label": "CUT" }, { "from": 101, "to": 104, "label": "CASE" }, { "from": 104, "to": 105, "label": "BACKTRACK\nfor clause: failure(b)because of non-unification" }, { "from": 106, "to": 107, "label": "FAILURE" }, { "from": 107, "to": 110, "label": "PARALLEL" }, { "from": 107, "to": 111, "label": "PARALLEL" }, { "from": 110, "to": 113, "label": "ONLY EVAL with clause\nno(X62).\nand substitutionT17 -> T26,\nX62 -> empty_stack(T26)" }, { "from": 111, "to": 130, "label": "FAILURE" }, { "from": 113, "to": 116, "label": "CASE" }, { "from": 116, "to": 118, "label": "BACKTRACK\nfor clause: pop(empty, X1)\nwith clash: (empty_stack(T26), empty_stack(empty))" }, { "from": 118, "to": 120, "label": "EVAL with clause\npop(push(X68, X69), X68).\nand substitutionX68 -> nil,\nX69 -> T32,\nT26 -> push(nil, T32),\nT31 -> nil" }, { "from": 118, "to": 122, "label": "EVAL-BACKTRACK" }, { "from": 120, "to": 124, "label": "CASE" }, { "from": 124, "to": 125, "label": "BACKTRACK\nfor clause: popped(empty, empty)because of non-unification" }, { "from": 125, "to": 129, "label": "ONLY EVAL with clause\npopped(push(X74, X75), X75).\nand substitutionX74 -> nil,\nT32 -> T35,\nX75 -> T35,\nX37 -> T35" }, { "from": 129, "to": 4, "label": "INSTANCE with matching:\nT1 -> T35\nT2 -> T14" }, { "from": 130, "to": 132, "label": "EVAL with clause\ncountstack(X84, s(X85)) :- ','(no(empty_stack(X84)), ','(pop(X84, X86), ','(no(empty_list(X86)), ','(head(X86, X87), ','(tail(X86, X88), ','(popped(X84, X89), countstack(push(X87, push(X88, X89)), X85))))))).\nand substitutionT17 -> T40,\nX84 -> T40,\nX85 -> T42,\nT2 -> s(T42),\nT41 -> T42" }, { "from": 130, "to": 133, "label": "EVAL-BACKTRACK" }, { "from": 132, "to": 134, "label": "CASE" }, { "from": 134, "to": 135, "label": "ONLY EVAL with clause\nno(X92) :- ','(call(X92), ','(!_20, failure(a))).\nand substitutionT40 -> T45,\nX92 -> empty_stack(T45)" }, { "from": 135, "to": 139, "label": "CALL" }, { "from": 139, "to": 141, "label": "CASE" }, { "from": 141, "to": 142, "label": "BACKTRACK\nfor clause: empty_stack(empty)\nwith clash: (empty_stack(T45), empty_stack(empty))" }, { "from": 142, "to": 147, "label": "FAILURE" }, { "from": 147, "to": 149, "label": "FAILURE" }, { "from": 149, "to": 152, "label": "ONLY EVAL with clause\nno(X95).\nand substitutionT45 -> T48,\nX95 -> empty_stack(T48)" }, { "from": 152, "to": 154, "label": "CASE" }, { "from": 154, "to": 156, "label": "BACKTRACK\nfor clause: pop(empty, X1)\nwith clash: (empty_stack(T48), empty_stack(empty))" }, { "from": 156, "to": 158, "label": "EVAL with clause\npop(push(X102, X103), X102).\nand substitutionX102 -> T53,\nX103 -> T54,\nT48 -> push(T53, T54),\nX86 -> T53" }, { "from": 156, "to": 161, "label": "EVAL-BACKTRACK" }, { "from": 158, "to": 162, "label": "CASE" }, { "from": 162, "to": 163, "label": "ONLY EVAL with clause\nno(X106) :- ','(call(X106), ','(!_24, failure(a))).\nand substitutionT53 -> T57,\nX106 -> empty_list(T57)" }, { "from": 163, "to": 164, "label": "CALL" }, { "from": 164, "to": 165, "label": "CASE" }, { "from": 165, "to": 166, "label": "EVAL with clause\nempty_list(nil).\nand substitutionT57 -> nil" }, { "from": 165, "to": 167, "label": "EVAL-BACKTRACK" }, { "from": 166, "to": 168, "label": "CUT" }, { "from": 167, "to": 171, "label": "FAILURE" }, { "from": 168, "to": 169, "label": "CASE" }, { "from": 169, "to": 170, "label": "BACKTRACK\nfor clause: failure(b)because of non-unification" }, { "from": 171, "to": 172, "label": "FAILURE" }, { "from": 172, "to": 174, "label": "ONLY EVAL with clause\nno(X109).\nand substitutionT57 -> T60,\nX109 -> empty_list(T60)" }, { "from": 174, "to": 175, "label": "CASE" }, { "from": 175, "to": 186, "label": "BACKTRACK\nfor clause: head(nil, X4)\nwith clash: (empty_list(T60), empty_list(nil))" }, { "from": 186, "to": 187, "label": "EVAL with clause\nhead(cons(X116, X117), X116).\nand substitutionX116 -> T65,\nX117 -> T66,\nT60 -> cons(T65, T66),\nX87 -> T65" }, { "from": 186, "to": 188, "label": "EVAL-BACKTRACK" }, { "from": 187, "to": 190, "label": "CASE" }, { "from": 190, "to": 191, "label": "BACKTRACK\nfor clause: tail(nil, nil)because of non-unification" }, { "from": 191, "to": 192, "label": "ONLY EVAL with clause\ntail(cons(X122, X123), X123).\nand substitutionT65 -> T71,\nX122 -> T71,\nT66 -> T72,\nX123 -> T72,\nX88 -> T72" }, { "from": 192, "to": 193, "label": "CASE" }, { "from": 193, "to": 194, "label": "BACKTRACK\nfor clause: popped(empty, empty)because of non-unification" }, { "from": 194, "to": 199, "label": "ONLY EVAL with clause\npopped(push(X128, X129), X129).\nand substitutionT71 -> T79,\nT72 -> T80,\nX128 -> cons(T79, T80),\nT54 -> T81,\nX129 -> T81,\nX89 -> T81" }, { "from": 199, "to": 4, "label": "INSTANCE with matching:\nT1 -> push(T79, push(T80, T81))\nT2 -> T42" } ], "type": "Graph" } } ---------------------------------------- (2) Obligation: Triples: countstackA(push(nil, X1), X2) :- countstackA(X1, X2). countstackA(push(cons(X1, X2), X3), s(X4)) :- countstackA(push(X1, push(X2, X3)), X4). Clauses: countstackcA(empty, 0). countstackcA(push(nil, X1), X2) :- countstackcA(X1, X2). countstackcA(push(cons(X1, X2), X3), s(X4)) :- countstackcA(push(X1, push(X2, X3)), X4). Afs: countstackA(x1, x2) = countstackA(x1) ---------------------------------------- (3) TriplesToPiDPProof (SOUND) We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: countstackA_in_2: (b,f) Transforming TRIPLES into the following Term Rewriting System: Pi DP problem: The TRS P consists of the following rules: COUNTSTACKA_IN_GA(push(nil, X1), X2) -> U1_GA(X1, X2, countstackA_in_ga(X1, X2)) COUNTSTACKA_IN_GA(push(nil, X1), X2) -> COUNTSTACKA_IN_GA(X1, X2) COUNTSTACKA_IN_GA(push(cons(X1, X2), X3), s(X4)) -> U2_GA(X1, X2, X3, X4, countstackA_in_ga(push(X1, push(X2, X3)), X4)) COUNTSTACKA_IN_GA(push(cons(X1, X2), X3), s(X4)) -> COUNTSTACKA_IN_GA(push(X1, push(X2, X3)), X4) R is empty. The argument filtering Pi contains the following mapping: countstackA_in_ga(x1, x2) = countstackA_in_ga(x1) push(x1, x2) = push(x1, x2) nil = nil cons(x1, x2) = cons(x1, x2) s(x1) = s(x1) COUNTSTACKA_IN_GA(x1, x2) = COUNTSTACKA_IN_GA(x1) U1_GA(x1, x2, x3) = U1_GA(x1, x3) U2_GA(x1, x2, x3, x4, x5) = U2_GA(x1, x2, x3, x5) We have to consider all (P,R,Pi)-chains Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES ---------------------------------------- (4) Obligation: Pi DP problem: The TRS P consists of the following rules: COUNTSTACKA_IN_GA(push(nil, X1), X2) -> U1_GA(X1, X2, countstackA_in_ga(X1, X2)) COUNTSTACKA_IN_GA(push(nil, X1), X2) -> COUNTSTACKA_IN_GA(X1, X2) COUNTSTACKA_IN_GA(push(cons(X1, X2), X3), s(X4)) -> U2_GA(X1, X2, X3, X4, countstackA_in_ga(push(X1, push(X2, X3)), X4)) COUNTSTACKA_IN_GA(push(cons(X1, X2), X3), s(X4)) -> COUNTSTACKA_IN_GA(push(X1, push(X2, X3)), X4) R is empty. The argument filtering Pi contains the following mapping: countstackA_in_ga(x1, x2) = countstackA_in_ga(x1) push(x1, x2) = push(x1, x2) nil = nil cons(x1, x2) = cons(x1, x2) s(x1) = s(x1) COUNTSTACKA_IN_GA(x1, x2) = COUNTSTACKA_IN_GA(x1) U1_GA(x1, x2, x3) = U1_GA(x1, x3) U2_GA(x1, x2, x3, x4, x5) = U2_GA(x1, x2, x3, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (5) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 2 less nodes. ---------------------------------------- (6) Obligation: Pi DP problem: The TRS P consists of the following rules: COUNTSTACKA_IN_GA(push(cons(X1, X2), X3), s(X4)) -> COUNTSTACKA_IN_GA(push(X1, push(X2, X3)), X4) COUNTSTACKA_IN_GA(push(nil, X1), X2) -> COUNTSTACKA_IN_GA(X1, X2) R is empty. The argument filtering Pi contains the following mapping: push(x1, x2) = push(x1, x2) nil = nil cons(x1, x2) = cons(x1, x2) s(x1) = s(x1) COUNTSTACKA_IN_GA(x1, x2) = COUNTSTACKA_IN_GA(x1) We have to consider all (P,R,Pi)-chains ---------------------------------------- (7) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (8) Obligation: Q DP problem: The TRS P consists of the following rules: COUNTSTACKA_IN_GA(push(cons(X1, X2), X3)) -> COUNTSTACKA_IN_GA(push(X1, push(X2, X3))) COUNTSTACKA_IN_GA(push(nil, X1)) -> COUNTSTACKA_IN_GA(X1) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (9) UsableRulesReductionPairsProof (EQUIVALENT) By using the usable rules with reduction pair processor [LPAR04] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules [FROCOS05] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. The following dependency pairs can be deleted: COUNTSTACKA_IN_GA(push(cons(X1, X2), X3)) -> COUNTSTACKA_IN_GA(push(X1, push(X2, X3))) COUNTSTACKA_IN_GA(push(nil, X1)) -> COUNTSTACKA_IN_GA(X1) No rules are removed from R. Used ordering: POLO with Polynomial interpretation [POLO]: POL(COUNTSTACKA_IN_GA(x_1)) = 2*x_1 POL(cons(x_1, x_2)) = 1 + x_1 + 2*x_2 POL(nil) = 0 POL(push(x_1, x_2)) = 1 + 2*x_1 + x_2 ---------------------------------------- (10) Obligation: Q DP problem: P is empty. R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (11) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (12) YES