/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 f(a,a,g) w.r.t. the given Prolog program could successfully be proven: (0) Prolog (1) PrologToIRSwTTransformerProof [SOUND, 0 ms] (2) TRUE ---------------------------------------- (0) Obligation: Clauses: f(0, 1, X) :- f(X, X, X). Query: f(a,a,g) ---------------------------------------- (1) PrologToIRSwTTransformerProof (SOUND) Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert { "root": 3, "program": { "directives": [], "clauses": [[ "(f (0) (1) X)", "(f X X X)" ]] }, "graph": { "nodes": { "3": { "goal": [{ "clause": -1, "scope": -1, "term": "(f T1 T2 T3)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T3"], "free": [], "exprvars": [] } }, "26": { "goal": [{ "clause": -1, "scope": -1, "term": "(f T6 T6 T6)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "28": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "7": { "goal": [{ "clause": 0, "scope": 1, "term": "(f T1 T2 T3)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T3"], "free": [], "exprvars": [] } }, "type": "Nodes", "63": { "goal": [{ "clause": 0, "scope": 2, "term": "(f T6 T6 T6)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "64": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 3, "to": 7, "label": "CASE" }, { "from": 7, "to": 26, "label": "EVAL with clause\nf(0, 1, X3) :- f(X3, X3, X3).\nand substitutionT1 -> 0,\nT2 -> 1,\nT3 -> T6,\nX3 -> T6" }, { "from": 7, "to": 28, "label": "EVAL-BACKTRACK" }, { "from": 26, "to": 63, "label": "CASE" }, { "from": 63, "to": 64, "label": "BACKTRACK\nfor clause: f(0, 1, X) :- f(X, X, X)because of non-unification" } ], "type": "Graph" } } ---------------------------------------- (2) TRUE