/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.pl /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.pl # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Left Termination of the query pattern q() w.r.t. the given Prolog program could successfully be proven: (0) Prolog (1) PrologToIRSwTTransformerProof [SOUND, 0 ms] (2) TRUE ---------------------------------------- (0) Obligation: Clauses: q :- p(X, Y). p(a, b) :- !. p(a, a) :- p(a, a). Query: q() ---------------------------------------- (1) PrologToIRSwTTransformerProof (SOUND) Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert { "root": 2, "program": { "directives": [], "clauses": [ [ "(q)", "(p X Y)" ], [ "(p (a) (b))", "(!)" ], [ "(p (a) (a))", "(p (a) (a))" ] ] }, "graph": { "nodes": { "44": { "goal": [ { "clause": 1, "scope": 2, "term": "(p X3 X4)" }, { "clause": 2, "scope": 2, "term": "(p X3 X4)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X3", "X4" ], "exprvars": [] } }, "2": { "goal": [{ "clause": -1, "scope": -1, "term": "(q)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "25": { "goal": [{ "clause": -1, "scope": -1, "term": "(p X3 X4)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X3", "X4" ], "exprvars": [] } }, "59": { "goal": [ { "clause": -1, "scope": -1, "term": "(!_2)" }, { "clause": 2, "scope": 2, "term": "(p X3 X4)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [ "X3", "X4" ], "exprvars": [] } }, "18": { "goal": [{ "clause": 0, "scope": 1, "term": "(q)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "60": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "61": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "type": "Nodes" }, "edges": [ { "from": 2, "to": 18, "label": "CASE" }, { "from": 18, "to": 25, "label": "ONLY EVAL with clause\nq :- p(X3, X4).\nand substitution" }, { "from": 25, "to": 44, "label": "CASE" }, { "from": 44, "to": 59, "label": "ONLY EVAL with clause\np(a, b) :- !_2.\nand substitutionX3 -> a,\nX4 -> b" }, { "from": 59, "to": 60, "label": "CUT" }, { "from": 60, "to": 61, "label": "SUCCESS" } ], "type": "Graph" } } ---------------------------------------- (2) TRUE