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/gVK1r.pl
# AProVE Commit ID: 23a904c96b029b0a549cde0d0d17dbccf967db59 jckassing 20260626 unpublished dirty


Left Termination of the query pattern

subset(a,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) AND
        (7) PiDP
            (8) UsableRulesProof [EQUIVALENT, 0 ms]
            (9) PiDP
            (10) PiDPToQDPProof [SOUND, 0 ms]
            (11) QDP
            (12) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (13) YES
        (14) PiDP
            (15) UsableRulesProof [EQUIVALENT, 0 ms]
            (16) PiDP
            (17) PiDPToQDPProof [SOUND, 0 ms]
            (18) QDP
            (19) TransformationProof [SOUND, 0 ms]
            (20) QDP
            (21) TransformationProof [EQUIVALENT, 0 ms]
            (22) QDP
(23) PrologToPiTRSProof [SOUND, 0 ms]
(24) PiTRS
    (25) DependencyPairsProof [EQUIVALENT, 0 ms]
    (26) PiDP
    (27) DependencyGraphProof [EQUIVALENT, 0 ms]
    (28) AND
        (29) PiDP
            (30) UsableRulesProof [EQUIVALENT, 0 ms]
            (31) PiDP
            (32) PiDPToQDPProof [SOUND, 0 ms]
            (33) QDP
            (34) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (35) YES
        (36) PiDP
            (37) UsableRulesProof [EQUIVALENT, 0 ms]
            (38) PiDP
            (39) PiDPToQDPProof [SOUND, 0 ms]
            (40) QDP
            (41) TransformationProof [SOUND, 0 ms]
            (42) QDP
            (43) TransformationProof [EQUIVALENT, 0 ms]
            (44) QDP
(45) PrologToDTProblemTransformerProof [SOUND, 0 ms]
(46) TRIPLES
    (47) TriplesToPiDPProof [SOUND, 0 ms]
    (48) PiDP
    (49) DependencyGraphProof [EQUIVALENT, 0 ms]
    (50) AND
        (51) PiDP
            (52) UsableRulesProof [EQUIVALENT, 0 ms]
            (53) PiDP
            (54) PiDPToQDPProof [SOUND, 0 ms]
            (55) QDP
            (56) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (57) YES
        (58) PiDP
            (59) PiDPToQDPProof [SOUND, 0 ms]
            (60) QDP
            (61) TransformationProof [SOUND, 0 ms]
            (62) QDP
            (63) TransformationProof [EQUIVALENT, 0 ms]
            (64) QDP
            (65) TransformationProof [EQUIVALENT, 0 ms]
            (66) QDP
(67) PrologToTRSTransformerProof [SOUND, 0 ms]
(68) QTRS
    (69) DependencyPairsProof [EQUIVALENT, 0 ms]
    (70) QDP
    (71) DependencyGraphProof [EQUIVALENT, 0 ms]
    (72) AND
        (73) QDP
            (74) UsableRulesProof [EQUIVALENT, 0 ms]
            (75) QDP
            (76) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (77) YES
        (78) QDP
            (79) NonTerminationLoopProof [COMPLETE, 0 ms]
            (80) NO
(81) PrologToIRSwTTransformerProof [SOUND, 0 ms]
(82) AND
    (83) IRSwT
        (84) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
        (85) IRSwT
        (86) IntTRSCompressionProof [EQUIVALENT, 8 ms]
        (87) IRSwT
        (88) IRSFormatTransformerProof [EQUIVALENT, 0 ms]
        (89) IRSwT
        (90) IRSwTTerminationDigraphProof [EQUIVALENT, 2 ms]
        (91) IRSwT
        (92) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms]
        (93) IRSwT
        (94) TempFilterProof [SOUND, 1 ms]
        (95) IRSwT
        (96) IRSwTToQDPProof [SOUND, 0 ms]
        (97) QDP
        (98) QDPSizeChangeProof [EQUIVALENT, 0 ms]
        (99) YES
    (100) IRSwT
        (101) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
        (102) IRSwT
        (103) IntTRSCompressionProof [EQUIVALENT, 3 ms]
        (104) IRSwT
        (105) IRSFormatTransformerProof [EQUIVALENT, 0 ms]
        (106) IRSwT


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

(0)
Obligation:
Clauses:

subset([], X1).
subset(.(X, Xs), Ys) :- ','(member(X, Ys), subset(Xs, Ys)).
member(X, .(X, X2)).
member(X, .(X3, Xs)) :- member(X, Xs).


Query: subset(a,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:

subset_in_2: (f,b)

member_in_2: (f,b)

Transforming Prolog into the following Term Rewriting System:

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

   subset_in_ag([], X1) -> subset_out_ag([], X1)
   subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2))
   member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs))
   U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs))
   U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

The argument filtering Pi contains the following mapping:
subset_in_ag(x1, x2)  =  subset_in_ag(x2)

subset_out_ag(x1, x2)  =  subset_out_ag(x1, x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

.(x1, x2)  =  .(x1, x2)

member_out_ag(x1, x2)  =  member_out_ag(x1, x2)

U3_ag(x1, x2, x3, x4)  =  U3_ag(x2, x3, x4)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x3, x4)





Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog



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

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

   subset_in_ag([], X1) -> subset_out_ag([], X1)
   subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2))
   member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs))
   U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs))
   U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

The argument filtering Pi contains the following mapping:
subset_in_ag(x1, x2)  =  subset_in_ag(x2)

subset_out_ag(x1, x2)  =  subset_out_ag(x1, x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

.(x1, x2)  =  .(x1, x2)

member_out_ag(x1, x2)  =  member_out_ag(x1, x2)

U3_ag(x1, x2, x3, x4)  =  U3_ag(x2, x3, x4)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x3, x4)



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

(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:

   SUBSET_IN_AG(.(X, Xs), Ys) -> U1_AG(X, Xs, Ys, member_in_ag(X, Ys))
   SUBSET_IN_AG(.(X, Xs), Ys) -> MEMBER_IN_AG(X, Ys)
   MEMBER_IN_AG(X, .(X3, Xs)) -> U3_AG(X, X3, Xs, member_in_ag(X, Xs))
   MEMBER_IN_AG(X, .(X3, Xs)) -> MEMBER_IN_AG(X, Xs)
   U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_AG(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys)

The TRS R consists of the following rules:

   subset_in_ag([], X1) -> subset_out_ag([], X1)
   subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2))
   member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs))
   U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs))
   U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

The argument filtering Pi contains the following mapping:
subset_in_ag(x1, x2)  =  subset_in_ag(x2)

subset_out_ag(x1, x2)  =  subset_out_ag(x1, x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

.(x1, x2)  =  .(x1, x2)

member_out_ag(x1, x2)  =  member_out_ag(x1, x2)

U3_ag(x1, x2, x3, x4)  =  U3_ag(x2, x3, x4)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x3, x4)

SUBSET_IN_AG(x1, x2)  =  SUBSET_IN_AG(x2)

U1_AG(x1, x2, x3, x4)  =  U1_AG(x3, x4)

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)

U3_AG(x1, x2, x3, x4)  =  U3_AG(x2, x3, x4)

U2_AG(x1, x2, x3, x4)  =  U2_AG(x1, x3, x4)


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

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

   SUBSET_IN_AG(.(X, Xs), Ys) -> U1_AG(X, Xs, Ys, member_in_ag(X, Ys))
   SUBSET_IN_AG(.(X, Xs), Ys) -> MEMBER_IN_AG(X, Ys)
   MEMBER_IN_AG(X, .(X3, Xs)) -> U3_AG(X, X3, Xs, member_in_ag(X, Xs))
   MEMBER_IN_AG(X, .(X3, Xs)) -> MEMBER_IN_AG(X, Xs)
   U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_AG(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys)

The TRS R consists of the following rules:

   subset_in_ag([], X1) -> subset_out_ag([], X1)
   subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2))
   member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs))
   U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs))
   U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

The argument filtering Pi contains the following mapping:
subset_in_ag(x1, x2)  =  subset_in_ag(x2)

subset_out_ag(x1, x2)  =  subset_out_ag(x1, x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

.(x1, x2)  =  .(x1, x2)

member_out_ag(x1, x2)  =  member_out_ag(x1, x2)

U3_ag(x1, x2, x3, x4)  =  U3_ag(x2, x3, x4)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x3, x4)

SUBSET_IN_AG(x1, x2)  =  SUBSET_IN_AG(x2)

U1_AG(x1, x2, x3, x4)  =  U1_AG(x3, x4)

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)

U3_AG(x1, x2, x3, x4)  =  U3_AG(x2, x3, x4)

U2_AG(x1, x2, x3, x4)  =  U2_AG(x1, x3, x4)


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

(5) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 3 less nodes.
----------------------------------------

(6)
Complex Obligation (AND)

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

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

   MEMBER_IN_AG(X, .(X3, Xs)) -> MEMBER_IN_AG(X, Xs)

The TRS R consists of the following rules:

   subset_in_ag([], X1) -> subset_out_ag([], X1)
   subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2))
   member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs))
   U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs))
   U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

The argument filtering Pi contains the following mapping:
subset_in_ag(x1, x2)  =  subset_in_ag(x2)

subset_out_ag(x1, x2)  =  subset_out_ag(x1, x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

.(x1, x2)  =  .(x1, x2)

member_out_ag(x1, x2)  =  member_out_ag(x1, x2)

U3_ag(x1, x2, x3, x4)  =  U3_ag(x2, x3, x4)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x3, x4)

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)


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

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

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

   MEMBER_IN_AG(X, .(X3, Xs)) -> MEMBER_IN_AG(X, Xs)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)


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

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

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

   MEMBER_IN_AG(.(X3, Xs)) -> MEMBER_IN_AG(Xs)

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

(12) QDPSizeChangeProof (EQUIVALENT)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 

From the DPs we obtained the following set of size-change graphs:
*MEMBER_IN_AG(.(X3, Xs)) -> MEMBER_IN_AG(Xs)
The graph contains the following edges 1 > 1


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

(13)
YES

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

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

   U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys)
   SUBSET_IN_AG(.(X, Xs), Ys) -> U1_AG(X, Xs, Ys, member_in_ag(X, Ys))

The TRS R consists of the following rules:

   subset_in_ag([], X1) -> subset_out_ag([], X1)
   subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2))
   member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs))
   U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs))
   U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

The argument filtering Pi contains the following mapping:
subset_in_ag(x1, x2)  =  subset_in_ag(x2)

subset_out_ag(x1, x2)  =  subset_out_ag(x1, x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

.(x1, x2)  =  .(x1, x2)

member_out_ag(x1, x2)  =  member_out_ag(x1, x2)

U3_ag(x1, x2, x3, x4)  =  U3_ag(x2, x3, x4)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x3, x4)

SUBSET_IN_AG(x1, x2)  =  SUBSET_IN_AG(x2)

U1_AG(x1, x2, x3, x4)  =  U1_AG(x3, x4)


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

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

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

   U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys)
   SUBSET_IN_AG(.(X, Xs), Ys) -> U1_AG(X, Xs, Ys, member_in_ag(X, Ys))

The TRS R consists of the following rules:

   member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2))
   member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs))
   U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs))

The argument filtering Pi contains the following mapping:
member_in_ag(x1, x2)  =  member_in_ag(x2)

.(x1, x2)  =  .(x1, x2)

member_out_ag(x1, x2)  =  member_out_ag(x1, x2)

U3_ag(x1, x2, x3, x4)  =  U3_ag(x2, x3, x4)

SUBSET_IN_AG(x1, x2)  =  SUBSET_IN_AG(x2)

U1_AG(x1, x2, x3, x4)  =  U1_AG(x3, x4)


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

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

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

   U1_AG(Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Ys)
   SUBSET_IN_AG(Ys) -> U1_AG(Ys, member_in_ag(Ys))

The TRS R consists of the following rules:

   member_in_ag(.(X, X2)) -> member_out_ag(X, .(X, X2))
   member_in_ag(.(X3, Xs)) -> U3_ag(X3, Xs, member_in_ag(Xs))
   U3_ag(X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs))

The set Q consists of the following terms:

   member_in_ag(x0)
   U3_ag(x0, x1, x2)

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

(19) TransformationProof (SOUND)
By narrowing [LPAR04] the rule SUBSET_IN_AG(Ys) -> U1_AG(Ys, member_in_ag(Ys)) at position [1] we obtained the following new rules [LPAR04]:

   (SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), member_out_ag(x0, .(x0, x1))),SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), member_out_ag(x0, .(x0, x1))))
   (SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), U3_ag(x0, x1, member_in_ag(x1))),SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), U3_ag(x0, x1, member_in_ag(x1))))


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

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

   U1_AG(Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Ys)
   SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), member_out_ag(x0, .(x0, x1)))
   SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), U3_ag(x0, x1, member_in_ag(x1)))

The TRS R consists of the following rules:

   member_in_ag(.(X, X2)) -> member_out_ag(X, .(X, X2))
   member_in_ag(.(X3, Xs)) -> U3_ag(X3, Xs, member_in_ag(Xs))
   U3_ag(X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs))

The set Q consists of the following terms:

   member_in_ag(x0)
   U3_ag(x0, x1, x2)

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

(21) TransformationProof (EQUIVALENT)
By instantiating [LPAR04] the rule U1_AG(Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Ys) we obtained the following new rules [LPAR04]:

   (U1_AG(.(z0, z1), member_out_ag(z0, .(z0, z1))) -> SUBSET_IN_AG(.(z0, z1)),U1_AG(.(z0, z1), member_out_ag(z0, .(z0, z1))) -> SUBSET_IN_AG(.(z0, z1)))
   (U1_AG(.(z0, z1), member_out_ag(x1, .(z0, z1))) -> SUBSET_IN_AG(.(z0, z1)),U1_AG(.(z0, z1), member_out_ag(x1, .(z0, z1))) -> SUBSET_IN_AG(.(z0, z1)))


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

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

   SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), member_out_ag(x0, .(x0, x1)))
   SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), U3_ag(x0, x1, member_in_ag(x1)))
   U1_AG(.(z0, z1), member_out_ag(z0, .(z0, z1))) -> SUBSET_IN_AG(.(z0, z1))
   U1_AG(.(z0, z1), member_out_ag(x1, .(z0, z1))) -> SUBSET_IN_AG(.(z0, z1))

The TRS R consists of the following rules:

   member_in_ag(.(X, X2)) -> member_out_ag(X, .(X, X2))
   member_in_ag(.(X3, Xs)) -> U3_ag(X3, Xs, member_in_ag(Xs))
   U3_ag(X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs))

The set Q consists of the following terms:

   member_in_ag(x0)
   U3_ag(x0, x1, x2)

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

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

subset_in_2: (f,b)

member_in_2: (f,b)

Transforming Prolog into the following Term Rewriting System:

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

   subset_in_ag([], X1) -> subset_out_ag([], X1)
   subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2))
   member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs))
   U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs))
   U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

The argument filtering Pi contains the following mapping:
subset_in_ag(x1, x2)  =  subset_in_ag(x2)

subset_out_ag(x1, x2)  =  subset_out_ag(x1)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

.(x1, x2)  =  .(x1, x2)

member_out_ag(x1, x2)  =  member_out_ag(x1)

U3_ag(x1, x2, x3, x4)  =  U3_ag(x4)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x4)





Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog



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

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

   subset_in_ag([], X1) -> subset_out_ag([], X1)
   subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2))
   member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs))
   U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs))
   U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

The argument filtering Pi contains the following mapping:
subset_in_ag(x1, x2)  =  subset_in_ag(x2)

subset_out_ag(x1, x2)  =  subset_out_ag(x1)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

.(x1, x2)  =  .(x1, x2)

member_out_ag(x1, x2)  =  member_out_ag(x1)

U3_ag(x1, x2, x3, x4)  =  U3_ag(x4)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x4)



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

(25) 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:

   SUBSET_IN_AG(.(X, Xs), Ys) -> U1_AG(X, Xs, Ys, member_in_ag(X, Ys))
   SUBSET_IN_AG(.(X, Xs), Ys) -> MEMBER_IN_AG(X, Ys)
   MEMBER_IN_AG(X, .(X3, Xs)) -> U3_AG(X, X3, Xs, member_in_ag(X, Xs))
   MEMBER_IN_AG(X, .(X3, Xs)) -> MEMBER_IN_AG(X, Xs)
   U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_AG(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys)

The TRS R consists of the following rules:

   subset_in_ag([], X1) -> subset_out_ag([], X1)
   subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2))
   member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs))
   U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs))
   U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

The argument filtering Pi contains the following mapping:
subset_in_ag(x1, x2)  =  subset_in_ag(x2)

subset_out_ag(x1, x2)  =  subset_out_ag(x1)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

.(x1, x2)  =  .(x1, x2)

member_out_ag(x1, x2)  =  member_out_ag(x1)

U3_ag(x1, x2, x3, x4)  =  U3_ag(x4)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x4)

SUBSET_IN_AG(x1, x2)  =  SUBSET_IN_AG(x2)

U1_AG(x1, x2, x3, x4)  =  U1_AG(x3, x4)

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)

U3_AG(x1, x2, x3, x4)  =  U3_AG(x4)

U2_AG(x1, x2, x3, x4)  =  U2_AG(x1, x4)


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

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

   SUBSET_IN_AG(.(X, Xs), Ys) -> U1_AG(X, Xs, Ys, member_in_ag(X, Ys))
   SUBSET_IN_AG(.(X, Xs), Ys) -> MEMBER_IN_AG(X, Ys)
   MEMBER_IN_AG(X, .(X3, Xs)) -> U3_AG(X, X3, Xs, member_in_ag(X, Xs))
   MEMBER_IN_AG(X, .(X3, Xs)) -> MEMBER_IN_AG(X, Xs)
   U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_AG(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys)

The TRS R consists of the following rules:

   subset_in_ag([], X1) -> subset_out_ag([], X1)
   subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2))
   member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs))
   U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs))
   U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

The argument filtering Pi contains the following mapping:
subset_in_ag(x1, x2)  =  subset_in_ag(x2)

subset_out_ag(x1, x2)  =  subset_out_ag(x1)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

.(x1, x2)  =  .(x1, x2)

member_out_ag(x1, x2)  =  member_out_ag(x1)

U3_ag(x1, x2, x3, x4)  =  U3_ag(x4)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x4)

SUBSET_IN_AG(x1, x2)  =  SUBSET_IN_AG(x2)

U1_AG(x1, x2, x3, x4)  =  U1_AG(x3, x4)

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)

U3_AG(x1, x2, x3, x4)  =  U3_AG(x4)

U2_AG(x1, x2, x3, x4)  =  U2_AG(x1, x4)


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

(27) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 3 less nodes.
----------------------------------------

(28)
Complex Obligation (AND)

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

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

   MEMBER_IN_AG(X, .(X3, Xs)) -> MEMBER_IN_AG(X, Xs)

The TRS R consists of the following rules:

   subset_in_ag([], X1) -> subset_out_ag([], X1)
   subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2))
   member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs))
   U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs))
   U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

The argument filtering Pi contains the following mapping:
subset_in_ag(x1, x2)  =  subset_in_ag(x2)

subset_out_ag(x1, x2)  =  subset_out_ag(x1)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

.(x1, x2)  =  .(x1, x2)

member_out_ag(x1, x2)  =  member_out_ag(x1)

U3_ag(x1, x2, x3, x4)  =  U3_ag(x4)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x4)

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)


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

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

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

   MEMBER_IN_AG(X, .(X3, Xs)) -> MEMBER_IN_AG(X, Xs)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)


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

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

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

   MEMBER_IN_AG(.(X3, Xs)) -> MEMBER_IN_AG(Xs)

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

(34) QDPSizeChangeProof (EQUIVALENT)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 

From the DPs we obtained the following set of size-change graphs:
*MEMBER_IN_AG(.(X3, Xs)) -> MEMBER_IN_AG(Xs)
The graph contains the following edges 1 > 1


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

(35)
YES

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

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

   U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys)
   SUBSET_IN_AG(.(X, Xs), Ys) -> U1_AG(X, Xs, Ys, member_in_ag(X, Ys))

The TRS R consists of the following rules:

   subset_in_ag([], X1) -> subset_out_ag([], X1)
   subset_in_ag(.(X, Xs), Ys) -> U1_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2))
   member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs))
   U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs))
   U1_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U2_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U2_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

The argument filtering Pi contains the following mapping:
subset_in_ag(x1, x2)  =  subset_in_ag(x2)

subset_out_ag(x1, x2)  =  subset_out_ag(x1)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

.(x1, x2)  =  .(x1, x2)

member_out_ag(x1, x2)  =  member_out_ag(x1)

U3_ag(x1, x2, x3, x4)  =  U3_ag(x4)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x4)

SUBSET_IN_AG(x1, x2)  =  SUBSET_IN_AG(x2)

U1_AG(x1, x2, x3, x4)  =  U1_AG(x3, x4)


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

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

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

   U1_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys)
   SUBSET_IN_AG(.(X, Xs), Ys) -> U1_AG(X, Xs, Ys, member_in_ag(X, Ys))

The TRS R consists of the following rules:

   member_in_ag(X, .(X, X2)) -> member_out_ag(X, .(X, X2))
   member_in_ag(X, .(X3, Xs)) -> U3_ag(X, X3, Xs, member_in_ag(X, Xs))
   U3_ag(X, X3, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(X3, Xs))

The argument filtering Pi contains the following mapping:
member_in_ag(x1, x2)  =  member_in_ag(x2)

.(x1, x2)  =  .(x1, x2)

member_out_ag(x1, x2)  =  member_out_ag(x1)

U3_ag(x1, x2, x3, x4)  =  U3_ag(x4)

SUBSET_IN_AG(x1, x2)  =  SUBSET_IN_AG(x2)

U1_AG(x1, x2, x3, x4)  =  U1_AG(x3, x4)


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

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

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

   U1_AG(Ys, member_out_ag(X)) -> SUBSET_IN_AG(Ys)
   SUBSET_IN_AG(Ys) -> U1_AG(Ys, member_in_ag(Ys))

The TRS R consists of the following rules:

   member_in_ag(.(X, X2)) -> member_out_ag(X)
   member_in_ag(.(X3, Xs)) -> U3_ag(member_in_ag(Xs))
   U3_ag(member_out_ag(X)) -> member_out_ag(X)

The set Q consists of the following terms:

   member_in_ag(x0)
   U3_ag(x0)

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

(41) TransformationProof (SOUND)
By narrowing [LPAR04] the rule SUBSET_IN_AG(Ys) -> U1_AG(Ys, member_in_ag(Ys)) at position [1] we obtained the following new rules [LPAR04]:

   (SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), member_out_ag(x0)),SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), member_out_ag(x0)))
   (SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), U3_ag(member_in_ag(x1))),SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), U3_ag(member_in_ag(x1))))


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

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

   U1_AG(Ys, member_out_ag(X)) -> SUBSET_IN_AG(Ys)
   SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), member_out_ag(x0))
   SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), U3_ag(member_in_ag(x1)))

The TRS R consists of the following rules:

   member_in_ag(.(X, X2)) -> member_out_ag(X)
   member_in_ag(.(X3, Xs)) -> U3_ag(member_in_ag(Xs))
   U3_ag(member_out_ag(X)) -> member_out_ag(X)

The set Q consists of the following terms:

   member_in_ag(x0)
   U3_ag(x0)

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

(43) TransformationProof (EQUIVALENT)
By instantiating [LPAR04] the rule U1_AG(Ys, member_out_ag(X)) -> SUBSET_IN_AG(Ys) we obtained the following new rules [LPAR04]:

   (U1_AG(.(z0, z1), member_out_ag(z0)) -> SUBSET_IN_AG(.(z0, z1)),U1_AG(.(z0, z1), member_out_ag(z0)) -> SUBSET_IN_AG(.(z0, z1)))
   (U1_AG(.(z0, z1), member_out_ag(x1)) -> SUBSET_IN_AG(.(z0, z1)),U1_AG(.(z0, z1), member_out_ag(x1)) -> SUBSET_IN_AG(.(z0, z1)))


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

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

   SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), member_out_ag(x0))
   SUBSET_IN_AG(.(x0, x1)) -> U1_AG(.(x0, x1), U3_ag(member_in_ag(x1)))
   U1_AG(.(z0, z1), member_out_ag(z0)) -> SUBSET_IN_AG(.(z0, z1))
   U1_AG(.(z0, z1), member_out_ag(x1)) -> SUBSET_IN_AG(.(z0, z1))

The TRS R consists of the following rules:

   member_in_ag(.(X, X2)) -> member_out_ag(X)
   member_in_ag(.(X3, Xs)) -> U3_ag(member_in_ag(Xs))
   U3_ag(member_out_ag(X)) -> member_out_ag(X)

The set Q consists of the following terms:

   member_in_ag(x0)
   U3_ag(x0)

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

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

{
    "root": 10,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(subset ([]) X1)",
                null
            ],
            [
                "(subset (. X Xs) Ys)",
                "(',' (member X Ys) (subset Xs Ys))"
            ],
            [
                "(member X (. X X2))",
                null
            ],
            [
                "(member X (. X3 Xs))",
                "(member X Xs)"
            ]
        ]
    },
    "graph": {
        "nodes": {
            "25": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(subset T23 (. T21 T22))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T21",
                        "T22"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "190": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "171": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "type": "Nodes",
            "172": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "173": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "177": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member T67 T66)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T66"],
                    "free": [],
                    "exprvars": []
                }
            },
            "211": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (member T108 T107) (subset T109 (. T106 T107)))"
                }],
                "kb": {
                    "nonunifying": [[
                        "(subset T1 (. T106 T107))",
                        "(subset ([]) X5)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T106",
                        "T107"
                    ],
                    "free": ["X5"],
                    "exprvars": []
                }
            },
            "179": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "212": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "30": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "10": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(subset T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "11": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(subset T1 T2)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(subset T1 T2)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "12": {
                "goal": [
                    {
                        "clause": -1,
                        "scope": -1,
                        "term": "(true)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(subset T1 T4)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T4"],
                    "free": [],
                    "exprvars": []
                }
            },
            "78": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (member T37 T36) (subset T38 (. T35 T36)))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T35",
                        "T36"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "13": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(subset T1 T2)"
                }],
                "kb": {
                    "nonunifying": [[
                        "(subset T1 T2)",
                        "(subset ([]) X5)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": ["X5"],
                    "exprvars": []
                }
            },
            "79": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "15": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(subset T1 T4)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T4"],
                    "free": [],
                    "exprvars": []
                }
            },
            "16": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (member T11 T10) (subset T12 T10))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T10"],
                    "free": [],
                    "exprvars": []
                }
            },
            "17": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "18": {
                "goal": [
                    {
                        "clause": 2,
                        "scope": 2,
                        "term": "(',' (member T11 T10) (subset T12 T10))"
                    },
                    {
                        "clause": 3,
                        "scope": 2,
                        "term": "(',' (member T11 T10) (subset T12 T10))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T10"],
                    "free": [],
                    "exprvars": []
                }
            },
            "19": {
                "goal": [{
                    "clause": 2,
                    "scope": 2,
                    "term": "(',' (member T11 T10) (subset T12 T10))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T10"],
                    "free": [],
                    "exprvars": []
                }
            },
            "181": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (member T82 T81) (subset T83 T81))"
                }],
                "kb": {
                    "nonunifying": [[
                        "(subset T1 T81)",
                        "(subset ([]) X5)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T81"],
                    "free": ["X5"],
                    "exprvars": []
                }
            },
            "182": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "183": {
                "goal": [
                    {
                        "clause": 2,
                        "scope": 4,
                        "term": "(',' (member T82 T81) (subset T83 T81))"
                    },
                    {
                        "clause": 3,
                        "scope": 4,
                        "term": "(',' (member T82 T81) (subset T83 T81))"
                    }
                ],
                "kb": {
                    "nonunifying": [[
                        "(subset T1 T81)",
                        "(subset ([]) X5)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T81"],
                    "free": ["X5"],
                    "exprvars": []
                }
            },
            "184": {
                "goal": [{
                    "clause": 2,
                    "scope": 4,
                    "term": "(',' (member T82 T81) (subset T83 T81))"
                }],
                "kb": {
                    "nonunifying": [[
                        "(subset T1 T81)",
                        "(subset ([]) X5)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T81"],
                    "free": ["X5"],
                    "exprvars": []
                }
            },
            "185": {
                "goal": [{
                    "clause": 3,
                    "scope": 4,
                    "term": "(',' (member T82 T81) (subset T83 T81))"
                }],
                "kb": {
                    "nonunifying": [[
                        "(subset T1 T81)",
                        "(subset ([]) X5)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T81"],
                    "free": ["X5"],
                    "exprvars": []
                }
            },
            "145": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member T37 T36)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T36"],
                    "free": [],
                    "exprvars": []
                }
            },
            "189": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(subset T94 (. T92 T93))"
                }],
                "kb": {
                    "nonunifying": [[
                        "(subset T1 (. T92 T93))",
                        "(subset ([]) X5)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T92",
                        "T93"
                    ],
                    "free": ["X5"],
                    "exprvars": []
                }
            },
            "146": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(subset T43 (. T35 T36))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T35",
                        "T36"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "147": {
                "goal": [
                    {
                        "clause": 2,
                        "scope": 3,
                        "term": "(member T37 T36)"
                    },
                    {
                        "clause": 3,
                        "scope": 3,
                        "term": "(member T37 T36)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T36"],
                    "free": [],
                    "exprvars": []
                }
            },
            "148": {
                "goal": [{
                    "clause": 2,
                    "scope": 3,
                    "term": "(member T37 T36)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T36"],
                    "free": [],
                    "exprvars": []
                }
            },
            "149": {
                "goal": [{
                    "clause": 3,
                    "scope": 3,
                    "term": "(member T37 T36)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T36"],
                    "free": [],
                    "exprvars": []
                }
            },
            "20": {
                "goal": [{
                    "clause": 3,
                    "scope": 2,
                    "term": "(',' (member T11 T10) (subset T12 T10))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T10"],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 10,
                "to": 11,
                "label": "CASE"
            },
            {
                "from": 11,
                "to": 12,
                "label": "EVAL with clause\nsubset([], X5).\nand substitutionT1 -> [],\nT2 -> T4,\nX5 -> T4"
            },
            {
                "from": 11,
                "to": 13,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 12,
                "to": 15,
                "label": "SUCCESS"
            },
            {
                "from": 13,
                "to": 181,
                "label": "EVAL with clause\nsubset(.(X69, X70), X71) :- ','(member(X69, X71), subset(X70, X71)).\nand substitutionX69 -> T82,\nX70 -> T83,\nT1 -> .(T82, T83),\nT2 -> T81,\nX71 -> T81,\nT79 -> T82,\nT80 -> T83"
            },
            {
                "from": 13,
                "to": 182,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 15,
                "to": 16,
                "label": "EVAL with clause\nsubset(.(X9, X10), X11) :- ','(member(X9, X11), subset(X10, X11)).\nand substitutionX9 -> T11,\nX10 -> T12,\nT1 -> .(T11, T12),\nT4 -> T10,\nX11 -> T10,\nT8 -> T11,\nT9 -> T12"
            },
            {
                "from": 15,
                "to": 17,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 16,
                "to": 18,
                "label": "CASE"
            },
            {
                "from": 18,
                "to": 19,
                "label": "PARALLEL"
            },
            {
                "from": 18,
                "to": 20,
                "label": "PARALLEL"
            },
            {
                "from": 19,
                "to": 25,
                "label": "EVAL with clause\nmember(X20, .(X20, X21)).\nand substitutionT11 -> T21,\nX20 -> T21,\nX21 -> T22,\nT10 -> .(T21, T22),\nT12 -> T23"
            },
            {
                "from": 19,
                "to": 30,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 20,
                "to": 78,
                "label": "EVAL with clause\nmember(X30, .(X31, X32)) :- member(X30, X32).\nand substitutionT11 -> T37,\nX30 -> T37,\nX31 -> T35,\nX32 -> T36,\nT10 -> .(T35, T36),\nT34 -> T37,\nT12 -> T38"
            },
            {
                "from": 20,
                "to": 79,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 25,
                "to": 10,
                "label": "INSTANCE with matching:\nT1 -> T23\nT2 -> .(T21, T22)"
            },
            {
                "from": 78,
                "to": 145,
                "label": "SPLIT 1"
            },
            {
                "from": 78,
                "to": 146,
                "label": "SPLIT 2\nnew knowledge:\nT37 is ground\nT36 is ground\nreplacements:T38 -> T43"
            },
            {
                "from": 145,
                "to": 147,
                "label": "CASE"
            },
            {
                "from": 146,
                "to": 10,
                "label": "INSTANCE with matching:\nT1 -> T43\nT2 -> .(T35, T36)"
            },
            {
                "from": 147,
                "to": 148,
                "label": "PARALLEL"
            },
            {
                "from": 147,
                "to": 149,
                "label": "PARALLEL"
            },
            {
                "from": 148,
                "to": 171,
                "label": "EVAL with clause\nmember(X49, .(X49, X50)).\nand substitutionT37 -> T56,\nX49 -> T56,\nX50 -> T57,\nT36 -> .(T56, T57)"
            },
            {
                "from": 148,
                "to": 172,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 149,
                "to": 177,
                "label": "EVAL with clause\nmember(X57, .(X58, X59)) :- member(X57, X59).\nand substitutionT37 -> T67,\nX57 -> T67,\nX58 -> T65,\nX59 -> T66,\nT36 -> .(T65, T66),\nT64 -> T67"
            },
            {
                "from": 149,
                "to": 179,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 171,
                "to": 173,
                "label": "SUCCESS"
            },
            {
                "from": 177,
                "to": 145,
                "label": "INSTANCE with matching:\nT37 -> T67\nT36 -> T66"
            },
            {
                "from": 181,
                "to": 183,
                "label": "CASE"
            },
            {
                "from": 183,
                "to": 184,
                "label": "PARALLEL"
            },
            {
                "from": 183,
                "to": 185,
                "label": "PARALLEL"
            },
            {
                "from": 184,
                "to": 189,
                "label": "EVAL with clause\nmember(X80, .(X80, X81)).\nand substitutionT82 -> T92,\nX80 -> T92,\nX81 -> T93,\nT81 -> .(T92, T93),\nT83 -> T94"
            },
            {
                "from": 184,
                "to": 190,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 185,
                "to": 211,
                "label": "EVAL with clause\nmember(X90, .(X91, X92)) :- member(X90, X92).\nand substitutionT82 -> T108,\nX90 -> T108,\nX91 -> T106,\nX92 -> T107,\nT81 -> .(T106, T107),\nT105 -> T108,\nT83 -> T109"
            },
            {
                "from": 185,
                "to": 212,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 189,
                "to": 10,
                "label": "INSTANCE with matching:\nT1 -> T94\nT2 -> .(T92, T93)"
            },
            {
                "from": 211,
                "to": 78,
                "label": "INSTANCE with matching:\nT37 -> T108\nT36 -> T107\nT38 -> T109\nT35 -> T106"
            }
        ],
        "type": "Graph"
    }
}

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

(46)
Obligation:
Triples:

memberC(X1, .(X2, X3)) :- memberC(X1, X3).
pB(X1, X2, X3, X4) :- memberC(X1, X2).
pB(X1, X2, X3, X4) :- ','(membercC(X1, X2), subsetA(X3, .(X4, X2))).
subsetA(.(X1, X2), .(X1, X3)) :- subsetA(X2, .(X1, X3)).
subsetA(.(X1, X2), .(X3, X4)) :- pB(X1, X4, X2, X3).
subsetA(.(X1, X2), .(X1, X3)) :- subsetA(X2, .(X1, X3)).
subsetA(.(X1, X2), .(X3, X4)) :- pB(X1, X4, X2, X3).

Clauses:

subsetcA([], X1).
subsetcA(.(X1, X2), .(X1, X3)) :- subsetcA(X2, .(X1, X3)).
subsetcA(.(X1, X2), .(X3, X4)) :- qcB(X1, X4, X2, X3).
subsetcA(.(X1, X2), .(X1, X3)) :- subsetcA(X2, .(X1, X3)).
subsetcA(.(X1, X2), .(X3, X4)) :- qcB(X1, X4, X2, X3).
membercC(X1, .(X1, X2)).
membercC(X1, .(X2, X3)) :- membercC(X1, X3).
qcB(X1, X2, X3, X4) :- ','(membercC(X1, X2), subsetcA(X3, .(X4, X2))).

Afs:

subsetA(x1, x2)  =  subsetA(x2)


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

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

subsetA_in_2: (f,b)

pB_in_4: (f,b,f,b)

memberC_in_2: (f,b)

membercC_in_2: (f,b)

Transforming TRIPLES into the following Term Rewriting System:

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

   SUBSETA_IN_AG(.(X1, X2), .(X1, X3)) -> U5_AG(X1, X2, X3, subsetA_in_ag(X2, .(X1, X3)))
   SUBSETA_IN_AG(.(X1, X2), .(X1, X3)) -> SUBSETA_IN_AG(X2, .(X1, X3))
   SUBSETA_IN_AG(.(X1, X2), .(X3, X4)) -> U6_AG(X1, X2, X3, X4, pB_in_agag(X1, X4, X2, X3))
   SUBSETA_IN_AG(.(X1, X2), .(X3, X4)) -> PB_IN_AGAG(X1, X4, X2, X3)
   PB_IN_AGAG(X1, X2, X3, X4) -> U2_AGAG(X1, X2, X3, X4, memberC_in_ag(X1, X2))
   PB_IN_AGAG(X1, X2, X3, X4) -> MEMBERC_IN_AG(X1, X2)
   MEMBERC_IN_AG(X1, .(X2, X3)) -> U1_AG(X1, X2, X3, memberC_in_ag(X1, X3))
   MEMBERC_IN_AG(X1, .(X2, X3)) -> MEMBERC_IN_AG(X1, X3)
   PB_IN_AGAG(X1, X2, X3, X4) -> U3_AGAG(X1, X2, X3, X4, membercC_in_ag(X1, X2))
   U3_AGAG(X1, X2, X3, X4, membercC_out_ag(X1, X2)) -> U4_AGAG(X1, X2, X3, X4, subsetA_in_ag(X3, .(X4, X2)))
   U3_AGAG(X1, X2, X3, X4, membercC_out_ag(X1, X2)) -> SUBSETA_IN_AG(X3, .(X4, X2))

The TRS R consists of the following rules:

   membercC_in_ag(X1, .(X1, X2)) -> membercC_out_ag(X1, .(X1, X2))
   membercC_in_ag(X1, .(X2, X3)) -> U10_ag(X1, X2, X3, membercC_in_ag(X1, X3))
   U10_ag(X1, X2, X3, membercC_out_ag(X1, X3)) -> membercC_out_ag(X1, .(X2, X3))

The argument filtering Pi contains the following mapping:
subsetA_in_ag(x1, x2)  =  subsetA_in_ag(x2)

.(x1, x2)  =  .(x1, x2)

pB_in_agag(x1, x2, x3, x4)  =  pB_in_agag(x2, x4)

memberC_in_ag(x1, x2)  =  memberC_in_ag(x2)

membercC_in_ag(x1, x2)  =  membercC_in_ag(x2)

membercC_out_ag(x1, x2)  =  membercC_out_ag(x1, x2)

U10_ag(x1, x2, x3, x4)  =  U10_ag(x2, x3, x4)

SUBSETA_IN_AG(x1, x2)  =  SUBSETA_IN_AG(x2)

U5_AG(x1, x2, x3, x4)  =  U5_AG(x1, x3, x4)

U6_AG(x1, x2, x3, x4, x5)  =  U6_AG(x3, x4, x5)

PB_IN_AGAG(x1, x2, x3, x4)  =  PB_IN_AGAG(x2, x4)

U2_AGAG(x1, x2, x3, x4, x5)  =  U2_AGAG(x2, x4, x5)

MEMBERC_IN_AG(x1, x2)  =  MEMBERC_IN_AG(x2)

U1_AG(x1, x2, x3, x4)  =  U1_AG(x2, x3, x4)

U3_AGAG(x1, x2, x3, x4, x5)  =  U3_AGAG(x2, x4, x5)

U4_AGAG(x1, x2, x3, x4, x5)  =  U4_AGAG(x1, x2, x4, x5)


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


Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES



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

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

   SUBSETA_IN_AG(.(X1, X2), .(X1, X3)) -> U5_AG(X1, X2, X3, subsetA_in_ag(X2, .(X1, X3)))
   SUBSETA_IN_AG(.(X1, X2), .(X1, X3)) -> SUBSETA_IN_AG(X2, .(X1, X3))
   SUBSETA_IN_AG(.(X1, X2), .(X3, X4)) -> U6_AG(X1, X2, X3, X4, pB_in_agag(X1, X4, X2, X3))
   SUBSETA_IN_AG(.(X1, X2), .(X3, X4)) -> PB_IN_AGAG(X1, X4, X2, X3)
   PB_IN_AGAG(X1, X2, X3, X4) -> U2_AGAG(X1, X2, X3, X4, memberC_in_ag(X1, X2))
   PB_IN_AGAG(X1, X2, X3, X4) -> MEMBERC_IN_AG(X1, X2)
   MEMBERC_IN_AG(X1, .(X2, X3)) -> U1_AG(X1, X2, X3, memberC_in_ag(X1, X3))
   MEMBERC_IN_AG(X1, .(X2, X3)) -> MEMBERC_IN_AG(X1, X3)
   PB_IN_AGAG(X1, X2, X3, X4) -> U3_AGAG(X1, X2, X3, X4, membercC_in_ag(X1, X2))
   U3_AGAG(X1, X2, X3, X4, membercC_out_ag(X1, X2)) -> U4_AGAG(X1, X2, X3, X4, subsetA_in_ag(X3, .(X4, X2)))
   U3_AGAG(X1, X2, X3, X4, membercC_out_ag(X1, X2)) -> SUBSETA_IN_AG(X3, .(X4, X2))

The TRS R consists of the following rules:

   membercC_in_ag(X1, .(X1, X2)) -> membercC_out_ag(X1, .(X1, X2))
   membercC_in_ag(X1, .(X2, X3)) -> U10_ag(X1, X2, X3, membercC_in_ag(X1, X3))
   U10_ag(X1, X2, X3, membercC_out_ag(X1, X3)) -> membercC_out_ag(X1, .(X2, X3))

The argument filtering Pi contains the following mapping:
subsetA_in_ag(x1, x2)  =  subsetA_in_ag(x2)

.(x1, x2)  =  .(x1, x2)

pB_in_agag(x1, x2, x3, x4)  =  pB_in_agag(x2, x4)

memberC_in_ag(x1, x2)  =  memberC_in_ag(x2)

membercC_in_ag(x1, x2)  =  membercC_in_ag(x2)

membercC_out_ag(x1, x2)  =  membercC_out_ag(x1, x2)

U10_ag(x1, x2, x3, x4)  =  U10_ag(x2, x3, x4)

SUBSETA_IN_AG(x1, x2)  =  SUBSETA_IN_AG(x2)

U5_AG(x1, x2, x3, x4)  =  U5_AG(x1, x3, x4)

U6_AG(x1, x2, x3, x4, x5)  =  U6_AG(x3, x4, x5)

PB_IN_AGAG(x1, x2, x3, x4)  =  PB_IN_AGAG(x2, x4)

U2_AGAG(x1, x2, x3, x4, x5)  =  U2_AGAG(x2, x4, x5)

MEMBERC_IN_AG(x1, x2)  =  MEMBERC_IN_AG(x2)

U1_AG(x1, x2, x3, x4)  =  U1_AG(x2, x3, x4)

U3_AGAG(x1, x2, x3, x4, x5)  =  U3_AGAG(x2, x4, x5)

U4_AGAG(x1, x2, x3, x4, x5)  =  U4_AGAG(x1, x2, x4, x5)


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

(49) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 6 less nodes.
----------------------------------------

(50)
Complex Obligation (AND)

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

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

   MEMBERC_IN_AG(X1, .(X2, X3)) -> MEMBERC_IN_AG(X1, X3)

The TRS R consists of the following rules:

   membercC_in_ag(X1, .(X1, X2)) -> membercC_out_ag(X1, .(X1, X2))
   membercC_in_ag(X1, .(X2, X3)) -> U10_ag(X1, X2, X3, membercC_in_ag(X1, X3))
   U10_ag(X1, X2, X3, membercC_out_ag(X1, X3)) -> membercC_out_ag(X1, .(X2, X3))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)

membercC_in_ag(x1, x2)  =  membercC_in_ag(x2)

membercC_out_ag(x1, x2)  =  membercC_out_ag(x1, x2)

U10_ag(x1, x2, x3, x4)  =  U10_ag(x2, x3, x4)

MEMBERC_IN_AG(x1, x2)  =  MEMBERC_IN_AG(x2)


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

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

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

   MEMBERC_IN_AG(X1, .(X2, X3)) -> MEMBERC_IN_AG(X1, X3)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)

MEMBERC_IN_AG(x1, x2)  =  MEMBERC_IN_AG(x2)


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

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

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

   MEMBERC_IN_AG(.(X2, X3)) -> MEMBERC_IN_AG(X3)

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

(56) QDPSizeChangeProof (EQUIVALENT)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 

From the DPs we obtained the following set of size-change graphs:
*MEMBERC_IN_AG(.(X2, X3)) -> MEMBERC_IN_AG(X3)
The graph contains the following edges 1 > 1


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

(57)
YES

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

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

   SUBSETA_IN_AG(.(X1, X2), .(X3, X4)) -> PB_IN_AGAG(X1, X4, X2, X3)
   PB_IN_AGAG(X1, X2, X3, X4) -> U3_AGAG(X1, X2, X3, X4, membercC_in_ag(X1, X2))
   U3_AGAG(X1, X2, X3, X4, membercC_out_ag(X1, X2)) -> SUBSETA_IN_AG(X3, .(X4, X2))
   SUBSETA_IN_AG(.(X1, X2), .(X1, X3)) -> SUBSETA_IN_AG(X2, .(X1, X3))

The TRS R consists of the following rules:

   membercC_in_ag(X1, .(X1, X2)) -> membercC_out_ag(X1, .(X1, X2))
   membercC_in_ag(X1, .(X2, X3)) -> U10_ag(X1, X2, X3, membercC_in_ag(X1, X3))
   U10_ag(X1, X2, X3, membercC_out_ag(X1, X3)) -> membercC_out_ag(X1, .(X2, X3))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)

membercC_in_ag(x1, x2)  =  membercC_in_ag(x2)

membercC_out_ag(x1, x2)  =  membercC_out_ag(x1, x2)

U10_ag(x1, x2, x3, x4)  =  U10_ag(x2, x3, x4)

SUBSETA_IN_AG(x1, x2)  =  SUBSETA_IN_AG(x2)

PB_IN_AGAG(x1, x2, x3, x4)  =  PB_IN_AGAG(x2, x4)

U3_AGAG(x1, x2, x3, x4, x5)  =  U3_AGAG(x2, x4, x5)


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

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

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

   SUBSETA_IN_AG(.(X3, X4)) -> PB_IN_AGAG(X4, X3)
   PB_IN_AGAG(X2, X4) -> U3_AGAG(X2, X4, membercC_in_ag(X2))
   U3_AGAG(X2, X4, membercC_out_ag(X1, X2)) -> SUBSETA_IN_AG(.(X4, X2))
   SUBSETA_IN_AG(.(X1, X3)) -> SUBSETA_IN_AG(.(X1, X3))

The TRS R consists of the following rules:

   membercC_in_ag(.(X1, X2)) -> membercC_out_ag(X1, .(X1, X2))
   membercC_in_ag(.(X2, X3)) -> U10_ag(X2, X3, membercC_in_ag(X3))
   U10_ag(X2, X3, membercC_out_ag(X1, X3)) -> membercC_out_ag(X1, .(X2, X3))

The set Q consists of the following terms:

   membercC_in_ag(x0)
   U10_ag(x0, x1, x2)

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

(61) TransformationProof (SOUND)
By narrowing [LPAR04] the rule PB_IN_AGAG(X2, X4) -> U3_AGAG(X2, X4, membercC_in_ag(X2)) at position [2] we obtained the following new rules [LPAR04]:

   (PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, membercC_out_ag(x0, .(x0, x1))),PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, membercC_out_ag(x0, .(x0, x1))))
   (PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, U10_ag(x0, x1, membercC_in_ag(x1))),PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, U10_ag(x0, x1, membercC_in_ag(x1))))


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

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

   SUBSETA_IN_AG(.(X3, X4)) -> PB_IN_AGAG(X4, X3)
   U3_AGAG(X2, X4, membercC_out_ag(X1, X2)) -> SUBSETA_IN_AG(.(X4, X2))
   SUBSETA_IN_AG(.(X1, X3)) -> SUBSETA_IN_AG(.(X1, X3))
   PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, membercC_out_ag(x0, .(x0, x1)))
   PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, U10_ag(x0, x1, membercC_in_ag(x1)))

The TRS R consists of the following rules:

   membercC_in_ag(.(X1, X2)) -> membercC_out_ag(X1, .(X1, X2))
   membercC_in_ag(.(X2, X3)) -> U10_ag(X2, X3, membercC_in_ag(X3))
   U10_ag(X2, X3, membercC_out_ag(X1, X3)) -> membercC_out_ag(X1, .(X2, X3))

The set Q consists of the following terms:

   membercC_in_ag(x0)
   U10_ag(x0, x1, x2)

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

(63) TransformationProof (EQUIVALENT)
By instantiating [LPAR04] the rule U3_AGAG(X2, X4, membercC_out_ag(X1, X2)) -> SUBSETA_IN_AG(.(X4, X2)) we obtained the following new rules [LPAR04]:

   (U3_AGAG(.(z0, z1), z2, membercC_out_ag(z0, .(z0, z1))) -> SUBSETA_IN_AG(.(z2, .(z0, z1))),U3_AGAG(.(z0, z1), z2, membercC_out_ag(z0, .(z0, z1))) -> SUBSETA_IN_AG(.(z2, .(z0, z1))))
   (U3_AGAG(.(z0, z1), z2, membercC_out_ag(x2, .(z0, z1))) -> SUBSETA_IN_AG(.(z2, .(z0, z1))),U3_AGAG(.(z0, z1), z2, membercC_out_ag(x2, .(z0, z1))) -> SUBSETA_IN_AG(.(z2, .(z0, z1))))


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

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

   SUBSETA_IN_AG(.(X3, X4)) -> PB_IN_AGAG(X4, X3)
   SUBSETA_IN_AG(.(X1, X3)) -> SUBSETA_IN_AG(.(X1, X3))
   PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, membercC_out_ag(x0, .(x0, x1)))
   PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, U10_ag(x0, x1, membercC_in_ag(x1)))
   U3_AGAG(.(z0, z1), z2, membercC_out_ag(z0, .(z0, z1))) -> SUBSETA_IN_AG(.(z2, .(z0, z1)))
   U3_AGAG(.(z0, z1), z2, membercC_out_ag(x2, .(z0, z1))) -> SUBSETA_IN_AG(.(z2, .(z0, z1)))

The TRS R consists of the following rules:

   membercC_in_ag(.(X1, X2)) -> membercC_out_ag(X1, .(X1, X2))
   membercC_in_ag(.(X2, X3)) -> U10_ag(X2, X3, membercC_in_ag(X3))
   U10_ag(X2, X3, membercC_out_ag(X1, X3)) -> membercC_out_ag(X1, .(X2, X3))

The set Q consists of the following terms:

   membercC_in_ag(x0)
   U10_ag(x0, x1, x2)

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

(65) TransformationProof (EQUIVALENT)
By forward instantiating [JAR06] the rule SUBSETA_IN_AG(.(X3, X4)) -> PB_IN_AGAG(X4, X3) we obtained the following new rules [LPAR04]:

   (SUBSETA_IN_AG(.(x0, .(y_0, y_1))) -> PB_IN_AGAG(.(y_0, y_1), x0),SUBSETA_IN_AG(.(x0, .(y_0, y_1))) -> PB_IN_AGAG(.(y_0, y_1), x0))


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

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

   SUBSETA_IN_AG(.(X1, X3)) -> SUBSETA_IN_AG(.(X1, X3))
   PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, membercC_out_ag(x0, .(x0, x1)))
   PB_IN_AGAG(.(x0, x1), y1) -> U3_AGAG(.(x0, x1), y1, U10_ag(x0, x1, membercC_in_ag(x1)))
   U3_AGAG(.(z0, z1), z2, membercC_out_ag(z0, .(z0, z1))) -> SUBSETA_IN_AG(.(z2, .(z0, z1)))
   U3_AGAG(.(z0, z1), z2, membercC_out_ag(x2, .(z0, z1))) -> SUBSETA_IN_AG(.(z2, .(z0, z1)))
   SUBSETA_IN_AG(.(x0, .(y_0, y_1))) -> PB_IN_AGAG(.(y_0, y_1), x0)

The TRS R consists of the following rules:

   membercC_in_ag(.(X1, X2)) -> membercC_out_ag(X1, .(X1, X2))
   membercC_in_ag(.(X2, X3)) -> U10_ag(X2, X3, membercC_in_ag(X3))
   U10_ag(X2, X3, membercC_out_ag(X1, X3)) -> membercC_out_ag(X1, .(X2, X3))

The set Q consists of the following terms:

   membercC_in_ag(x0)
   U10_ag(x0, x1, x2)

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

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

{
    "root": 1,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(subset ([]) X1)",
                null
            ],
            [
                "(subset (. X Xs) Ys)",
                "(',' (member X Ys) (subset Xs Ys))"
            ],
            [
                "(member X (. X X2))",
                null
            ],
            [
                "(member X (. X3 Xs))",
                "(member X Xs)"
            ]
        ]
    },
    "graph": {
        "nodes": {
            "14": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (member T17 T16) (subset T18 T16))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T16"],
                    "free": [],
                    "exprvars": []
                }
            },
            "191": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "192": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "193": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "type": "Nodes",
            "194": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member T47 T46)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T46"],
                    "free": [],
                    "exprvars": []
                }
            },
            "195": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "163": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "164": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member T17 T16)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T16"],
                    "free": [],
                    "exprvars": []
                }
            },
            "186": {
                "goal": [
                    {
                        "clause": 2,
                        "scope": 2,
                        "term": "(member T17 T16)"
                    },
                    {
                        "clause": 3,
                        "scope": 2,
                        "term": "(member T17 T16)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T16"],
                    "free": [],
                    "exprvars": []
                }
            },
            "165": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(subset T23 T16)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T16"],
                    "free": [],
                    "exprvars": []
                }
            },
            "187": {
                "goal": [{
                    "clause": 2,
                    "scope": 2,
                    "term": "(member T17 T16)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T16"],
                    "free": [],
                    "exprvars": []
                }
            },
            "1": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(subset T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "188": {
                "goal": [{
                    "clause": 3,
                    "scope": 2,
                    "term": "(member T17 T16)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T16"],
                    "free": [],
                    "exprvars": []
                }
            },
            "3": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(subset T1 T2)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(subset T1 T2)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "5": {
                "goal": [{
                    "clause": 0,
                    "scope": 1,
                    "term": "(subset T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "6": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(subset T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "7": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "8": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "9": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 1,
                "to": 3,
                "label": "CASE"
            },
            {
                "from": 3,
                "to": 5,
                "label": "PARALLEL"
            },
            {
                "from": 3,
                "to": 6,
                "label": "PARALLEL"
            },
            {
                "from": 5,
                "to": 7,
                "label": "EVAL with clause\nsubset([], X8).\nand substitutionT1 -> [],\nT2 -> T7,\nX8 -> T7"
            },
            {
                "from": 5,
                "to": 8,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 6,
                "to": 14,
                "label": "EVAL with clause\nsubset(.(X15, X16), X17) :- ','(member(X15, X17), subset(X16, X17)).\nand substitutionX15 -> T17,\nX16 -> T18,\nT1 -> .(T17, T18),\nT2 -> T16,\nX17 -> T16,\nT14 -> T17,\nT15 -> T18"
            },
            {
                "from": 6,
                "to": 163,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 7,
                "to": 9,
                "label": "SUCCESS"
            },
            {
                "from": 14,
                "to": 164,
                "label": "SPLIT 1"
            },
            {
                "from": 14,
                "to": 165,
                "label": "SPLIT 2\nnew knowledge:\nT17 is ground\nT16 is ground\nreplacements:T18 -> T23"
            },
            {
                "from": 164,
                "to": 186,
                "label": "CASE"
            },
            {
                "from": 165,
                "to": 1,
                "label": "INSTANCE with matching:\nT1 -> T23\nT2 -> T16"
            },
            {
                "from": 186,
                "to": 187,
                "label": "PARALLEL"
            },
            {
                "from": 186,
                "to": 188,
                "label": "PARALLEL"
            },
            {
                "from": 187,
                "to": 191,
                "label": "EVAL with clause\nmember(X34, .(X34, X35)).\nand substitutionT17 -> T36,\nX34 -> T36,\nX35 -> T37,\nT16 -> .(T36, T37)"
            },
            {
                "from": 187,
                "to": 192,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 188,
                "to": 194,
                "label": "EVAL with clause\nmember(X42, .(X43, X44)) :- member(X42, X44).\nand substitutionT17 -> T47,\nX42 -> T47,\nX43 -> T45,\nX44 -> T46,\nT16 -> .(T45, T46),\nT44 -> T47"
            },
            {
                "from": 188,
                "to": 195,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 191,
                "to": 193,
                "label": "SUCCESS"
            },
            {
                "from": 194,
                "to": 164,
                "label": "INSTANCE with matching:\nT17 -> T47\nT16 -> T46"
            }
        ],
        "type": "Graph"
    }
}

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

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

   f1_in(T7) -> f1_out1([])
   f1_in(T16) -> U1(f14_in(T16), T16)
   U1(f14_out1(T17, T18), T16) -> f1_out1(.(T17, T18))
   f164_in(.(T36, T37)) -> f164_out1(T36)
   f164_in(.(T45, T46)) -> U2(f164_in(T46), .(T45, T46))
   U2(f164_out1(T47), .(T45, T46)) -> f164_out1(T47)
   f14_in(T16) -> U3(f164_in(T16), T16)
   U3(f164_out1(T17), T16) -> U4(f1_in(T16), T16, T17)
   U4(f1_out1(T23), T16, T17) -> f14_out1(T17, T23)

Q is empty.

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

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

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

   F1_IN(T16) -> U1^1(f14_in(T16), T16)
   F1_IN(T16) -> F14_IN(T16)
   F164_IN(.(T45, T46)) -> U2^1(f164_in(T46), .(T45, T46))
   F164_IN(.(T45, T46)) -> F164_IN(T46)
   F14_IN(T16) -> U3^1(f164_in(T16), T16)
   F14_IN(T16) -> F164_IN(T16)
   U3^1(f164_out1(T17), T16) -> U4^1(f1_in(T16), T16, T17)
   U3^1(f164_out1(T17), T16) -> F1_IN(T16)

The TRS R consists of the following rules:

   f1_in(T7) -> f1_out1([])
   f1_in(T16) -> U1(f14_in(T16), T16)
   U1(f14_out1(T17, T18), T16) -> f1_out1(.(T17, T18))
   f164_in(.(T36, T37)) -> f164_out1(T36)
   f164_in(.(T45, T46)) -> U2(f164_in(T46), .(T45, T46))
   U2(f164_out1(T47), .(T45, T46)) -> f164_out1(T47)
   f14_in(T16) -> U3(f164_in(T16), T16)
   U3(f164_out1(T17), T16) -> U4(f1_in(T16), T16, T17)
   U4(f1_out1(T23), T16, T17) -> f14_out1(T17, T23)

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

(71) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 4 less nodes.
----------------------------------------

(72)
Complex Obligation (AND)

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

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

   F164_IN(.(T45, T46)) -> F164_IN(T46)

The TRS R consists of the following rules:

   f1_in(T7) -> f1_out1([])
   f1_in(T16) -> U1(f14_in(T16), T16)
   U1(f14_out1(T17, T18), T16) -> f1_out1(.(T17, T18))
   f164_in(.(T36, T37)) -> f164_out1(T36)
   f164_in(.(T45, T46)) -> U2(f164_in(T46), .(T45, T46))
   U2(f164_out1(T47), .(T45, T46)) -> f164_out1(T47)
   f14_in(T16) -> U3(f164_in(T16), T16)
   U3(f164_out1(T17), T16) -> U4(f1_in(T16), T16, T17)
   U4(f1_out1(T23), T16, T17) -> f14_out1(T17, T23)

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

(74) UsableRulesProof (EQUIVALENT)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
----------------------------------------

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

   F164_IN(.(T45, T46)) -> F164_IN(T46)

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

(76) QDPSizeChangeProof (EQUIVALENT)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 

From the DPs we obtained the following set of size-change graphs:
*F164_IN(.(T45, T46)) -> F164_IN(T46)
The graph contains the following edges 1 > 1


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

(77)
YES

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

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

   F1_IN(T16) -> F14_IN(T16)
   F14_IN(T16) -> U3^1(f164_in(T16), T16)
   U3^1(f164_out1(T17), T16) -> F1_IN(T16)

The TRS R consists of the following rules:

   f1_in(T7) -> f1_out1([])
   f1_in(T16) -> U1(f14_in(T16), T16)
   U1(f14_out1(T17, T18), T16) -> f1_out1(.(T17, T18))
   f164_in(.(T36, T37)) -> f164_out1(T36)
   f164_in(.(T45, T46)) -> U2(f164_in(T46), .(T45, T46))
   U2(f164_out1(T47), .(T45, T46)) -> f164_out1(T47)
   f14_in(T16) -> U3(f164_in(T16), T16)
   U3(f164_out1(T17), T16) -> U4(f1_in(T16), T16, T17)
   U4(f1_out1(T23), T16, T17) -> f14_out1(T17, T23)

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

(79) NonTerminationLoopProof (COMPLETE)
We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = F14_IN(.(T36, T37)) evaluates to  t =F14_IN(.(T36, T37))

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

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

F14_IN(.(T36, T37)) -> U3^1(f164_in(.(T36, T37)), .(T36, T37))
with rule F14_IN(T16) -> U3^1(f164_in(T16), T16) at position [] and matcher [T16 / .(T36, T37)]

U3^1(f164_in(.(T36, T37)), .(T36, T37)) -> U3^1(f164_out1(T36), .(T36, T37))
with rule f164_in(.(T36', T37')) -> f164_out1(T36') at position [0] and matcher [T36' / T36, T37' / T37]

U3^1(f164_out1(T36), .(T36, T37)) -> F1_IN(.(T36, T37))
with rule U3^1(f164_out1(T17), T16') -> F1_IN(T16') at position [] and matcher [T17 / T36, T16' / .(T36, T37)]

F1_IN(.(T36, T37)) -> F14_IN(.(T36, T37))
with rule F1_IN(T16) -> F14_IN(T16)

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.




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

(80)
NO

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

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

{
    "root": 2,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(subset ([]) X1)",
                null
            ],
            [
                "(subset (. X Xs) Ys)",
                "(',' (member X Ys) (subset Xs Ys))"
            ],
            [
                "(member X (. X X2))",
                null
            ],
            [
                "(member X (. X3 Xs))",
                "(member X Xs)"
            ]
        ]
    },
    "graph": {
        "nodes": {
            "180": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "170": {
                "goal": [{
                    "clause": 3,
                    "scope": 2,
                    "term": "(member T17 T16)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T16"],
                    "free": [],
                    "exprvars": []
                }
            },
            "160": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "type": "Nodes",
            "161": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (member T17 T16) (subset T18 T16))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T16"],
                    "free": [],
                    "exprvars": []
                }
            },
            "162": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "174": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "175": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "176": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "166": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member T17 T16)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T16"],
                    "free": [],
                    "exprvars": []
                }
            },
            "2": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(subset T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "156": {
                "goal": [{
                    "clause": 0,
                    "scope": 1,
                    "term": "(subset T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "167": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(subset T23 T16)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T16"],
                    "free": [],
                    "exprvars": []
                }
            },
            "178": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member T47 T46)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T46"],
                    "free": [],
                    "exprvars": []
                }
            },
            "157": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(subset T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "168": {
                "goal": [
                    {
                        "clause": 2,
                        "scope": 2,
                        "term": "(member T17 T16)"
                    },
                    {
                        "clause": 3,
                        "scope": 2,
                        "term": "(member T17 T16)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T16"],
                    "free": [],
                    "exprvars": []
                }
            },
            "4": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(subset T1 T2)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(subset T1 T2)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "158": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "169": {
                "goal": [{
                    "clause": 2,
                    "scope": 2,
                    "term": "(member T17 T16)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T16"],
                    "free": [],
                    "exprvars": []
                }
            },
            "159": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 2,
                "to": 4,
                "label": "CASE"
            },
            {
                "from": 4,
                "to": 156,
                "label": "PARALLEL"
            },
            {
                "from": 4,
                "to": 157,
                "label": "PARALLEL"
            },
            {
                "from": 156,
                "to": 158,
                "label": "EVAL with clause\nsubset([], X8).\nand substitutionT1 -> [],\nT2 -> T7,\nX8 -> T7"
            },
            {
                "from": 156,
                "to": 159,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 157,
                "to": 161,
                "label": "EVAL with clause\nsubset(.(X15, X16), X17) :- ','(member(X15, X17), subset(X16, X17)).\nand substitutionX15 -> T17,\nX16 -> T18,\nT1 -> .(T17, T18),\nT2 -> T16,\nX17 -> T16,\nT14 -> T17,\nT15 -> T18"
            },
            {
                "from": 157,
                "to": 162,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 158,
                "to": 160,
                "label": "SUCCESS"
            },
            {
                "from": 161,
                "to": 166,
                "label": "SPLIT 1"
            },
            {
                "from": 161,
                "to": 167,
                "label": "SPLIT 2\nnew knowledge:\nT17 is ground\nT16 is ground\nreplacements:T18 -> T23"
            },
            {
                "from": 166,
                "to": 168,
                "label": "CASE"
            },
            {
                "from": 167,
                "to": 2,
                "label": "INSTANCE with matching:\nT1 -> T23\nT2 -> T16"
            },
            {
                "from": 168,
                "to": 169,
                "label": "PARALLEL"
            },
            {
                "from": 168,
                "to": 170,
                "label": "PARALLEL"
            },
            {
                "from": 169,
                "to": 174,
                "label": "EVAL with clause\nmember(X34, .(X34, X35)).\nand substitutionT17 -> T36,\nX34 -> T36,\nX35 -> T37,\nT16 -> .(T36, T37)"
            },
            {
                "from": 169,
                "to": 175,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 170,
                "to": 178,
                "label": "EVAL with clause\nmember(X42, .(X43, X44)) :- member(X42, X44).\nand substitutionT17 -> T47,\nX42 -> T47,\nX43 -> T45,\nX44 -> T46,\nT16 -> .(T45, T46),\nT44 -> T47"
            },
            {
                "from": 170,
                "to": 180,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 174,
                "to": 176,
                "label": "SUCCESS"
            },
            {
                "from": 178,
                "to": 166,
                "label": "INSTANCE with matching:\nT17 -> T47\nT16 -> T46"
            }
        ],
        "type": "Graph"
    }
}

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

(82)
Complex Obligation (AND)

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

(83)
Obligation:
Rules:
f166_out(T46) -> f178_out(T46) :|: TRUE
f178_in(x) -> f166_in(x) :|: TRUE
f170_out(T16) -> f168_out(T16) :|: TRUE
f168_in(x1) -> f170_in(x1) :|: TRUE
f169_out(x2) -> f168_out(x2) :|: TRUE
f168_in(x3) -> f169_in(x3) :|: TRUE
f168_out(x4) -> f166_out(x4) :|: TRUE
f166_in(x5) -> f168_in(x5) :|: TRUE
f170_in(x6) -> f180_in :|: TRUE
f178_out(x7) -> f170_out(.(x8, x7)) :|: TRUE
f180_out -> f170_out(x9) :|: TRUE
f170_in(.(x10, x11)) -> f178_in(x11) :|: TRUE
f2_in(T2) -> f4_in(T2) :|: TRUE
f4_out(x12) -> f2_out(x12) :|: TRUE
f4_in(x13) -> f156_in(x13) :|: TRUE
f157_out(x14) -> f4_out(x14) :|: TRUE
f156_out(x15) -> f4_out(x15) :|: TRUE
f4_in(x16) -> f157_in(x16) :|: TRUE
f161_out(x17) -> f157_out(x17) :|: TRUE
f157_in(x18) -> f162_in :|: TRUE
f162_out -> f157_out(x19) :|: TRUE
f157_in(x20) -> f161_in(x20) :|: TRUE
f166_out(x21) -> f167_in(x21) :|: TRUE
f161_in(x22) -> f166_in(x22) :|: TRUE
f167_out(x23) -> f161_out(x23) :|: TRUE
Start term: f2_in(T2)

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

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

Simplified to the following IRSwTs:

intTRSProblem:
f178_in(x) -> f166_in(x) :|: TRUE
f168_in(x1) -> f170_in(x1) :|: TRUE
f166_in(x5) -> f168_in(x5) :|: TRUE
f170_in(.(x10, x11)) -> f178_in(x11) :|: TRUE


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

(85)
Obligation:
Rules:
f178_in(x) -> f166_in(x) :|: TRUE
f168_in(x1) -> f170_in(x1) :|: TRUE
f166_in(x5) -> f168_in(x5) :|: TRUE
f170_in(.(x10, x11)) -> f178_in(x11) :|: TRUE

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

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

(87)
Obligation:
Rules:
f178_in(.(x10:0, x11:0)) -> f178_in(x11:0) :|: TRUE

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

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

(89)
Obligation:
Rules:
f178_in(.(x10:0, x11:0)) -> f178_in(x11:0) :|: TRUE

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

(90) IRSwTTerminationDigraphProof (EQUIVALENT)
Constructed termination digraph!
Nodes:
(1) f178_in(.(x10:0, x11:0)) -> f178_in(x11:0) :|: TRUE

Arcs:
(1) -> (1)

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

(91)
Obligation:

Termination digraph:
Nodes:
(1) f178_in(.(x10:0, x11:0)) -> f178_in(x11:0) :|: TRUE

Arcs:
(1) -> (1)

This digraph is fully evaluated!

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

(92) IntTRSUnneededArgumentFilterProof (EQUIVALENT)
Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements:

   .(x1, x2) -> .(x2)

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

(93)
Obligation:
Rules:
f178_in(.(x11:0)) -> f178_in(x11:0) :|: TRUE

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

(94) TempFilterProof (SOUND)
Used the following sort dictionary for filtering: 
f178_in(VARIABLE)
.(VARIABLE)
Removed predefined arithmetic.
----------------------------------------

(95)
Obligation:
Rules:
f178_in(.(x11:0)) -> f178_in(x11:0)

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

(96) IRSwTToQDPProof (SOUND)
Removed the integers and created a QDP-Problem.
----------------------------------------

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

   f178_in(.(x11:0)) -> f178_in(x11:0)

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

(98) QDPSizeChangeProof (EQUIVALENT)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 

From the DPs we obtained the following set of size-change graphs:
*f178_in(.(x11:0)) -> f178_in(x11:0)
The graph contains the following edges 1 > 1


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

(99)
YES

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

(100)
Obligation:
Rules:
f167_in(T16) -> f2_in(T16) :|: TRUE
f2_out(x) -> f167_out(x) :|: TRUE
f169_in(x1) -> f175_in :|: TRUE
f169_in(.(T36, T37)) -> f174_in :|: TRUE
f175_out -> f169_out(x2) :|: TRUE
f174_out -> f169_out(.(x3, x4)) :|: TRUE
f170_out(x5) -> f168_out(x5) :|: TRUE
f168_in(x6) -> f170_in(x6) :|: TRUE
f169_out(x7) -> f168_out(x7) :|: TRUE
f168_in(x8) -> f169_in(x8) :|: TRUE
f170_in(x9) -> f180_in :|: TRUE
f178_out(T46) -> f170_out(.(T45, T46)) :|: TRUE
f180_out -> f170_out(x10) :|: TRUE
f170_in(.(x11, x12)) -> f178_in(x12) :|: TRUE
f166_out(x13) -> f178_out(x13) :|: TRUE
f178_in(x14) -> f166_in(x14) :|: TRUE
f161_out(x15) -> f157_out(x15) :|: TRUE
f157_in(T2) -> f162_in :|: TRUE
f162_out -> f157_out(x16) :|: TRUE
f157_in(x17) -> f161_in(x17) :|: TRUE
f166_out(x18) -> f167_in(x18) :|: TRUE
f161_in(x19) -> f166_in(x19) :|: TRUE
f167_out(x20) -> f161_out(x20) :|: TRUE
f4_in(x21) -> f156_in(x21) :|: TRUE
f157_out(x22) -> f4_out(x22) :|: TRUE
f156_out(x23) -> f4_out(x23) :|: TRUE
f4_in(x24) -> f157_in(x24) :|: TRUE
f174_in -> f174_out :|: TRUE
f168_out(x25) -> f166_out(x25) :|: TRUE
f166_in(x26) -> f168_in(x26) :|: TRUE
f2_in(x27) -> f4_in(x27) :|: TRUE
f4_out(x28) -> f2_out(x28) :|: TRUE
Start term: f2_in(T2)

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

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

Simplified to the following IRSwTs:

intTRSProblem:
f167_in(T16) -> f2_in(T16) :|: TRUE
f169_in(.(T36, T37)) -> f174_in :|: TRUE
f174_out -> f169_out(.(x3, x4)) :|: TRUE
f170_out(x5) -> f168_out(x5) :|: TRUE
f168_in(x6) -> f170_in(x6) :|: TRUE
f169_out(x7) -> f168_out(x7) :|: TRUE
f168_in(x8) -> f169_in(x8) :|: TRUE
f178_out(T46) -> f170_out(.(T45, T46)) :|: TRUE
f170_in(.(x11, x12)) -> f178_in(x12) :|: TRUE
f166_out(x13) -> f178_out(x13) :|: TRUE
f178_in(x14) -> f166_in(x14) :|: TRUE
f157_in(x17) -> f161_in(x17) :|: TRUE
f166_out(x18) -> f167_in(x18) :|: TRUE
f161_in(x19) -> f166_in(x19) :|: TRUE
f4_in(x24) -> f157_in(x24) :|: TRUE
f174_in -> f174_out :|: TRUE
f168_out(x25) -> f166_out(x25) :|: TRUE
f166_in(x26) -> f168_in(x26) :|: TRUE
f2_in(x27) -> f4_in(x27) :|: TRUE


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

(102)
Obligation:
Rules:
f167_in(T16) -> f2_in(T16) :|: TRUE
f169_in(.(T36, T37)) -> f174_in :|: TRUE
f174_out -> f169_out(.(x3, x4)) :|: TRUE
f170_out(x5) -> f168_out(x5) :|: TRUE
f168_in(x6) -> f170_in(x6) :|: TRUE
f169_out(x7) -> f168_out(x7) :|: TRUE
f168_in(x8) -> f169_in(x8) :|: TRUE
f178_out(T46) -> f170_out(.(T45, T46)) :|: TRUE
f170_in(.(x11, x12)) -> f178_in(x12) :|: TRUE
f166_out(x13) -> f178_out(x13) :|: TRUE
f178_in(x14) -> f166_in(x14) :|: TRUE
f157_in(x17) -> f161_in(x17) :|: TRUE
f166_out(x18) -> f167_in(x18) :|: TRUE
f161_in(x19) -> f166_in(x19) :|: TRUE
f4_in(x24) -> f157_in(x24) :|: TRUE
f174_in -> f174_out :|: TRUE
f168_out(x25) -> f166_out(x25) :|: TRUE
f166_in(x26) -> f168_in(x26) :|: TRUE
f2_in(x27) -> f4_in(x27) :|: TRUE

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

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

(104)
Obligation:
Rules:
f166_out(x13:0) -> f166_out(.(T45:0, x13:0)) :|: TRUE
f166_out(x18:0) -> f168_in(x18:0) :|: TRUE
f168_in(.(x11:0, x12:0)) -> f168_in(x12:0) :|: TRUE
f168_in(.(T36:0, T37:0)) -> f166_out(.(x3:0, x4:0)) :|: TRUE

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

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

(106)
Obligation:
Rules:
f166_out(x13:0) -> f166_out(.(T45:0, x13:0)) :|: TRUE
f166_out(x18:0) -> f168_in(x18:0) :|: TRUE
f168_in(.(x11:0, x12:0)) -> f168_in(x12:0) :|: TRUE
f168_in(.(T36:0, T37:0)) -> f166_out(.(x3:0, x4:0)) :|: TRUE
