/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 even(g) w.r.t. the given Prolog program could successfully be proven: (0) Prolog (1) PrologToIRSwTTransformerProof [SOUND, 0 ms] (2) TRUE ---------------------------------------- (0) Obligation: Clauses: even(X) :- ','(eq(Y, f(e, f(o, Y))), c(Y, X)). c(f(e, X1), 0). c(f(X2, X), s(Y)) :- c(X, Y). eq(X, X). Query: even(g) ---------------------------------------- (1) PrologToIRSwTTransformerProof (SOUND) Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert { "root": 2, "program": { "directives": [], "clauses": [ [ "(even X)", "(',' (eq Y (f (e) (f (o) Y))) (c Y X))" ], [ "(c (f (e) X1) (0))", null ], [ "(c (f X2 X) (s Y))", "(c X Y)" ], [ "(eq X X)", null ] ] }, "graph": { "nodes": { "2": { "goal": [{ "clause": -1, "scope": -1, "term": "(even T1)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "24": { "goal": [{ "clause": 0, "scope": 1, "term": "(even T1)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "26": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (eq X11 (f (e) (f (o) X11))) (c X11 T4))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T4"], "free": ["X11"], "exprvars": [] } }, "27": { "goal": [{ "clause": 3, "scope": 2, "term": "(',' (eq X11 (f (e) (f (o) X11))) (c X11 T4))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T4"], "free": ["X11"], "exprvars": [] } }, "28": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "type": "Nodes" }, "edges": [ { "from": 2, "to": 24, "label": "CASE" }, { "from": 24, "to": 26, "label": "ONLY EVAL with clause\neven(X10) :- ','(eq(X11, f(e, f(o, X11))), c(X11, X10)).\nand substitutionT1 -> T4,\nX10 -> T4" }, { "from": 26, "to": 27, "label": "CASE" }, { "from": 27, "to": 28, "label": "BACKTRACK\nfor clause: eq(X, X)because of non-unification" } ], "type": "Graph" } } ---------------------------------------- (2) TRUE