/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: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 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": 17, "program": { "directives": [], "clauses": [ [ "(at X (fido))", "(',' (at X (mary)) (near X))" ], [ "(at (ta) (mary))", null ], [ "(at (jm) (mary))", null ], [ "(near (jm))", null ] ] }, "graph": { "nodes": { "22": { "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": [] } }, "170": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "171": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "type": "Nodes", "172": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "173": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "152": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "174": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "154": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "112": { "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": [] } }, "156": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "113": { "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": [] } }, "157": { "goal": [{ "clause": 3, "scope": 3, "term": "(near T10)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": [], "exprvars": [] } }, "70": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (at T8 (mary)) (near T8))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "71": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "17": { "goal": [{ "clause": -1, "scope": -1, "term": "(at T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "18": { "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": [] } }, "160": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "162": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "141": { "goal": [{ "clause": 1, "scope": 2, "term": "(at T8 (mary))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "163": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "143": { "goal": [{ "clause": 2, "scope": 2, "term": "(at T8 (mary))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "165": { "goal": [{ "clause": 1, "scope": 1, "term": "(at T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "167": { "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": [] } }, "147": { "goal": [], "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": [] } }, "149": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "106": { "goal": [{ "clause": -1, "scope": -1, "term": "(at T8 (mary))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "107": { "goal": [{ "clause": -1, "scope": -1, "term": "(near T10)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": [], "exprvars": [] } }, "21": { "goal": [{ "clause": 0, "scope": 1, "term": "(at T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 17, "to": 18, "label": "CASE" }, { "from": 18, "to": 21, "label": "PARALLEL" }, { "from": 18, "to": 22, "label": "PARALLEL" }, { "from": 21, "to": 70, "label": "EVAL with clause\nat(X5, fido) :- ','(at(X5, mary), near(X5)).\nand substitutionT1 -> T8,\nX5 -> T8,\nT2 -> fido,\nT7 -> T8" }, { "from": 21, "to": 71, "label": "EVAL-BACKTRACK" }, { "from": 22, "to": 165, "label": "PARALLEL" }, { "from": 22, "to": 167, "label": "PARALLEL" }, { "from": 70, "to": 106, "label": "SPLIT 1" }, { "from": 70, "to": 107, "label": "SPLIT 2\nnew knowledge:\nT10 is ground\nreplacements:T8 -> T10" }, { "from": 106, "to": 112, "label": "CASE" }, { "from": 107, "to": 157, "label": "CASE" }, { "from": 112, "to": 113, "label": "BACKTRACK\nfor clause: at(X, fido) :- ','(at(X, mary), near(X))because of non-unification" }, { "from": 113, "to": 141, "label": "PARALLEL" }, { "from": 113, "to": 143, "label": "PARALLEL" }, { "from": 141, "to": 146, "label": "EVAL with clause\nat(ta, mary).\nand substitutionT8 -> ta" }, { "from": 141, "to": 147, "label": "EVAL-BACKTRACK" }, { "from": 143, "to": 152, "label": "EVAL with clause\nat(jm, mary).\nand substitutionT8 -> jm" }, { "from": 143, "to": 154, "label": "EVAL-BACKTRACK" }, { "from": 146, "to": 149, "label": "SUCCESS" }, { "from": 152, "to": 156, "label": "SUCCESS" }, { "from": 157, "to": 160, "label": "EVAL with clause\nnear(jm).\nand substitutionT10 -> jm" }, { "from": 157, "to": 162, "label": "EVAL-BACKTRACK" }, { "from": 160, "to": 163, "label": "SUCCESS" }, { "from": 165, "to": 169, "label": "EVAL with clause\nat(ta, mary).\nand substitutionT1 -> ta,\nT2 -> mary" }, { "from": 165, "to": 170, "label": "EVAL-BACKTRACK" }, { "from": 167, "to": 172, "label": "EVAL with clause\nat(jm, mary).\nand substitutionT1 -> jm,\nT2 -> mary" }, { "from": 167, "to": 173, "label": "EVAL-BACKTRACK" }, { "from": 169, "to": 171, "label": "SUCCESS" }, { "from": 172, "to": 174, "label": "SUCCESS" } ], "type": "Graph" } } ---------------------------------------- (2) TRUE