MAYBE

Found an example we currently can't prove?
-> Consider contributing it to the benchmark set: https://mysolvertimesout.org/

proof of /hpcwork/ff862203/termcomp26/benchmarks/94UMa.pl
# AProVE Commit ID: 23a904c96b029b0a549cde0d0d17dbccf967db59 jckassing 20260626 unpublished dirty


Left Termination of the query pattern

p(g)

w.r.t. the given Prolog program could not be shown:

(0) Prolog
(1) PrologToPiTRSProof [SOUND, 0 ms]
(2) PiTRS
    (3) DependencyPairsProof [EQUIVALENT, 0 ms]
    (4) PiDP
    (5) DependencyGraphProof [EQUIVALENT, 0 ms]
    (6) PiDP
    (7) UsableRulesProof [EQUIVALENT, 0 ms]
    (8) PiDP
    (9) PiDPToQDPProof [EQUIVALENT, 0 ms]
    (10) QDP
    (11) TransformationProof [EQUIVALENT, 0 ms]
    (12) QDP
    (13) NonTerminationLoopProof [COMPLETE, 0 ms]
    (14) NO
(15) PrologToPiTRSProof [SOUND, 0 ms]
(16) PiTRS
    (17) DependencyPairsProof [EQUIVALENT, 0 ms]
    (18) PiDP
    (19) DependencyGraphProof [EQUIVALENT, 0 ms]
    (20) PiDP
    (21) UsableRulesProof [EQUIVALENT, 0 ms]
    (22) PiDP
    (23) PiDPToQDPProof [EQUIVALENT, 0 ms]
    (24) QDP
    (25) TransformationProof [EQUIVALENT, 0 ms]
    (26) QDP
    (27) NonTerminationLoopProof [COMPLETE, 0 ms]
    (28) NO
(29) PrologToTRSTransformerProof [SOUND, 0 ms]
(30) QTRS
    (31) QTRSRRRProof [EQUIVALENT, 16 ms]
    (32) QTRS
    (33) QTRSRRRProof [EQUIVALENT, 2 ms]
    (34) QTRS
    (35) Overlay + Local Confluence [EQUIVALENT, 1 ms]
    (36) QTRS
    (37) DependencyPairsProof [EQUIVALENT, 0 ms]
    (38) QDP
    (39) UsableRulesProof [EQUIVALENT, 0 ms]
    (40) QDP
    (41) QReductionProof [EQUIVALENT, 0 ms]
    (42) QDP
    (43) TransformationProof [EQUIVALENT, 0 ms]
    (44) QDP
    (45) NonTerminationLoopProof [COMPLETE, 0 ms]
    (46) NO
(47) PrologToIRSwTTransformerProof [SOUND, 0 ms]
(48) IRSwT
    (49) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
    (50) IRSwT
    (51) IntTRSCompressionProof [EQUIVALENT, 19 ms]
    (52) IRSwT
    (53) IRSFormatTransformerProof [EQUIVALENT, 0 ms]
    (54) IRSwT
    (55) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms]
    (56) IRSwT
(57) PrologToDTProblemTransformerProof [SOUND, 0 ms]
(58) TRIPLES
    (59) TriplesToPiDPProof [SOUND, 0 ms]
    (60) PiDP
    (61) DependencyGraphProof [EQUIVALENT, 0 ms]
    (62) PiDP
    (63) PiDPToQDPProof [EQUIVALENT, 0 ms]
    (64) QDP
    (65) TransformationProof [EQUIVALENT, 0 ms]
    (66) QDP
    (67) NonTerminationLoopProof [COMPLETE, 0 ms]
    (68) NO


----------------------------------------

(0)
Obligation:
Clauses:

p(a).
p(X) :- p(a).
q(b).


Query: p(g)
----------------------------------------

(1) PrologToPiTRSProof (SOUND)
We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes:

p_in_1: (b)

Transforming Prolog into the following Term Rewriting System:

Pi-finite rewrite system:
The TRS R consists of the following rules:

   p_in_g(a) -> p_out_g(a)
   p_in_g(X) -> U1_g(X, p_in_g(a))
   U1_g(X, p_out_g(a)) -> p_out_g(X)

The argument filtering Pi contains the following mapping:
p_in_g(x1)  =  p_in_g(x1)

a  =  a

p_out_g(x1)  =  p_out_g

U1_g(x1, x2)  =  U1_g(x2)





Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog



----------------------------------------

(2)
Obligation:
Pi-finite rewrite system:
The TRS R consists of the following rules:

   p_in_g(a) -> p_out_g(a)
   p_in_g(X) -> U1_g(X, p_in_g(a))
   U1_g(X, p_out_g(a)) -> p_out_g(X)

The argument filtering Pi contains the following mapping:
p_in_g(x1)  =  p_in_g(x1)

a  =  a

p_out_g(x1)  =  p_out_g

U1_g(x1, x2)  =  U1_g(x2)



----------------------------------------

(3) DependencyPairsProof (EQUIVALENT)
Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

   P_IN_G(X) -> U1_G(X, p_in_g(a))
   P_IN_G(X) -> P_IN_G(a)

The TRS R consists of the following rules:

   p_in_g(a) -> p_out_g(a)
   p_in_g(X) -> U1_g(X, p_in_g(a))
   U1_g(X, p_out_g(a)) -> p_out_g(X)

The argument filtering Pi contains the following mapping:
p_in_g(x1)  =  p_in_g(x1)

a  =  a

p_out_g(x1)  =  p_out_g

U1_g(x1, x2)  =  U1_g(x2)

P_IN_G(x1)  =  P_IN_G(x1)

U1_G(x1, x2)  =  U1_G(x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(4)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   P_IN_G(X) -> U1_G(X, p_in_g(a))
   P_IN_G(X) -> P_IN_G(a)

The TRS R consists of the following rules:

   p_in_g(a) -> p_out_g(a)
   p_in_g(X) -> U1_g(X, p_in_g(a))
   U1_g(X, p_out_g(a)) -> p_out_g(X)

The argument filtering Pi contains the following mapping:
p_in_g(x1)  =  p_in_g(x1)

a  =  a

p_out_g(x1)  =  p_out_g

U1_g(x1, x2)  =  U1_g(x2)

P_IN_G(x1)  =  P_IN_G(x1)

U1_G(x1, x2)  =  U1_G(x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(5) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 1 less node.
----------------------------------------

(6)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   P_IN_G(X) -> P_IN_G(a)

The TRS R consists of the following rules:

   p_in_g(a) -> p_out_g(a)
   p_in_g(X) -> U1_g(X, p_in_g(a))
   U1_g(X, p_out_g(a)) -> p_out_g(X)

The argument filtering Pi contains the following mapping:
p_in_g(x1)  =  p_in_g(x1)

a  =  a

p_out_g(x1)  =  p_out_g

U1_g(x1, x2)  =  U1_g(x2)

P_IN_G(x1)  =  P_IN_G(x1)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(7) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(8)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   P_IN_G(X) -> P_IN_G(a)

R is empty.
Pi is empty.
We have to consider all (P,R,Pi)-chains
----------------------------------------

(9) PiDPToQDPProof (EQUIVALENT)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(10)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   P_IN_G(X) -> P_IN_G(a)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(11) TransformationProof (EQUIVALENT)
By instantiating [LPAR04] the rule P_IN_G(X) -> P_IN_G(a) we obtained the following new rules [LPAR04]:

   (P_IN_G(a) -> P_IN_G(a),P_IN_G(a) -> P_IN_G(a))


----------------------------------------

(12)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   P_IN_G(a) -> P_IN_G(a)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(13) NonTerminationLoopProof (COMPLETE)
We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by semiunifying a rule from P directly.

s = P_IN_G(a) evaluates to  t =P_IN_G(a)

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
* Matcher: [ ]
* Semiunifier: [ ]

--------------------------------------------------------------------------------
Rewriting sequence

The DP semiunifies directly so there is only one rewrite step from P_IN_G(a) to P_IN_G(a).




----------------------------------------

(14)
NO

----------------------------------------

(15) PrologToPiTRSProof (SOUND)
We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes:

p_in_1: (b)

Transforming Prolog into the following Term Rewriting System:

Pi-finite rewrite system:
The TRS R consists of the following rules:

   p_in_g(a) -> p_out_g(a)
   p_in_g(X) -> U1_g(X, p_in_g(a))
   U1_g(X, p_out_g(a)) -> p_out_g(X)

Pi is empty.



Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog



----------------------------------------

(16)
Obligation:
Pi-finite rewrite system:
The TRS R consists of the following rules:

   p_in_g(a) -> p_out_g(a)
   p_in_g(X) -> U1_g(X, p_in_g(a))
   U1_g(X, p_out_g(a)) -> p_out_g(X)

Pi is empty.

----------------------------------------

(17) DependencyPairsProof (EQUIVALENT)
Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

   P_IN_G(X) -> U1_G(X, p_in_g(a))
   P_IN_G(X) -> P_IN_G(a)

The TRS R consists of the following rules:

   p_in_g(a) -> p_out_g(a)
   p_in_g(X) -> U1_g(X, p_in_g(a))
   U1_g(X, p_out_g(a)) -> p_out_g(X)

Pi is empty.
We have to consider all (P,R,Pi)-chains
----------------------------------------

(18)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   P_IN_G(X) -> U1_G(X, p_in_g(a))
   P_IN_G(X) -> P_IN_G(a)

The TRS R consists of the following rules:

   p_in_g(a) -> p_out_g(a)
   p_in_g(X) -> U1_g(X, p_in_g(a))
   U1_g(X, p_out_g(a)) -> p_out_g(X)

Pi is empty.
We have to consider all (P,R,Pi)-chains
----------------------------------------

(19) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 1 less node.
----------------------------------------

(20)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   P_IN_G(X) -> P_IN_G(a)

The TRS R consists of the following rules:

   p_in_g(a) -> p_out_g(a)
   p_in_g(X) -> U1_g(X, p_in_g(a))
   U1_g(X, p_out_g(a)) -> p_out_g(X)

Pi is empty.
We have to consider all (P,R,Pi)-chains
----------------------------------------

(21) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(22)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   P_IN_G(X) -> P_IN_G(a)

R is empty.
Pi is empty.
We have to consider all (P,R,Pi)-chains
----------------------------------------

(23) PiDPToQDPProof (EQUIVALENT)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(24)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   P_IN_G(X) -> P_IN_G(a)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(25) TransformationProof (EQUIVALENT)
By instantiating [LPAR04] the rule P_IN_G(X) -> P_IN_G(a) we obtained the following new rules [LPAR04]:

   (P_IN_G(a) -> P_IN_G(a),P_IN_G(a) -> P_IN_G(a))


----------------------------------------

(26)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   P_IN_G(a) -> P_IN_G(a)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(27) NonTerminationLoopProof (COMPLETE)
We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by semiunifying a rule from P directly.

s = P_IN_G(a) evaluates to  t =P_IN_G(a)

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
* Matcher: [ ]
* Semiunifier: [ ]

--------------------------------------------------------------------------------
Rewriting sequence

The DP semiunifies directly so there is only one rewrite step from P_IN_G(a) to P_IN_G(a).




----------------------------------------

(28)
NO

----------------------------------------

(29) PrologToTRSTransformerProof (SOUND)
Transformed Prolog program to TRS.

{
    "root": 3,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(p (a))",
                null
            ],
            [
                "(p X)",
                "(p (a))"
            ],
            [
                "(q (b))",
                null
            ]
        ]
    },
    "graph": {
        "nodes": {
            "44": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "55": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p (a))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "45": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "3": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p T1)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T1"],
                    "free": [],
                    "exprvars": []
                }
            },
            "14": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(p T1)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(p T1)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T1"],
                    "free": [],
                    "exprvars": []
                }
            },
            "17": {
                "goal": [{
                    "clause": 0,
                    "scope": 1,
                    "term": "(p T1)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T1"],
                    "free": [],
                    "exprvars": []
                }
            },
            "18": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(p T1)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T1"],
                    "free": [],
                    "exprvars": []
                }
            },
            "50": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "type": "Nodes"
        },
        "edges": [
            {
                "from": 3,
                "to": 14,
                "label": "CASE"
            },
            {
                "from": 14,
                "to": 17,
                "label": "PARALLEL"
            },
            {
                "from": 14,
                "to": 18,
                "label": "PARALLEL"
            },
            {
                "from": 17,
                "to": 44,
                "label": "EVAL with clause\np(a).\nand substitutionT1 -> a"
            },
            {
                "from": 17,
                "to": 45,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 18,
                "to": 55,
                "label": "ONLY EVAL with clause\np(X3) :- p(a).\nand substitutionT1 -> T4,\nX3 -> T4"
            },
            {
                "from": 44,
                "to": 50,
                "label": "SUCCESS"
            },
            {
                "from": 55,
                "to": 3,
                "label": "INSTANCE with matching:\nT1 -> a"
            }
        ],
        "type": "Graph"
    }
}

----------------------------------------

(30)
Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:

   f3_in(a) -> f3_out1
   f3_in(T4) -> U1(f3_in(a), T4)
   U1(f3_out1, T4) -> f3_out1

Q is empty.

----------------------------------------

(31) QTRSRRRProof (EQUIVALENT)
Used ordering:
Polynomial interpretation [POLO]:

   POL(U1(x_1, x_2)) = x_1 + 2*x_2
   POL(a) = 0
   POL(f3_in(x_1)) = 1 + 2*x_1
   POL(f3_out1) = 0
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:

   f3_in(a) -> f3_out1




----------------------------------------

(32)
Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:

   f3_in(T4) -> U1(f3_in(a), T4)
   U1(f3_out1, T4) -> f3_out1

Q is empty.

----------------------------------------

(33) QTRSRRRProof (EQUIVALENT)
Used ordering:
Polynomial interpretation [POLO]:

   POL(U1(x_1, x_2)) = 2*x_1 + 2*x_2
   POL(a) = 0
   POL(f3_in(x_1)) = 2*x_1
   POL(f3_out1) = 1
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:

   U1(f3_out1, T4) -> f3_out1




----------------------------------------

(34)
Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:

   f3_in(T4) -> U1(f3_in(a), T4)

Q is empty.

----------------------------------------

(35) Overlay + Local Confluence (EQUIVALENT)
The TRS is overlay and locally confluent. By [NOC] we can switch to innermost.
----------------------------------------

(36)
Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:

   f3_in(T4) -> U1(f3_in(a), T4)

The set Q consists of the following terms:

   f3_in(x0)


----------------------------------------

(37) DependencyPairsProof (EQUIVALENT)
Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.
----------------------------------------

(38)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F3_IN(T4) -> F3_IN(a)

The TRS R consists of the following rules:

   f3_in(T4) -> U1(f3_in(a), T4)

The set Q consists of the following terms:

   f3_in(x0)

We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(39) UsableRulesProof (EQUIVALENT)
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.
----------------------------------------

(40)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F3_IN(T4) -> F3_IN(a)

R is empty.
The set Q consists of the following terms:

   f3_in(x0)

We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(41) QReductionProof (EQUIVALENT)
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

   f3_in(x0)


----------------------------------------

(42)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F3_IN(T4) -> F3_IN(a)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(43) TransformationProof (EQUIVALENT)
By instantiating [LPAR04] the rule F3_IN(T4) -> F3_IN(a) we obtained the following new rules [LPAR04]:

   (F3_IN(a) -> F3_IN(a),F3_IN(a) -> F3_IN(a))


----------------------------------------

(44)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F3_IN(a) -> F3_IN(a)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(45) NonTerminationLoopProof (COMPLETE)
We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by semiunifying a rule from P directly.

s = F3_IN(a) evaluates to  t =F3_IN(a)

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
* Matcher: [ ]
* Semiunifier: [ ]

--------------------------------------------------------------------------------
Rewriting sequence

The DP semiunifies directly so there is only one rewrite step from F3_IN(a) to F3_IN(a).




----------------------------------------

(46)
NO

----------------------------------------

(47) PrologToIRSwTTransformerProof (SOUND)
Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert

{
    "root": 2,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(p (a))",
                null
            ],
            [
                "(p X)",
                "(p (a))"
            ],
            [
                "(q (b))",
                null
            ]
        ]
    },
    "graph": {
        "nodes": {
            "2": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p T1)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T1"],
                    "free": [],
                    "exprvars": []
                }
            },
            "15": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(p T1)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(p T1)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T1"],
                    "free": [],
                    "exprvars": []
                }
            },
            "48": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "49": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "type": "Nodes",
            "30": {
                "goal": [{
                    "clause": 0,
                    "scope": 1,
                    "term": "(p T1)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T1"],
                    "free": [],
                    "exprvars": []
                }
            },
            "52": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "31": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(p T1)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T1"],
                    "free": [],
                    "exprvars": []
                }
            },
            "54": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p (a))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 2,
                "to": 15,
                "label": "CASE"
            },
            {
                "from": 15,
                "to": 30,
                "label": "PARALLEL"
            },
            {
                "from": 15,
                "to": 31,
                "label": "PARALLEL"
            },
            {
                "from": 30,
                "to": 48,
                "label": "EVAL with clause\np(a).\nand substitutionT1 -> a"
            },
            {
                "from": 30,
                "to": 49,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 31,
                "to": 54,
                "label": "ONLY EVAL with clause\np(X3) :- p(a).\nand substitutionT1 -> T4,\nX3 -> T4"
            },
            {
                "from": 48,
                "to": 52,
                "label": "SUCCESS"
            },
            {
                "from": 54,
                "to": 2,
                "label": "INSTANCE with matching:\nT1 -> a"
            }
        ],
        "type": "Graph"
    }
}

----------------------------------------

(48)
Obligation:
Rules:
f15_in(T1) -> f31_in(T1) :|: TRUE
f31_out(x) -> f15_out(x) :|: TRUE
f15_in(x1) -> f30_in(x1) :|: TRUE
f30_out(x2) -> f15_out(x2) :|: TRUE
f54_in -> f2_in(a) :|: TRUE
f2_out(a) -> f54_out :|: TRUE
f31_in(T4) -> f54_in :|: TRUE
f54_out -> f31_out(x3) :|: TRUE
f15_out(x4) -> f2_out(x4) :|: TRUE
f2_in(x5) -> f15_in(x5) :|: TRUE
Start term: f2_in(T1)

----------------------------------------

(49) IRSwTSimpleDependencyGraphProof (EQUIVALENT)
Constructed simple dependency graph.

Simplified to the following IRSwTs:

intTRSProblem:
f15_in(T1) -> f31_in(T1) :|: TRUE
f54_in -> f2_in(a) :|: TRUE
f31_in(T4) -> f54_in :|: TRUE
f2_in(x5) -> f15_in(x5) :|: TRUE


----------------------------------------

(50)
Obligation:
Rules:
f15_in(T1) -> f31_in(T1) :|: TRUE
f54_in -> f2_in(a) :|: TRUE
f31_in(T4) -> f54_in :|: TRUE
f2_in(x5) -> f15_in(x5) :|: TRUE

----------------------------------------

(51) IntTRSCompressionProof (EQUIVALENT)
Compressed rules.
----------------------------------------

(52)
Obligation:
Rules:
f15_in(T1:0) -> f15_in(a) :|: TRUE

----------------------------------------

(53) IRSFormatTransformerProof (EQUIVALENT)
Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %).
----------------------------------------

(54)
Obligation:
Rules:
f15_in(T1:0) -> f15_in(a) :|: TRUE

----------------------------------------

(55) IRSwTTerminationDigraphProof (EQUIVALENT)
Constructed termination digraph!
Nodes:
(1) f15_in(T1:0) -> f15_in(a) :|: TRUE

Arcs:
(1) -> (1)

This digraph is fully evaluated!
----------------------------------------

(56)
Obligation:

Termination digraph:
Nodes:
(1) f15_in(T1:0) -> f15_in(a) :|: TRUE

Arcs:
(1) -> (1)

This digraph is fully evaluated!

----------------------------------------

(57) PrologToDTProblemTransformerProof (SOUND)
Built DT problem from termination graph DT10.

{
    "root": 1,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(p (a))",
                null
            ],
            [
                "(p X)",
                "(p (a))"
            ],
            [
                "(q (b))",
                null
            ]
        ]
    },
    "graph": {
        "nodes": {
            "66": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 2,
                        "term": "(p (a))"
                    },
                    {
                        "clause": 1,
                        "scope": 2,
                        "term": "(p (a))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "77": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "67": {
                "goal": [{
                    "clause": 0,
                    "scope": 2,
                    "term": "(p (a))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "78": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p (a))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "46": {
                "goal": [
                    {
                        "clause": -1,
                        "scope": -1,
                        "term": "(true)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(p (a))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "68": {
                "goal": [{
                    "clause": 1,
                    "scope": 2,
                    "term": "(p (a))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "47": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(p T1)"
                }],
                "kb": {
                    "nonunifying": [[
                        "(p T1)",
                        "(p (a))"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T1"],
                    "free": [],
                    "exprvars": []
                }
            },
            "69": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "16": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(p T1)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(p T1)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T1"],
                    "free": [],
                    "exprvars": []
                }
            },
            "type": "Nodes",
            "1": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p T1)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T1"],
                    "free": [],
                    "exprvars": []
                }
            },
            "70": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "71": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p (a))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "72": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p (a))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "51": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(p (a))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "73": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 3,
                        "term": "(p (a))"
                    },
                    {
                        "clause": 1,
                        "scope": 3,
                        "term": "(p (a))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "74": {
                "goal": [{
                    "clause": 0,
                    "scope": 3,
                    "term": "(p (a))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "53": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p (a))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "75": {
                "goal": [{
                    "clause": 1,
                    "scope": 3,
                    "term": "(p (a))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "76": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 1,
                "to": 16,
                "label": "CASE"
            },
            {
                "from": 16,
                "to": 46,
                "label": "EVAL with clause\np(a).\nand substitutionT1 -> a"
            },
            {
                "from": 16,
                "to": 47,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 46,
                "to": 51,
                "label": "SUCCESS"
            },
            {
                "from": 47,
                "to": 72,
                "label": "ONLY EVAL with clause\np(X7) :- p(a).\nand substitutionT1 -> T3,\nX7 -> T3"
            },
            {
                "from": 51,
                "to": 53,
                "label": "ONLY EVAL with clause\np(X2) :- p(a).\nand substitutionX2 -> a"
            },
            {
                "from": 53,
                "to": 66,
                "label": "CASE"
            },
            {
                "from": 66,
                "to": 67,
                "label": "PARALLEL"
            },
            {
                "from": 66,
                "to": 68,
                "label": "PARALLEL"
            },
            {
                "from": 67,
                "to": 69,
                "label": "ONLY EVAL with clause\np(a).\nand substitution"
            },
            {
                "from": 68,
                "to": 71,
                "label": "ONLY EVAL with clause\np(X5) :- p(a).\nand substitutionX5 -> a"
            },
            {
                "from": 69,
                "to": 70,
                "label": "SUCCESS"
            },
            {
                "from": 71,
                "to": 1,
                "label": "INSTANCE with matching:\nT1 -> a"
            },
            {
                "from": 72,
                "to": 73,
                "label": "CASE"
            },
            {
                "from": 73,
                "to": 74,
                "label": "PARALLEL"
            },
            {
                "from": 73,
                "to": 75,
                "label": "PARALLEL"
            },
            {
                "from": 74,
                "to": 76,
                "label": "ONLY EVAL with clause\np(a).\nand substitution"
            },
            {
                "from": 75,
                "to": 78,
                "label": "ONLY EVAL with clause\np(X10) :- p(a).\nand substitutionX10 -> a"
            },
            {
                "from": 76,
                "to": 77,
                "label": "SUCCESS"
            },
            {
                "from": 78,
                "to": 1,
                "label": "INSTANCE with matching:\nT1 -> a"
            }
        ],
        "type": "Graph"
    }
}

----------------------------------------

(58)
Obligation:
Triples:

pA(a) :- pA(a).
pA(X1) :- pA(a).

Clauses:

pcA(a).
pcA(a).
pcA(a) :- pcA(a).
pcA(X1).
pcA(X1) :- pcA(a).

Afs:

pA(x1)  =  pA(x1)


----------------------------------------

(59) TriplesToPiDPProof (SOUND)
We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes:

pA_in_1: (b)

Transforming TRIPLES into the following Term Rewriting System:

Pi DP problem:
The TRS P consists of the following rules:

   PA_IN_G(a) -> U1_G(pA_in_g(a))
   PA_IN_G(a) -> PA_IN_G(a)
   PA_IN_G(X1) -> U2_G(X1, pA_in_g(a))
   PA_IN_G(X1) -> PA_IN_G(a)

R is empty.
Pi is empty.
We have to consider all (P,R,Pi)-chains


Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES



----------------------------------------

(60)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   PA_IN_G(a) -> U1_G(pA_in_g(a))
   PA_IN_G(a) -> PA_IN_G(a)
   PA_IN_G(X1) -> U2_G(X1, pA_in_g(a))
   PA_IN_G(X1) -> PA_IN_G(a)

R is empty.
Pi is empty.
We have to consider all (P,R,Pi)-chains
----------------------------------------

(61) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 2 less nodes.
----------------------------------------

(62)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   PA_IN_G(X1) -> PA_IN_G(a)
   PA_IN_G(a) -> PA_IN_G(a)

R is empty.
Pi is empty.
We have to consider all (P,R,Pi)-chains
----------------------------------------

(63) PiDPToQDPProof (EQUIVALENT)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(64)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   PA_IN_G(X1) -> PA_IN_G(a)
   PA_IN_G(a) -> PA_IN_G(a)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(65) TransformationProof (EQUIVALENT)
By instantiating [LPAR04] the rule PA_IN_G(X1) -> PA_IN_G(a) we obtained the following new rules [LPAR04]:

   (PA_IN_G(a) -> PA_IN_G(a),PA_IN_G(a) -> PA_IN_G(a))


----------------------------------------

(66)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   PA_IN_G(a) -> PA_IN_G(a)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(67) NonTerminationLoopProof (COMPLETE)
We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by semiunifying a rule from P directly.

s = PA_IN_G(a) evaluates to  t =PA_IN_G(a)

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
* Matcher: [ ]
* Semiunifier: [ ]

--------------------------------------------------------------------------------
Rewriting sequence

The DP semiunifies directly so there is only one rewrite step from PA_IN_G(a) to PA_IN_G(a).




----------------------------------------

(68)
NO
