/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 e(g) w.r.t. the given Prolog program could successfully be proven: (0) Prolog (1) PrologToDTProblemTransformerProof [SOUND, 0 ms] (2) TRIPLES (3) TPisEmptyProof [EQUIVALENT, 0 ms] (4) YES ---------------------------------------- (0) Obligation: Clauses: e(X) :- ','(=(Y, .(e, .(o, Y))), c(Y, X)). c(.(e, X1), 0). c(.(X2, X), s(Y)) :- c(X, Y). Query: e(g) ---------------------------------------- (1) PrologToDTProblemTransformerProof (SOUND) Built DT problem from termination graph DT10. { "root": 59, "program": { "directives": [], "clauses": [ [ "(e X)", "(',' (= Y (. (e) (. (o) Y))) (c Y X))" ], [ "(c (. (e) X1) (0))", null ], [ "(c (. X2 X) (s Y))", "(c X Y)" ] ] }, "graph": { "nodes": { "59": { "goal": [{ "clause": -1, "scope": -1, "term": "(e T1)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "60": { "goal": [{ "clause": 0, "scope": 1, "term": "(e T1)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "61": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (= X5 (. (e) (. (o) X5))) (c X5 T3))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T3"], "free": ["X5"], "exprvars": [] } }, "type": "Nodes", "62": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 59, "to": 60, "label": "CASE" }, { "from": 60, "to": 61, "label": "ONLY EVAL with clause\ne(X4) :- ','(=(X5, .(e, .(o, X5))), c(X5, X4)).\nand substitutionT1 -> T3,\nX4 -> T3" }, { "from": 61, "to": 62, "label": "UNIFY-FAIL\nbecause of non-unification" } ], "type": "Graph" } } ---------------------------------------- (2) Obligation: Triples: Clauses: Afs: ---------------------------------------- (3) TPisEmptyProof (EQUIVALENT) There are no more dependency triples. Hence, the dependency triple problem trivially terminates. ---------------------------------------- (4) YES