/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 dcsolve(g,a) w.r.t. the given Prolog program could successfully be proven: (0) Prolog (1) PrologToIRSwTTransformerProof [SOUND, 0 ms] (2) TRUE ---------------------------------------- (0) Obligation: Clauses: dcsolve(X, Y) :- ','(base(X), conquer(X, Y)). dcsolve(X, Y) :- ','(divide(X, X0, X1, X2), ','(dcsolve(X1, Y1), ','(dcsolve(X2, Y2), merge(X0, Y1, Y2, Y)))). Query: dcsolve(g,a) ---------------------------------------- (1) PrologToIRSwTTransformerProof (SOUND) Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert { "root": 2, "program": { "directives": [], "clauses": [ [ "(dcsolve X Y)", "(',' (base X) (conquer X Y))" ], [ "(dcsolve X Y)", "(',' (divide X X0 X1 X2) (',' (dcsolve X1 Y1) (',' (dcsolve X2 Y2) (merge X0 Y1 Y2 Y))))" ] ] }, "graph": { "nodes": { "2": { "goal": [{ "clause": -1, "scope": -1, "term": "(dcsolve T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "169": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (base T8) (conquer T8 T10))" }, { "clause": 1, "scope": 1, "term": "(dcsolve T8 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T8"], "free": [], "exprvars": [] } }, "19": { "goal": [ { "clause": 0, "scope": 1, "term": "(dcsolve T1 T2)" }, { "clause": 1, "scope": 1, "term": "(dcsolve T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "170": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "type": "Nodes" }, "edges": [ { "from": 2, "to": 19, "label": "CASE" }, { "from": 19, "to": 169, "label": "ONLY EVAL with clause\ndcsolve(X7, X8) :- ','(base(X7), conquer(X7, X8)).\nand substitutionT1 -> T8,\nX7 -> T8,\nT2 -> T10,\nX8 -> T10,\nT9 -> T10" }, { "from": 169, "to": 170, "label": "UNDEFINED ERROR" } ], "type": "Graph" } } ---------------------------------------- (2) TRUE