/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 at(a,a) w.r.t. the given Prolog program could successfully be proven: (0) Prolog (1) PrologToIRSwTTransformerProof [SOUND, 0 ms] (2) TRUE ---------------------------------------- (0) Obligation: Clauses: at(X, fido) :- ','(at(X, mary), near(X)). at(ta, mary). at(jm, mary). near(jm). Query: at(a,a) ---------------------------------------- (1) PrologToIRSwTTransformerProof (SOUND) Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert { "root": 19, "program": { "directives": [], "clauses": [ [ "(at X (fido))", "(',' (at X (mary)) (near X))" ], [ "(at (ta) (mary))", null ], [ "(at (jm) (mary))", null ], [ "(near (jm))", null ] ] }, "graph": { "nodes": { "23": { "goal": [{ "clause": 0, "scope": 1, "term": "(at T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "24": { "goal": [ { "clause": 1, "scope": 1, "term": "(at T1 T2)" }, { "clause": 2, "scope": 1, "term": "(at T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "171": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "type": "Nodes", "150": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "173": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "153": { "goal": [{ "clause": 3, "scope": 3, "term": "(near T10)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": [], "exprvars": [] } }, "133": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "177": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "113": { "goal": [{ "clause": -1, "scope": -1, "term": "(at T8 (mary))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "157": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "179": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "114": { "goal": [{ "clause": -1, "scope": -1, "term": "(near T10)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": [], "exprvars": [] } }, "137": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "159": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "118": { "goal": [ { "clause": 0, "scope": 2, "term": "(at T8 (mary))" }, { "clause": 1, "scope": 2, "term": "(at T8 (mary))" }, { "clause": 2, "scope": 2, "term": "(at T8 (mary))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "119": { "goal": [ { "clause": 1, "scope": 2, "term": "(at T8 (mary))" }, { "clause": 2, "scope": 2, "term": "(at T8 (mary))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "19": { "goal": [{ "clause": -1, "scope": -1, "term": "(at T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "160": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "182": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "120": { "goal": [{ "clause": 1, "scope": 2, "term": "(at T8 (mary))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "164": { "goal": [{ "clause": 1, "scope": 1, "term": "(at T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "121": { "goal": [{ "clause": 2, "scope": 2, "term": "(at T8 (mary))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "165": { "goal": [{ "clause": 2, "scope": 1, "term": "(at T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "146": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "169": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "148": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "127": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "106": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (at T8 (mary)) (near T8))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "109": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "20": { "goal": [ { "clause": 0, "scope": 1, "term": "(at T1 T2)" }, { "clause": 1, "scope": 1, "term": "(at T1 T2)" }, { "clause": 2, "scope": 1, "term": "(at T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 19, "to": 20, "label": "CASE" }, { "from": 20, "to": 23, "label": "PARALLEL" }, { "from": 20, "to": 24, "label": "PARALLEL" }, { "from": 23, "to": 106, "label": "EVAL with clause\nat(X5, fido) :- ','(at(X5, mary), near(X5)).\nand substitutionT1 -> T8,\nX5 -> T8,\nT2 -> fido,\nT7 -> T8" }, { "from": 23, "to": 109, "label": "EVAL-BACKTRACK" }, { "from": 24, "to": 164, "label": "PARALLEL" }, { "from": 24, "to": 165, "label": "PARALLEL" }, { "from": 106, "to": 113, "label": "SPLIT 1" }, { "from": 106, "to": 114, "label": "SPLIT 2\nnew knowledge:\nT10 is ground\nreplacements:T8 -> T10" }, { "from": 113, "to": 118, "label": "CASE" }, { "from": 114, "to": 153, "label": "CASE" }, { "from": 118, "to": 119, "label": "BACKTRACK\nfor clause: at(X, fido) :- ','(at(X, mary), near(X))because of non-unification" }, { "from": 119, "to": 120, "label": "PARALLEL" }, { "from": 119, "to": 121, "label": "PARALLEL" }, { "from": 120, "to": 127, "label": "EVAL with clause\nat(ta, mary).\nand substitutionT8 -> ta" }, { "from": 120, "to": 133, "label": "EVAL-BACKTRACK" }, { "from": 121, "to": 146, "label": "EVAL with clause\nat(jm, mary).\nand substitutionT8 -> jm" }, { "from": 121, "to": 148, "label": "EVAL-BACKTRACK" }, { "from": 127, "to": 137, "label": "SUCCESS" }, { "from": 146, "to": 150, "label": "SUCCESS" }, { "from": 153, "to": 157, "label": "EVAL with clause\nnear(jm).\nand substitutionT10 -> jm" }, { "from": 153, "to": 159, "label": "EVAL-BACKTRACK" }, { "from": 157, "to": 160, "label": "SUCCESS" }, { "from": 164, "to": 169, "label": "EVAL with clause\nat(ta, mary).\nand substitutionT1 -> ta,\nT2 -> mary" }, { "from": 164, "to": 171, "label": "EVAL-BACKTRACK" }, { "from": 165, "to": 177, "label": "EVAL with clause\nat(jm, mary).\nand substitutionT1 -> jm,\nT2 -> mary" }, { "from": 165, "to": 179, "label": "EVAL-BACKTRACK" }, { "from": 169, "to": 173, "label": "SUCCESS" }, { "from": 177, "to": 182, "label": "SUCCESS" } ], "type": "Graph" } } ---------------------------------------- (2) TRUE