(0) Obligation:

Clauses:

nat(0).
nat(s(X)) :- nat(X).
plus(0, X, X) :- nat(X).
plus(s(X), Y, s(Z)) :- plus(X, Y, Z).
ways(0, X1, s(0)).
ways(X2, [], 0).
ways(Amount, .(s(C), Coins), N) :- ','(=(Amount, s(X3)), ','(plus(s(C), NewAmount, Amount), ','(ways(Amount, Coins, N1), ','(ways(NewAmount, .(s(C), Coins), N2), plus(N1, N2, N))))).
ways(Amount, .(s(C), Coins), N) :- ','(=(Amount, s(X4)), ','(plus(Amount, s(X5), s(C)), ways(Amount, Coins, N))).

Queries:

ways(g,g,a).

(1) PredefinedPredicateTransformerProof (SOUND transformation)

Added definitions of predefined predicates [PROLOG].

(2) Obligation:

Clauses:

nat(0).
nat(s(X)) :- nat(X).
plus(0, X, X) :- nat(X).
plus(s(X), Y, s(Z)) :- plus(X, Y, Z).
ways(0, X1, s(0)).
ways(X2, [], 0).
ways(Amount, .(s(C), Coins), N) :- ','(=(Amount, s(X3)), ','(plus(s(C), NewAmount, Amount), ','(ways(Amount, Coins, N1), ','(ways(NewAmount, .(s(C), Coins), N2), plus(N1, N2, N))))).
ways(Amount, .(s(C), Coins), N) :- ','(=(Amount, s(X4)), ','(plus(Amount, s(X5), s(C)), ways(Amount, Coins, N))).
=(X, X).

Queries:

ways(g,g,a).

(3) BuiltinConflictTransformerProof (SOUND transformation)

Renamed defined predicates conflicting with built-in predicates [PROLOG].

(4) Obligation:

Clauses:

nat(0).
nat(s(X)) :- nat(X).
plus(0, X, X) :- nat(X).
plus(s(X), Y, s(Z)) :- plus(X, Y, Z).
ways(0, X1, s(0)).
ways(X2, [], 0).
ways(Amount, .(s(C), Coins), N) :- ','(user_defined_=(Amount, s(X3)), ','(plus(s(C), NewAmount, Amount), ','(ways(Amount, Coins, N1), ','(ways(NewAmount, .(s(C), Coins), N2), plus(N1, N2, N))))).
ways(Amount, .(s(C), Coins), N) :- ','(user_defined_=(Amount, s(X4)), ','(plus(Amount, s(X5), s(C)), ways(Amount, Coins, N))).
user_defined_=(X, X).

Queries:

ways(g,g,a).

(5) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph.

(6) Obligation:

Triples:

nat40(s(T72)) :- nat40(T72).
plus36(0, T69, T69) :- nat40(T69).
plus36(s(T77), X148, s(T78)) :- plus36(T77, X148, T78).
plus55(0, T99, T99) :- nat40(T99).
plus55(s(T106), T107, s(T109)) :- plus55(T106, T107, T109).
nat80(s(X261)) :- nat80(X261).
plus72(0, X255, s(X255)) :- nat80(X255).
plus72(s(T148), X273, s(T149)) :- plus72(T148, X273, T149).
ways1(s(T63), .(s(T62), T39), T41) :- plus36(T62, X119, T63).
ways1(s(T51), .(s(T38), T39), T41) :- ','(plusc32(T38, T54, T51), ways1(s(T51), T39, X83)).
ways1(s(T51), .(s(T38), T39), T41) :- ','(plusc32(T38, T54, T51), ','(waysc1(s(T51), T39, T82), ways1(T54, .(s(T38), T39), X84))).
ways1(s(T51), .(s(T38), T39), T41) :- ','(plusc32(T38, T54, T51), ','(waysc1(s(T51), T39, T82), ','(waysc1(T54, .(s(T38), T39), T89), plus55(T82, T89, T41)))).
ways1(s(T142), .(s(T143), T123), T125) :- plus72(T142, X234, T143).
ways1(s(T132), .(s(T122), T123), T125) :- ','(plusc68(T132, T135, T122), ways1(s(T132), T123, T125)).

Clauses:

natc40(0).
natc40(s(T72)) :- natc40(T72).
plusc36(0, T69, T69) :- natc40(T69).
plusc36(s(T77), X148, s(T78)) :- plusc36(T77, X148, T78).
waysc1(0, T5, s(0)).
waysc1(0, [], 0).
waysc1(T30, [], 0).
waysc1(s(T51), .(s(T38), T39), T41) :- ','(plusc32(T38, T54, T51), ','(waysc1(s(T51), T39, T82), ','(waysc1(T54, .(s(T38), T39), T89), plusc55(T82, T89, T41)))).
waysc1(s(T132), .(s(T122), T123), T125) :- ','(plusc68(T132, T135, T122), waysc1(s(T132), T123, T125)).
plusc55(0, T99, T99) :- natc40(T99).
plusc55(s(T106), T107, s(T109)) :- plusc55(T106, T107, T109).
natc80(0).
natc80(s(X261)) :- natc80(X261).
plusc72(0, X255, s(X255)) :- natc80(X255).
plusc72(s(T148), X273, s(T149)) :- plusc72(T148, X273, T149).
plusc32(T62, X119, T63) :- plusc36(T62, X119, T63).
plusc68(T142, X234, T143) :- plusc72(T142, X234, T143).

Afs:

ways1(x1, x2, x3)  =  ways1(x1, x2)

(7) TriplesToPiDPProof (SOUND transformation)

We use the technique of [LOPSTR]. With regard to the inferred argument filtering the predicates were used in the following modes:
ways1_in: (b,b,f)
plus36_in: (b,f,b)
nat40_in: (b)
plusc32_in: (b,f,b)
plusc36_in: (b,f,b)
natc40_in: (b)
plus72_in: (b,f,b)
nat80_in: (b)
plusc68_in: (b,f,b)
plusc72_in: (b,f,b)
natc80_in: (b)
waysc1_in: (b,b,f)
plusc55_in: (b,b,f)
plus55_in: (b,b,f)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

WAYS1_IN_GGA(s(T63), .(s(T62), T39), T41) → U9_GGA(T63, T62, T39, T41, plus36_in_gag(T62, X119, T63))
WAYS1_IN_GGA(s(T63), .(s(T62), T39), T41) → PLUS36_IN_GAG(T62, X119, T63)
PLUS36_IN_GAG(0, T69, T69) → U2_GAG(T69, nat40_in_g(T69))
PLUS36_IN_GAG(0, T69, T69) → NAT40_IN_G(T69)
NAT40_IN_G(s(T72)) → U1_G(T72, nat40_in_g(T72))
NAT40_IN_G(s(T72)) → NAT40_IN_G(T72)
PLUS36_IN_GAG(s(T77), X148, s(T78)) → U3_GAG(T77, X148, T78, plus36_in_gag(T77, X148, T78))
PLUS36_IN_GAG(s(T77), X148, s(T78)) → PLUS36_IN_GAG(T77, X148, T78)
WAYS1_IN_GGA(s(T51), .(s(T38), T39), T41) → U10_GGA(T51, T38, T39, T41, plusc32_in_gag(T38, T54, T51))
U10_GGA(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → U11_GGA(T51, T38, T39, T41, ways1_in_gga(s(T51), T39, X83))
U10_GGA(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → WAYS1_IN_GGA(s(T51), T39, X83)
WAYS1_IN_GGA(s(T142), .(s(T143), T123), T125) → U16_GGA(T142, T143, T123, T125, plus72_in_gag(T142, X234, T143))
WAYS1_IN_GGA(s(T142), .(s(T143), T123), T125) → PLUS72_IN_GAG(T142, X234, T143)
PLUS72_IN_GAG(0, X255, s(X255)) → U7_GAG(X255, nat80_in_g(X255))
PLUS72_IN_GAG(0, X255, s(X255)) → NAT80_IN_G(X255)
NAT80_IN_G(s(X261)) → U6_G(X261, nat80_in_g(X261))
NAT80_IN_G(s(X261)) → NAT80_IN_G(X261)
PLUS72_IN_GAG(s(T148), X273, s(T149)) → U8_GAG(T148, X273, T149, plus72_in_gag(T148, X273, T149))
PLUS72_IN_GAG(s(T148), X273, s(T149)) → PLUS72_IN_GAG(T148, X273, T149)
WAYS1_IN_GGA(s(T132), .(s(T122), T123), T125) → U17_GGA(T132, T122, T123, T125, plusc68_in_gag(T132, T135, T122))
U17_GGA(T132, T122, T123, T125, plusc68_out_gag(T132, T135, T122)) → U18_GGA(T132, T122, T123, T125, ways1_in_gga(s(T132), T123, T125))
U17_GGA(T132, T122, T123, T125, plusc68_out_gag(T132, T135, T122)) → WAYS1_IN_GGA(s(T132), T123, T125)
U10_GGA(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → U12_GGA(T51, T38, T39, T41, T54, waysc1_in_gga(s(T51), T39, T82))
U12_GGA(T51, T38, T39, T41, T54, waysc1_out_gga(s(T51), T39, T82)) → U13_GGA(T51, T38, T39, T41, ways1_in_gga(T54, .(s(T38), T39), X84))
U12_GGA(T51, T38, T39, T41, T54, waysc1_out_gga(s(T51), T39, T82)) → WAYS1_IN_GGA(T54, .(s(T38), T39), X84)
U12_GGA(T51, T38, T39, T41, T54, waysc1_out_gga(s(T51), T39, T82)) → U14_GGA(T51, T38, T39, T41, T82, waysc1_in_gga(T54, .(s(T38), T39), T89))
U14_GGA(T51, T38, T39, T41, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → U15_GGA(T51, T38, T39, T41, plus55_in_gga(T82, T89, T41))
U14_GGA(T51, T38, T39, T41, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → PLUS55_IN_GGA(T82, T89, T41)
PLUS55_IN_GGA(0, T99, T99) → U4_GGA(T99, nat40_in_g(T99))
PLUS55_IN_GGA(0, T99, T99) → NAT40_IN_G(T99)
PLUS55_IN_GGA(s(T106), T107, s(T109)) → U5_GGA(T106, T107, T109, plus55_in_gga(T106, T107, T109))
PLUS55_IN_GGA(s(T106), T107, s(T109)) → PLUS55_IN_GGA(T106, T107, T109)

The TRS R consists of the following rules:

plusc32_in_gag(T62, X119, T63) → U34_gag(T62, X119, T63, plusc36_in_gag(T62, X119, T63))
plusc36_in_gag(0, T69, T69) → U21_gag(T69, natc40_in_g(T69))
natc40_in_g(0) → natc40_out_g(0)
natc40_in_g(s(T72)) → U20_g(T72, natc40_in_g(T72))
U20_g(T72, natc40_out_g(T72)) → natc40_out_g(s(T72))
U21_gag(T69, natc40_out_g(T69)) → plusc36_out_gag(0, T69, T69)
plusc36_in_gag(s(T77), X148, s(T78)) → U22_gag(T77, X148, T78, plusc36_in_gag(T77, X148, T78))
U22_gag(T77, X148, T78, plusc36_out_gag(T77, X148, T78)) → plusc36_out_gag(s(T77), X148, s(T78))
U34_gag(T62, X119, T63, plusc36_out_gag(T62, X119, T63)) → plusc32_out_gag(T62, X119, T63)
plusc68_in_gag(T142, X234, T143) → U35_gag(T142, X234, T143, plusc72_in_gag(T142, X234, T143))
plusc72_in_gag(0, X255, s(X255)) → U32_gag(X255, natc80_in_g(X255))
natc80_in_g(0) → natc80_out_g(0)
natc80_in_g(s(X261)) → U31_g(X261, natc80_in_g(X261))
U31_g(X261, natc80_out_g(X261)) → natc80_out_g(s(X261))
U32_gag(X255, natc80_out_g(X255)) → plusc72_out_gag(0, X255, s(X255))
plusc72_in_gag(s(T148), X273, s(T149)) → U33_gag(T148, X273, T149, plusc72_in_gag(T148, X273, T149))
U33_gag(T148, X273, T149, plusc72_out_gag(T148, X273, T149)) → plusc72_out_gag(s(T148), X273, s(T149))
U35_gag(T142, X234, T143, plusc72_out_gag(T142, X234, T143)) → plusc68_out_gag(T142, X234, T143)
waysc1_in_gga(0, T5, s(0)) → waysc1_out_gga(0, T5, s(0))
waysc1_in_gga(0, [], 0) → waysc1_out_gga(0, [], 0)
waysc1_in_gga(T30, [], 0) → waysc1_out_gga(T30, [], 0)
waysc1_in_gga(s(T51), .(s(T38), T39), T41) → U23_gga(T51, T38, T39, T41, plusc32_in_gag(T38, T54, T51))
U23_gga(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → U24_gga(T51, T38, T39, T41, T54, waysc1_in_gga(s(T51), T39, T82))
waysc1_in_gga(s(T132), .(s(T122), T123), T125) → U27_gga(T132, T122, T123, T125, plusc68_in_gag(T132, T135, T122))
U27_gga(T132, T122, T123, T125, plusc68_out_gag(T132, T135, T122)) → U28_gga(T132, T122, T123, T125, waysc1_in_gga(s(T132), T123, T125))
U28_gga(T132, T122, T123, T125, waysc1_out_gga(s(T132), T123, T125)) → waysc1_out_gga(s(T132), .(s(T122), T123), T125)
U24_gga(T51, T38, T39, T41, T54, waysc1_out_gga(s(T51), T39, T82)) → U25_gga(T51, T38, T39, T41, T82, waysc1_in_gga(T54, .(s(T38), T39), T89))
U25_gga(T51, T38, T39, T41, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → U26_gga(T51, T38, T39, T41, plusc55_in_gga(T82, T89, T41))
plusc55_in_gga(0, T99, T99) → U29_gga(T99, natc40_in_g(T99))
U29_gga(T99, natc40_out_g(T99)) → plusc55_out_gga(0, T99, T99)
plusc55_in_gga(s(T106), T107, s(T109)) → U30_gga(T106, T107, T109, plusc55_in_gga(T106, T107, T109))
U30_gga(T106, T107, T109, plusc55_out_gga(T106, T107, T109)) → plusc55_out_gga(s(T106), T107, s(T109))
U26_gga(T51, T38, T39, T41, plusc55_out_gga(T82, T89, T41)) → waysc1_out_gga(s(T51), .(s(T38), T39), T41)

The argument filtering Pi contains the following mapping:
ways1_in_gga(x1, x2, x3)  =  ways1_in_gga(x1, x2)
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
plus36_in_gag(x1, x2, x3)  =  plus36_in_gag(x1, x3)
0  =  0
nat40_in_g(x1)  =  nat40_in_g(x1)
plusc32_in_gag(x1, x2, x3)  =  plusc32_in_gag(x1, x3)
U34_gag(x1, x2, x3, x4)  =  U34_gag(x1, x3, x4)
plusc36_in_gag(x1, x2, x3)  =  plusc36_in_gag(x1, x3)
U21_gag(x1, x2)  =  U21_gag(x1, x2)
natc40_in_g(x1)  =  natc40_in_g(x1)
natc40_out_g(x1)  =  natc40_out_g(x1)
U20_g(x1, x2)  =  U20_g(x1, x2)
plusc36_out_gag(x1, x2, x3)  =  plusc36_out_gag(x1, x2, x3)
U22_gag(x1, x2, x3, x4)  =  U22_gag(x1, x3, x4)
plusc32_out_gag(x1, x2, x3)  =  plusc32_out_gag(x1, x2, x3)
plus72_in_gag(x1, x2, x3)  =  plus72_in_gag(x1, x3)
nat80_in_g(x1)  =  nat80_in_g(x1)
plusc68_in_gag(x1, x2, x3)  =  plusc68_in_gag(x1, x3)
U35_gag(x1, x2, x3, x4)  =  U35_gag(x1, x3, x4)
plusc72_in_gag(x1, x2, x3)  =  plusc72_in_gag(x1, x3)
U32_gag(x1, x2)  =  U32_gag(x1, x2)
natc80_in_g(x1)  =  natc80_in_g(x1)
natc80_out_g(x1)  =  natc80_out_g(x1)
U31_g(x1, x2)  =  U31_g(x1, x2)
plusc72_out_gag(x1, x2, x3)  =  plusc72_out_gag(x1, x2, x3)
U33_gag(x1, x2, x3, x4)  =  U33_gag(x1, x3, x4)
plusc68_out_gag(x1, x2, x3)  =  plusc68_out_gag(x1, x2, x3)
waysc1_in_gga(x1, x2, x3)  =  waysc1_in_gga(x1, x2)
waysc1_out_gga(x1, x2, x3)  =  waysc1_out_gga(x1, x2, x3)
[]  =  []
U23_gga(x1, x2, x3, x4, x5)  =  U23_gga(x1, x2, x3, x5)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x5, x6)
U27_gga(x1, x2, x3, x4, x5)  =  U27_gga(x1, x2, x3, x5)
U28_gga(x1, x2, x3, x4, x5)  =  U28_gga(x1, x2, x3, x5)
U25_gga(x1, x2, x3, x4, x5, x6)  =  U25_gga(x1, x2, x3, x5, x6)
U26_gga(x1, x2, x3, x4, x5)  =  U26_gga(x1, x2, x3, x5)
plusc55_in_gga(x1, x2, x3)  =  plusc55_in_gga(x1, x2)
U29_gga(x1, x2)  =  U29_gga(x1, x2)
plusc55_out_gga(x1, x2, x3)  =  plusc55_out_gga(x1, x2, x3)
U30_gga(x1, x2, x3, x4)  =  U30_gga(x1, x2, x4)
plus55_in_gga(x1, x2, x3)  =  plus55_in_gga(x1, x2)
WAYS1_IN_GGA(x1, x2, x3)  =  WAYS1_IN_GGA(x1, x2)
U9_GGA(x1, x2, x3, x4, x5)  =  U9_GGA(x1, x2, x3, x5)
PLUS36_IN_GAG(x1, x2, x3)  =  PLUS36_IN_GAG(x1, x3)
U2_GAG(x1, x2)  =  U2_GAG(x1, x2)
NAT40_IN_G(x1)  =  NAT40_IN_G(x1)
U1_G(x1, x2)  =  U1_G(x1, x2)
U3_GAG(x1, x2, x3, x4)  =  U3_GAG(x1, x3, x4)
U10_GGA(x1, x2, x3, x4, x5)  =  U10_GGA(x1, x2, x3, x5)
U11_GGA(x1, x2, x3, x4, x5)  =  U11_GGA(x1, x2, x3, x5)
U16_GGA(x1, x2, x3, x4, x5)  =  U16_GGA(x1, x2, x3, x5)
PLUS72_IN_GAG(x1, x2, x3)  =  PLUS72_IN_GAG(x1, x3)
U7_GAG(x1, x2)  =  U7_GAG(x1, x2)
NAT80_IN_G(x1)  =  NAT80_IN_G(x1)
U6_G(x1, x2)  =  U6_G(x1, x2)
U8_GAG(x1, x2, x3, x4)  =  U8_GAG(x1, x3, x4)
U17_GGA(x1, x2, x3, x4, x5)  =  U17_GGA(x1, x2, x3, x5)
U18_GGA(x1, x2, x3, x4, x5)  =  U18_GGA(x1, x2, x3, x5)
U12_GGA(x1, x2, x3, x4, x5, x6)  =  U12_GGA(x1, x2, x3, x5, x6)
U13_GGA(x1, x2, x3, x4, x5)  =  U13_GGA(x1, x2, x3, x5)
U14_GGA(x1, x2, x3, x4, x5, x6)  =  U14_GGA(x1, x2, x3, x5, x6)
U15_GGA(x1, x2, x3, x4, x5)  =  U15_GGA(x1, x2, x3, x5)
PLUS55_IN_GGA(x1, x2, x3)  =  PLUS55_IN_GGA(x1, x2)
U4_GGA(x1, x2)  =  U4_GGA(x1, x2)
U5_GGA(x1, x2, x3, x4)  =  U5_GGA(x1, x2, x4)

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

Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES

(8) Obligation:

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

WAYS1_IN_GGA(s(T63), .(s(T62), T39), T41) → U9_GGA(T63, T62, T39, T41, plus36_in_gag(T62, X119, T63))
WAYS1_IN_GGA(s(T63), .(s(T62), T39), T41) → PLUS36_IN_GAG(T62, X119, T63)
PLUS36_IN_GAG(0, T69, T69) → U2_GAG(T69, nat40_in_g(T69))
PLUS36_IN_GAG(0, T69, T69) → NAT40_IN_G(T69)
NAT40_IN_G(s(T72)) → U1_G(T72, nat40_in_g(T72))
NAT40_IN_G(s(T72)) → NAT40_IN_G(T72)
PLUS36_IN_GAG(s(T77), X148, s(T78)) → U3_GAG(T77, X148, T78, plus36_in_gag(T77, X148, T78))
PLUS36_IN_GAG(s(T77), X148, s(T78)) → PLUS36_IN_GAG(T77, X148, T78)
WAYS1_IN_GGA(s(T51), .(s(T38), T39), T41) → U10_GGA(T51, T38, T39, T41, plusc32_in_gag(T38, T54, T51))
U10_GGA(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → U11_GGA(T51, T38, T39, T41, ways1_in_gga(s(T51), T39, X83))
U10_GGA(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → WAYS1_IN_GGA(s(T51), T39, X83)
WAYS1_IN_GGA(s(T142), .(s(T143), T123), T125) → U16_GGA(T142, T143, T123, T125, plus72_in_gag(T142, X234, T143))
WAYS1_IN_GGA(s(T142), .(s(T143), T123), T125) → PLUS72_IN_GAG(T142, X234, T143)
PLUS72_IN_GAG(0, X255, s(X255)) → U7_GAG(X255, nat80_in_g(X255))
PLUS72_IN_GAG(0, X255, s(X255)) → NAT80_IN_G(X255)
NAT80_IN_G(s(X261)) → U6_G(X261, nat80_in_g(X261))
NAT80_IN_G(s(X261)) → NAT80_IN_G(X261)
PLUS72_IN_GAG(s(T148), X273, s(T149)) → U8_GAG(T148, X273, T149, plus72_in_gag(T148, X273, T149))
PLUS72_IN_GAG(s(T148), X273, s(T149)) → PLUS72_IN_GAG(T148, X273, T149)
WAYS1_IN_GGA(s(T132), .(s(T122), T123), T125) → U17_GGA(T132, T122, T123, T125, plusc68_in_gag(T132, T135, T122))
U17_GGA(T132, T122, T123, T125, plusc68_out_gag(T132, T135, T122)) → U18_GGA(T132, T122, T123, T125, ways1_in_gga(s(T132), T123, T125))
U17_GGA(T132, T122, T123, T125, plusc68_out_gag(T132, T135, T122)) → WAYS1_IN_GGA(s(T132), T123, T125)
U10_GGA(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → U12_GGA(T51, T38, T39, T41, T54, waysc1_in_gga(s(T51), T39, T82))
U12_GGA(T51, T38, T39, T41, T54, waysc1_out_gga(s(T51), T39, T82)) → U13_GGA(T51, T38, T39, T41, ways1_in_gga(T54, .(s(T38), T39), X84))
U12_GGA(T51, T38, T39, T41, T54, waysc1_out_gga(s(T51), T39, T82)) → WAYS1_IN_GGA(T54, .(s(T38), T39), X84)
U12_GGA(T51, T38, T39, T41, T54, waysc1_out_gga(s(T51), T39, T82)) → U14_GGA(T51, T38, T39, T41, T82, waysc1_in_gga(T54, .(s(T38), T39), T89))
U14_GGA(T51, T38, T39, T41, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → U15_GGA(T51, T38, T39, T41, plus55_in_gga(T82, T89, T41))
U14_GGA(T51, T38, T39, T41, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → PLUS55_IN_GGA(T82, T89, T41)
PLUS55_IN_GGA(0, T99, T99) → U4_GGA(T99, nat40_in_g(T99))
PLUS55_IN_GGA(0, T99, T99) → NAT40_IN_G(T99)
PLUS55_IN_GGA(s(T106), T107, s(T109)) → U5_GGA(T106, T107, T109, plus55_in_gga(T106, T107, T109))
PLUS55_IN_GGA(s(T106), T107, s(T109)) → PLUS55_IN_GGA(T106, T107, T109)

The TRS R consists of the following rules:

plusc32_in_gag(T62, X119, T63) → U34_gag(T62, X119, T63, plusc36_in_gag(T62, X119, T63))
plusc36_in_gag(0, T69, T69) → U21_gag(T69, natc40_in_g(T69))
natc40_in_g(0) → natc40_out_g(0)
natc40_in_g(s(T72)) → U20_g(T72, natc40_in_g(T72))
U20_g(T72, natc40_out_g(T72)) → natc40_out_g(s(T72))
U21_gag(T69, natc40_out_g(T69)) → plusc36_out_gag(0, T69, T69)
plusc36_in_gag(s(T77), X148, s(T78)) → U22_gag(T77, X148, T78, plusc36_in_gag(T77, X148, T78))
U22_gag(T77, X148, T78, plusc36_out_gag(T77, X148, T78)) → plusc36_out_gag(s(T77), X148, s(T78))
U34_gag(T62, X119, T63, plusc36_out_gag(T62, X119, T63)) → plusc32_out_gag(T62, X119, T63)
plusc68_in_gag(T142, X234, T143) → U35_gag(T142, X234, T143, plusc72_in_gag(T142, X234, T143))
plusc72_in_gag(0, X255, s(X255)) → U32_gag(X255, natc80_in_g(X255))
natc80_in_g(0) → natc80_out_g(0)
natc80_in_g(s(X261)) → U31_g(X261, natc80_in_g(X261))
U31_g(X261, natc80_out_g(X261)) → natc80_out_g(s(X261))
U32_gag(X255, natc80_out_g(X255)) → plusc72_out_gag(0, X255, s(X255))
plusc72_in_gag(s(T148), X273, s(T149)) → U33_gag(T148, X273, T149, plusc72_in_gag(T148, X273, T149))
U33_gag(T148, X273, T149, plusc72_out_gag(T148, X273, T149)) → plusc72_out_gag(s(T148), X273, s(T149))
U35_gag(T142, X234, T143, plusc72_out_gag(T142, X234, T143)) → plusc68_out_gag(T142, X234, T143)
waysc1_in_gga(0, T5, s(0)) → waysc1_out_gga(0, T5, s(0))
waysc1_in_gga(0, [], 0) → waysc1_out_gga(0, [], 0)
waysc1_in_gga(T30, [], 0) → waysc1_out_gga(T30, [], 0)
waysc1_in_gga(s(T51), .(s(T38), T39), T41) → U23_gga(T51, T38, T39, T41, plusc32_in_gag(T38, T54, T51))
U23_gga(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → U24_gga(T51, T38, T39, T41, T54, waysc1_in_gga(s(T51), T39, T82))
waysc1_in_gga(s(T132), .(s(T122), T123), T125) → U27_gga(T132, T122, T123, T125, plusc68_in_gag(T132, T135, T122))
U27_gga(T132, T122, T123, T125, plusc68_out_gag(T132, T135, T122)) → U28_gga(T132, T122, T123, T125, waysc1_in_gga(s(T132), T123, T125))
U28_gga(T132, T122, T123, T125, waysc1_out_gga(s(T132), T123, T125)) → waysc1_out_gga(s(T132), .(s(T122), T123), T125)
U24_gga(T51, T38, T39, T41, T54, waysc1_out_gga(s(T51), T39, T82)) → U25_gga(T51, T38, T39, T41, T82, waysc1_in_gga(T54, .(s(T38), T39), T89))
U25_gga(T51, T38, T39, T41, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → U26_gga(T51, T38, T39, T41, plusc55_in_gga(T82, T89, T41))
plusc55_in_gga(0, T99, T99) → U29_gga(T99, natc40_in_g(T99))
U29_gga(T99, natc40_out_g(T99)) → plusc55_out_gga(0, T99, T99)
plusc55_in_gga(s(T106), T107, s(T109)) → U30_gga(T106, T107, T109, plusc55_in_gga(T106, T107, T109))
U30_gga(T106, T107, T109, plusc55_out_gga(T106, T107, T109)) → plusc55_out_gga(s(T106), T107, s(T109))
U26_gga(T51, T38, T39, T41, plusc55_out_gga(T82, T89, T41)) → waysc1_out_gga(s(T51), .(s(T38), T39), T41)

The argument filtering Pi contains the following mapping:
ways1_in_gga(x1, x2, x3)  =  ways1_in_gga(x1, x2)
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
plus36_in_gag(x1, x2, x3)  =  plus36_in_gag(x1, x3)
0  =  0
nat40_in_g(x1)  =  nat40_in_g(x1)
plusc32_in_gag(x1, x2, x3)  =  plusc32_in_gag(x1, x3)
U34_gag(x1, x2, x3, x4)  =  U34_gag(x1, x3, x4)
plusc36_in_gag(x1, x2, x3)  =  plusc36_in_gag(x1, x3)
U21_gag(x1, x2)  =  U21_gag(x1, x2)
natc40_in_g(x1)  =  natc40_in_g(x1)
natc40_out_g(x1)  =  natc40_out_g(x1)
U20_g(x1, x2)  =  U20_g(x1, x2)
plusc36_out_gag(x1, x2, x3)  =  plusc36_out_gag(x1, x2, x3)
U22_gag(x1, x2, x3, x4)  =  U22_gag(x1, x3, x4)
plusc32_out_gag(x1, x2, x3)  =  plusc32_out_gag(x1, x2, x3)
plus72_in_gag(x1, x2, x3)  =  plus72_in_gag(x1, x3)
nat80_in_g(x1)  =  nat80_in_g(x1)
plusc68_in_gag(x1, x2, x3)  =  plusc68_in_gag(x1, x3)
U35_gag(x1, x2, x3, x4)  =  U35_gag(x1, x3, x4)
plusc72_in_gag(x1, x2, x3)  =  plusc72_in_gag(x1, x3)
U32_gag(x1, x2)  =  U32_gag(x1, x2)
natc80_in_g(x1)  =  natc80_in_g(x1)
natc80_out_g(x1)  =  natc80_out_g(x1)
U31_g(x1, x2)  =  U31_g(x1, x2)
plusc72_out_gag(x1, x2, x3)  =  plusc72_out_gag(x1, x2, x3)
U33_gag(x1, x2, x3, x4)  =  U33_gag(x1, x3, x4)
plusc68_out_gag(x1, x2, x3)  =  plusc68_out_gag(x1, x2, x3)
waysc1_in_gga(x1, x2, x3)  =  waysc1_in_gga(x1, x2)
waysc1_out_gga(x1, x2, x3)  =  waysc1_out_gga(x1, x2, x3)
[]  =  []
U23_gga(x1, x2, x3, x4, x5)  =  U23_gga(x1, x2, x3, x5)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x5, x6)
U27_gga(x1, x2, x3, x4, x5)  =  U27_gga(x1, x2, x3, x5)
U28_gga(x1, x2, x3, x4, x5)  =  U28_gga(x1, x2, x3, x5)
U25_gga(x1, x2, x3, x4, x5, x6)  =  U25_gga(x1, x2, x3, x5, x6)
U26_gga(x1, x2, x3, x4, x5)  =  U26_gga(x1, x2, x3, x5)
plusc55_in_gga(x1, x2, x3)  =  plusc55_in_gga(x1, x2)
U29_gga(x1, x2)  =  U29_gga(x1, x2)
plusc55_out_gga(x1, x2, x3)  =  plusc55_out_gga(x1, x2, x3)
U30_gga(x1, x2, x3, x4)  =  U30_gga(x1, x2, x4)
plus55_in_gga(x1, x2, x3)  =  plus55_in_gga(x1, x2)
WAYS1_IN_GGA(x1, x2, x3)  =  WAYS1_IN_GGA(x1, x2)
U9_GGA(x1, x2, x3, x4, x5)  =  U9_GGA(x1, x2, x3, x5)
PLUS36_IN_GAG(x1, x2, x3)  =  PLUS36_IN_GAG(x1, x3)
U2_GAG(x1, x2)  =  U2_GAG(x1, x2)
NAT40_IN_G(x1)  =  NAT40_IN_G(x1)
U1_G(x1, x2)  =  U1_G(x1, x2)
U3_GAG(x1, x2, x3, x4)  =  U3_GAG(x1, x3, x4)
U10_GGA(x1, x2, x3, x4, x5)  =  U10_GGA(x1, x2, x3, x5)
U11_GGA(x1, x2, x3, x4, x5)  =  U11_GGA(x1, x2, x3, x5)
U16_GGA(x1, x2, x3, x4, x5)  =  U16_GGA(x1, x2, x3, x5)
PLUS72_IN_GAG(x1, x2, x3)  =  PLUS72_IN_GAG(x1, x3)
U7_GAG(x1, x2)  =  U7_GAG(x1, x2)
NAT80_IN_G(x1)  =  NAT80_IN_G(x1)
U6_G(x1, x2)  =  U6_G(x1, x2)
U8_GAG(x1, x2, x3, x4)  =  U8_GAG(x1, x3, x4)
U17_GGA(x1, x2, x3, x4, x5)  =  U17_GGA(x1, x2, x3, x5)
U18_GGA(x1, x2, x3, x4, x5)  =  U18_GGA(x1, x2, x3, x5)
U12_GGA(x1, x2, x3, x4, x5, x6)  =  U12_GGA(x1, x2, x3, x5, x6)
U13_GGA(x1, x2, x3, x4, x5)  =  U13_GGA(x1, x2, x3, x5)
U14_GGA(x1, x2, x3, x4, x5, x6)  =  U14_GGA(x1, x2, x3, x5, x6)
U15_GGA(x1, x2, x3, x4, x5)  =  U15_GGA(x1, x2, x3, x5)
PLUS55_IN_GGA(x1, x2, x3)  =  PLUS55_IN_GGA(x1, x2)
U4_GGA(x1, x2)  =  U4_GGA(x1, x2)
U5_GGA(x1, x2, x3, x4)  =  U5_GGA(x1, x2, x4)

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

(9) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 6 SCCs with 21 less nodes.

(10) Complex Obligation (AND)

(11) Obligation:

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

NAT80_IN_G(s(X261)) → NAT80_IN_G(X261)

The TRS R consists of the following rules:

plusc32_in_gag(T62, X119, T63) → U34_gag(T62, X119, T63, plusc36_in_gag(T62, X119, T63))
plusc36_in_gag(0, T69, T69) → U21_gag(T69, natc40_in_g(T69))
natc40_in_g(0) → natc40_out_g(0)
natc40_in_g(s(T72)) → U20_g(T72, natc40_in_g(T72))
U20_g(T72, natc40_out_g(T72)) → natc40_out_g(s(T72))
U21_gag(T69, natc40_out_g(T69)) → plusc36_out_gag(0, T69, T69)
plusc36_in_gag(s(T77), X148, s(T78)) → U22_gag(T77, X148, T78, plusc36_in_gag(T77, X148, T78))
U22_gag(T77, X148, T78, plusc36_out_gag(T77, X148, T78)) → plusc36_out_gag(s(T77), X148, s(T78))
U34_gag(T62, X119, T63, plusc36_out_gag(T62, X119, T63)) → plusc32_out_gag(T62, X119, T63)
plusc68_in_gag(T142, X234, T143) → U35_gag(T142, X234, T143, plusc72_in_gag(T142, X234, T143))
plusc72_in_gag(0, X255, s(X255)) → U32_gag(X255, natc80_in_g(X255))
natc80_in_g(0) → natc80_out_g(0)
natc80_in_g(s(X261)) → U31_g(X261, natc80_in_g(X261))
U31_g(X261, natc80_out_g(X261)) → natc80_out_g(s(X261))
U32_gag(X255, natc80_out_g(X255)) → plusc72_out_gag(0, X255, s(X255))
plusc72_in_gag(s(T148), X273, s(T149)) → U33_gag(T148, X273, T149, plusc72_in_gag(T148, X273, T149))
U33_gag(T148, X273, T149, plusc72_out_gag(T148, X273, T149)) → plusc72_out_gag(s(T148), X273, s(T149))
U35_gag(T142, X234, T143, plusc72_out_gag(T142, X234, T143)) → plusc68_out_gag(T142, X234, T143)
waysc1_in_gga(0, T5, s(0)) → waysc1_out_gga(0, T5, s(0))
waysc1_in_gga(0, [], 0) → waysc1_out_gga(0, [], 0)
waysc1_in_gga(T30, [], 0) → waysc1_out_gga(T30, [], 0)
waysc1_in_gga(s(T51), .(s(T38), T39), T41) → U23_gga(T51, T38, T39, T41, plusc32_in_gag(T38, T54, T51))
U23_gga(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → U24_gga(T51, T38, T39, T41, T54, waysc1_in_gga(s(T51), T39, T82))
waysc1_in_gga(s(T132), .(s(T122), T123), T125) → U27_gga(T132, T122, T123, T125, plusc68_in_gag(T132, T135, T122))
U27_gga(T132, T122, T123, T125, plusc68_out_gag(T132, T135, T122)) → U28_gga(T132, T122, T123, T125, waysc1_in_gga(s(T132), T123, T125))
U28_gga(T132, T122, T123, T125, waysc1_out_gga(s(T132), T123, T125)) → waysc1_out_gga(s(T132), .(s(T122), T123), T125)
U24_gga(T51, T38, T39, T41, T54, waysc1_out_gga(s(T51), T39, T82)) → U25_gga(T51, T38, T39, T41, T82, waysc1_in_gga(T54, .(s(T38), T39), T89))
U25_gga(T51, T38, T39, T41, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → U26_gga(T51, T38, T39, T41, plusc55_in_gga(T82, T89, T41))
plusc55_in_gga(0, T99, T99) → U29_gga(T99, natc40_in_g(T99))
U29_gga(T99, natc40_out_g(T99)) → plusc55_out_gga(0, T99, T99)
plusc55_in_gga(s(T106), T107, s(T109)) → U30_gga(T106, T107, T109, plusc55_in_gga(T106, T107, T109))
U30_gga(T106, T107, T109, plusc55_out_gga(T106, T107, T109)) → plusc55_out_gga(s(T106), T107, s(T109))
U26_gga(T51, T38, T39, T41, plusc55_out_gga(T82, T89, T41)) → waysc1_out_gga(s(T51), .(s(T38), T39), T41)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
0  =  0
plusc32_in_gag(x1, x2, x3)  =  plusc32_in_gag(x1, x3)
U34_gag(x1, x2, x3, x4)  =  U34_gag(x1, x3, x4)
plusc36_in_gag(x1, x2, x3)  =  plusc36_in_gag(x1, x3)
U21_gag(x1, x2)  =  U21_gag(x1, x2)
natc40_in_g(x1)  =  natc40_in_g(x1)
natc40_out_g(x1)  =  natc40_out_g(x1)
U20_g(x1, x2)  =  U20_g(x1, x2)
plusc36_out_gag(x1, x2, x3)  =  plusc36_out_gag(x1, x2, x3)
U22_gag(x1, x2, x3, x4)  =  U22_gag(x1, x3, x4)
plusc32_out_gag(x1, x2, x3)  =  plusc32_out_gag(x1, x2, x3)
plusc68_in_gag(x1, x2, x3)  =  plusc68_in_gag(x1, x3)
U35_gag(x1, x2, x3, x4)  =  U35_gag(x1, x3, x4)
plusc72_in_gag(x1, x2, x3)  =  plusc72_in_gag(x1, x3)
U32_gag(x1, x2)  =  U32_gag(x1, x2)
natc80_in_g(x1)  =  natc80_in_g(x1)
natc80_out_g(x1)  =  natc80_out_g(x1)
U31_g(x1, x2)  =  U31_g(x1, x2)
plusc72_out_gag(x1, x2, x3)  =  plusc72_out_gag(x1, x2, x3)
U33_gag(x1, x2, x3, x4)  =  U33_gag(x1, x3, x4)
plusc68_out_gag(x1, x2, x3)  =  plusc68_out_gag(x1, x2, x3)
waysc1_in_gga(x1, x2, x3)  =  waysc1_in_gga(x1, x2)
waysc1_out_gga(x1, x2, x3)  =  waysc1_out_gga(x1, x2, x3)
[]  =  []
U23_gga(x1, x2, x3, x4, x5)  =  U23_gga(x1, x2, x3, x5)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x5, x6)
U27_gga(x1, x2, x3, x4, x5)  =  U27_gga(x1, x2, x3, x5)
U28_gga(x1, x2, x3, x4, x5)  =  U28_gga(x1, x2, x3, x5)
U25_gga(x1, x2, x3, x4, x5, x6)  =  U25_gga(x1, x2, x3, x5, x6)
U26_gga(x1, x2, x3, x4, x5)  =  U26_gga(x1, x2, x3, x5)
plusc55_in_gga(x1, x2, x3)  =  plusc55_in_gga(x1, x2)
U29_gga(x1, x2)  =  U29_gga(x1, x2)
plusc55_out_gga(x1, x2, x3)  =  plusc55_out_gga(x1, x2, x3)
U30_gga(x1, x2, x3, x4)  =  U30_gga(x1, x2, x4)
NAT80_IN_G(x1)  =  NAT80_IN_G(x1)

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

(12) UsableRulesProof (EQUIVALENT transformation)

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

(13) Obligation:

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

NAT80_IN_G(s(X261)) → NAT80_IN_G(X261)

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

(14) PiDPToQDPProof (EQUIVALENT transformation)

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

(15) Obligation:

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

NAT80_IN_G(s(X261)) → NAT80_IN_G(X261)

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

(16) QDPSizeChangeProof (EQUIVALENT transformation)

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:

  • NAT80_IN_G(s(X261)) → NAT80_IN_G(X261)
    The graph contains the following edges 1 > 1

(17) YES

(18) Obligation:

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

PLUS72_IN_GAG(s(T148), X273, s(T149)) → PLUS72_IN_GAG(T148, X273, T149)

The TRS R consists of the following rules:

plusc32_in_gag(T62, X119, T63) → U34_gag(T62, X119, T63, plusc36_in_gag(T62, X119, T63))
plusc36_in_gag(0, T69, T69) → U21_gag(T69, natc40_in_g(T69))
natc40_in_g(0) → natc40_out_g(0)
natc40_in_g(s(T72)) → U20_g(T72, natc40_in_g(T72))
U20_g(T72, natc40_out_g(T72)) → natc40_out_g(s(T72))
U21_gag(T69, natc40_out_g(T69)) → plusc36_out_gag(0, T69, T69)
plusc36_in_gag(s(T77), X148, s(T78)) → U22_gag(T77, X148, T78, plusc36_in_gag(T77, X148, T78))
U22_gag(T77, X148, T78, plusc36_out_gag(T77, X148, T78)) → plusc36_out_gag(s(T77), X148, s(T78))
U34_gag(T62, X119, T63, plusc36_out_gag(T62, X119, T63)) → plusc32_out_gag(T62, X119, T63)
plusc68_in_gag(T142, X234, T143) → U35_gag(T142, X234, T143, plusc72_in_gag(T142, X234, T143))
plusc72_in_gag(0, X255, s(X255)) → U32_gag(X255, natc80_in_g(X255))
natc80_in_g(0) → natc80_out_g(0)
natc80_in_g(s(X261)) → U31_g(X261, natc80_in_g(X261))
U31_g(X261, natc80_out_g(X261)) → natc80_out_g(s(X261))
U32_gag(X255, natc80_out_g(X255)) → plusc72_out_gag(0, X255, s(X255))
plusc72_in_gag(s(T148), X273, s(T149)) → U33_gag(T148, X273, T149, plusc72_in_gag(T148, X273, T149))
U33_gag(T148, X273, T149, plusc72_out_gag(T148, X273, T149)) → plusc72_out_gag(s(T148), X273, s(T149))
U35_gag(T142, X234, T143, plusc72_out_gag(T142, X234, T143)) → plusc68_out_gag(T142, X234, T143)
waysc1_in_gga(0, T5, s(0)) → waysc1_out_gga(0, T5, s(0))
waysc1_in_gga(0, [], 0) → waysc1_out_gga(0, [], 0)
waysc1_in_gga(T30, [], 0) → waysc1_out_gga(T30, [], 0)
waysc1_in_gga(s(T51), .(s(T38), T39), T41) → U23_gga(T51, T38, T39, T41, plusc32_in_gag(T38, T54, T51))
U23_gga(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → U24_gga(T51, T38, T39, T41, T54, waysc1_in_gga(s(T51), T39, T82))
waysc1_in_gga(s(T132), .(s(T122), T123), T125) → U27_gga(T132, T122, T123, T125, plusc68_in_gag(T132, T135, T122))
U27_gga(T132, T122, T123, T125, plusc68_out_gag(T132, T135, T122)) → U28_gga(T132, T122, T123, T125, waysc1_in_gga(s(T132), T123, T125))
U28_gga(T132, T122, T123, T125, waysc1_out_gga(s(T132), T123, T125)) → waysc1_out_gga(s(T132), .(s(T122), T123), T125)
U24_gga(T51, T38, T39, T41, T54, waysc1_out_gga(s(T51), T39, T82)) → U25_gga(T51, T38, T39, T41, T82, waysc1_in_gga(T54, .(s(T38), T39), T89))
U25_gga(T51, T38, T39, T41, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → U26_gga(T51, T38, T39, T41, plusc55_in_gga(T82, T89, T41))
plusc55_in_gga(0, T99, T99) → U29_gga(T99, natc40_in_g(T99))
U29_gga(T99, natc40_out_g(T99)) → plusc55_out_gga(0, T99, T99)
plusc55_in_gga(s(T106), T107, s(T109)) → U30_gga(T106, T107, T109, plusc55_in_gga(T106, T107, T109))
U30_gga(T106, T107, T109, plusc55_out_gga(T106, T107, T109)) → plusc55_out_gga(s(T106), T107, s(T109))
U26_gga(T51, T38, T39, T41, plusc55_out_gga(T82, T89, T41)) → waysc1_out_gga(s(T51), .(s(T38), T39), T41)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
0  =  0
plusc32_in_gag(x1, x2, x3)  =  plusc32_in_gag(x1, x3)
U34_gag(x1, x2, x3, x4)  =  U34_gag(x1, x3, x4)
plusc36_in_gag(x1, x2, x3)  =  plusc36_in_gag(x1, x3)
U21_gag(x1, x2)  =  U21_gag(x1, x2)
natc40_in_g(x1)  =  natc40_in_g(x1)
natc40_out_g(x1)  =  natc40_out_g(x1)
U20_g(x1, x2)  =  U20_g(x1, x2)
plusc36_out_gag(x1, x2, x3)  =  plusc36_out_gag(x1, x2, x3)
U22_gag(x1, x2, x3, x4)  =  U22_gag(x1, x3, x4)
plusc32_out_gag(x1, x2, x3)  =  plusc32_out_gag(x1, x2, x3)
plusc68_in_gag(x1, x2, x3)  =  plusc68_in_gag(x1, x3)
U35_gag(x1, x2, x3, x4)  =  U35_gag(x1, x3, x4)
plusc72_in_gag(x1, x2, x3)  =  plusc72_in_gag(x1, x3)
U32_gag(x1, x2)  =  U32_gag(x1, x2)
natc80_in_g(x1)  =  natc80_in_g(x1)
natc80_out_g(x1)  =  natc80_out_g(x1)
U31_g(x1, x2)  =  U31_g(x1, x2)
plusc72_out_gag(x1, x2, x3)  =  plusc72_out_gag(x1, x2, x3)
U33_gag(x1, x2, x3, x4)  =  U33_gag(x1, x3, x4)
plusc68_out_gag(x1, x2, x3)  =  plusc68_out_gag(x1, x2, x3)
waysc1_in_gga(x1, x2, x3)  =  waysc1_in_gga(x1, x2)
waysc1_out_gga(x1, x2, x3)  =  waysc1_out_gga(x1, x2, x3)
[]  =  []
U23_gga(x1, x2, x3, x4, x5)  =  U23_gga(x1, x2, x3, x5)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x5, x6)
U27_gga(x1, x2, x3, x4, x5)  =  U27_gga(x1, x2, x3, x5)
U28_gga(x1, x2, x3, x4, x5)  =  U28_gga(x1, x2, x3, x5)
U25_gga(x1, x2, x3, x4, x5, x6)  =  U25_gga(x1, x2, x3, x5, x6)
U26_gga(x1, x2, x3, x4, x5)  =  U26_gga(x1, x2, x3, x5)
plusc55_in_gga(x1, x2, x3)  =  plusc55_in_gga(x1, x2)
U29_gga(x1, x2)  =  U29_gga(x1, x2)
plusc55_out_gga(x1, x2, x3)  =  plusc55_out_gga(x1, x2, x3)
U30_gga(x1, x2, x3, x4)  =  U30_gga(x1, x2, x4)
PLUS72_IN_GAG(x1, x2, x3)  =  PLUS72_IN_GAG(x1, x3)

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

(19) UsableRulesProof (EQUIVALENT transformation)

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

(20) Obligation:

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

PLUS72_IN_GAG(s(T148), X273, s(T149)) → PLUS72_IN_GAG(T148, X273, T149)

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

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

(21) PiDPToQDPProof (SOUND transformation)

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

(22) Obligation:

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

PLUS72_IN_GAG(s(T148), s(T149)) → PLUS72_IN_GAG(T148, T149)

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

(23) QDPSizeChangeProof (EQUIVALENT transformation)

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:

  • PLUS72_IN_GAG(s(T148), s(T149)) → PLUS72_IN_GAG(T148, T149)
    The graph contains the following edges 1 > 1, 2 > 2

(24) YES

(25) Obligation:

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

NAT40_IN_G(s(T72)) → NAT40_IN_G(T72)

The TRS R consists of the following rules:

plusc32_in_gag(T62, X119, T63) → U34_gag(T62, X119, T63, plusc36_in_gag(T62, X119, T63))
plusc36_in_gag(0, T69, T69) → U21_gag(T69, natc40_in_g(T69))
natc40_in_g(0) → natc40_out_g(0)
natc40_in_g(s(T72)) → U20_g(T72, natc40_in_g(T72))
U20_g(T72, natc40_out_g(T72)) → natc40_out_g(s(T72))
U21_gag(T69, natc40_out_g(T69)) → plusc36_out_gag(0, T69, T69)
plusc36_in_gag(s(T77), X148, s(T78)) → U22_gag(T77, X148, T78, plusc36_in_gag(T77, X148, T78))
U22_gag(T77, X148, T78, plusc36_out_gag(T77, X148, T78)) → plusc36_out_gag(s(T77), X148, s(T78))
U34_gag(T62, X119, T63, plusc36_out_gag(T62, X119, T63)) → plusc32_out_gag(T62, X119, T63)
plusc68_in_gag(T142, X234, T143) → U35_gag(T142, X234, T143, plusc72_in_gag(T142, X234, T143))
plusc72_in_gag(0, X255, s(X255)) → U32_gag(X255, natc80_in_g(X255))
natc80_in_g(0) → natc80_out_g(0)
natc80_in_g(s(X261)) → U31_g(X261, natc80_in_g(X261))
U31_g(X261, natc80_out_g(X261)) → natc80_out_g(s(X261))
U32_gag(X255, natc80_out_g(X255)) → plusc72_out_gag(0, X255, s(X255))
plusc72_in_gag(s(T148), X273, s(T149)) → U33_gag(T148, X273, T149, plusc72_in_gag(T148, X273, T149))
U33_gag(T148, X273, T149, plusc72_out_gag(T148, X273, T149)) → plusc72_out_gag(s(T148), X273, s(T149))
U35_gag(T142, X234, T143, plusc72_out_gag(T142, X234, T143)) → plusc68_out_gag(T142, X234, T143)
waysc1_in_gga(0, T5, s(0)) → waysc1_out_gga(0, T5, s(0))
waysc1_in_gga(0, [], 0) → waysc1_out_gga(0, [], 0)
waysc1_in_gga(T30, [], 0) → waysc1_out_gga(T30, [], 0)
waysc1_in_gga(s(T51), .(s(T38), T39), T41) → U23_gga(T51, T38, T39, T41, plusc32_in_gag(T38, T54, T51))
U23_gga(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → U24_gga(T51, T38, T39, T41, T54, waysc1_in_gga(s(T51), T39, T82))
waysc1_in_gga(s(T132), .(s(T122), T123), T125) → U27_gga(T132, T122, T123, T125, plusc68_in_gag(T132, T135, T122))
U27_gga(T132, T122, T123, T125, plusc68_out_gag(T132, T135, T122)) → U28_gga(T132, T122, T123, T125, waysc1_in_gga(s(T132), T123, T125))
U28_gga(T132, T122, T123, T125, waysc1_out_gga(s(T132), T123, T125)) → waysc1_out_gga(s(T132), .(s(T122), T123), T125)
U24_gga(T51, T38, T39, T41, T54, waysc1_out_gga(s(T51), T39, T82)) → U25_gga(T51, T38, T39, T41, T82, waysc1_in_gga(T54, .(s(T38), T39), T89))
U25_gga(T51, T38, T39, T41, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → U26_gga(T51, T38, T39, T41, plusc55_in_gga(T82, T89, T41))
plusc55_in_gga(0, T99, T99) → U29_gga(T99, natc40_in_g(T99))
U29_gga(T99, natc40_out_g(T99)) → plusc55_out_gga(0, T99, T99)
plusc55_in_gga(s(T106), T107, s(T109)) → U30_gga(T106, T107, T109, plusc55_in_gga(T106, T107, T109))
U30_gga(T106, T107, T109, plusc55_out_gga(T106, T107, T109)) → plusc55_out_gga(s(T106), T107, s(T109))
U26_gga(T51, T38, T39, T41, plusc55_out_gga(T82, T89, T41)) → waysc1_out_gga(s(T51), .(s(T38), T39), T41)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
0  =  0
plusc32_in_gag(x1, x2, x3)  =  plusc32_in_gag(x1, x3)
U34_gag(x1, x2, x3, x4)  =  U34_gag(x1, x3, x4)
plusc36_in_gag(x1, x2, x3)  =  plusc36_in_gag(x1, x3)
U21_gag(x1, x2)  =  U21_gag(x1, x2)
natc40_in_g(x1)  =  natc40_in_g(x1)
natc40_out_g(x1)  =  natc40_out_g(x1)
U20_g(x1, x2)  =  U20_g(x1, x2)
plusc36_out_gag(x1, x2, x3)  =  plusc36_out_gag(x1, x2, x3)
U22_gag(x1, x2, x3, x4)  =  U22_gag(x1, x3, x4)
plusc32_out_gag(x1, x2, x3)  =  plusc32_out_gag(x1, x2, x3)
plusc68_in_gag(x1, x2, x3)  =  plusc68_in_gag(x1, x3)
U35_gag(x1, x2, x3, x4)  =  U35_gag(x1, x3, x4)
plusc72_in_gag(x1, x2, x3)  =  plusc72_in_gag(x1, x3)
U32_gag(x1, x2)  =  U32_gag(x1, x2)
natc80_in_g(x1)  =  natc80_in_g(x1)
natc80_out_g(x1)  =  natc80_out_g(x1)
U31_g(x1, x2)  =  U31_g(x1, x2)
plusc72_out_gag(x1, x2, x3)  =  plusc72_out_gag(x1, x2, x3)
U33_gag(x1, x2, x3, x4)  =  U33_gag(x1, x3, x4)
plusc68_out_gag(x1, x2, x3)  =  plusc68_out_gag(x1, x2, x3)
waysc1_in_gga(x1, x2, x3)  =  waysc1_in_gga(x1, x2)
waysc1_out_gga(x1, x2, x3)  =  waysc1_out_gga(x1, x2, x3)
[]  =  []
U23_gga(x1, x2, x3, x4, x5)  =  U23_gga(x1, x2, x3, x5)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x5, x6)
U27_gga(x1, x2, x3, x4, x5)  =  U27_gga(x1, x2, x3, x5)
U28_gga(x1, x2, x3, x4, x5)  =  U28_gga(x1, x2, x3, x5)
U25_gga(x1, x2, x3, x4, x5, x6)  =  U25_gga(x1, x2, x3, x5, x6)
U26_gga(x1, x2, x3, x4, x5)  =  U26_gga(x1, x2, x3, x5)
plusc55_in_gga(x1, x2, x3)  =  plusc55_in_gga(x1, x2)
U29_gga(x1, x2)  =  U29_gga(x1, x2)
plusc55_out_gga(x1, x2, x3)  =  plusc55_out_gga(x1, x2, x3)
U30_gga(x1, x2, x3, x4)  =  U30_gga(x1, x2, x4)
NAT40_IN_G(x1)  =  NAT40_IN_G(x1)

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

(26) UsableRulesProof (EQUIVALENT transformation)

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

(27) Obligation:

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

NAT40_IN_G(s(T72)) → NAT40_IN_G(T72)

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

(28) PiDPToQDPProof (EQUIVALENT transformation)

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

(29) Obligation:

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

NAT40_IN_G(s(T72)) → NAT40_IN_G(T72)

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

(30) QDPSizeChangeProof (EQUIVALENT transformation)

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:

  • NAT40_IN_G(s(T72)) → NAT40_IN_G(T72)
    The graph contains the following edges 1 > 1

(31) YES

(32) Obligation:

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

PLUS55_IN_GGA(s(T106), T107, s(T109)) → PLUS55_IN_GGA(T106, T107, T109)

The TRS R consists of the following rules:

plusc32_in_gag(T62, X119, T63) → U34_gag(T62, X119, T63, plusc36_in_gag(T62, X119, T63))
plusc36_in_gag(0, T69, T69) → U21_gag(T69, natc40_in_g(T69))
natc40_in_g(0) → natc40_out_g(0)
natc40_in_g(s(T72)) → U20_g(T72, natc40_in_g(T72))
U20_g(T72, natc40_out_g(T72)) → natc40_out_g(s(T72))
U21_gag(T69, natc40_out_g(T69)) → plusc36_out_gag(0, T69, T69)
plusc36_in_gag(s(T77), X148, s(T78)) → U22_gag(T77, X148, T78, plusc36_in_gag(T77, X148, T78))
U22_gag(T77, X148, T78, plusc36_out_gag(T77, X148, T78)) → plusc36_out_gag(s(T77), X148, s(T78))
U34_gag(T62, X119, T63, plusc36_out_gag(T62, X119, T63)) → plusc32_out_gag(T62, X119, T63)
plusc68_in_gag(T142, X234, T143) → U35_gag(T142, X234, T143, plusc72_in_gag(T142, X234, T143))
plusc72_in_gag(0, X255, s(X255)) → U32_gag(X255, natc80_in_g(X255))
natc80_in_g(0) → natc80_out_g(0)
natc80_in_g(s(X261)) → U31_g(X261, natc80_in_g(X261))
U31_g(X261, natc80_out_g(X261)) → natc80_out_g(s(X261))
U32_gag(X255, natc80_out_g(X255)) → plusc72_out_gag(0, X255, s(X255))
plusc72_in_gag(s(T148), X273, s(T149)) → U33_gag(T148, X273, T149, plusc72_in_gag(T148, X273, T149))
U33_gag(T148, X273, T149, plusc72_out_gag(T148, X273, T149)) → plusc72_out_gag(s(T148), X273, s(T149))
U35_gag(T142, X234, T143, plusc72_out_gag(T142, X234, T143)) → plusc68_out_gag(T142, X234, T143)
waysc1_in_gga(0, T5, s(0)) → waysc1_out_gga(0, T5, s(0))
waysc1_in_gga(0, [], 0) → waysc1_out_gga(0, [], 0)
waysc1_in_gga(T30, [], 0) → waysc1_out_gga(T30, [], 0)
waysc1_in_gga(s(T51), .(s(T38), T39), T41) → U23_gga(T51, T38, T39, T41, plusc32_in_gag(T38, T54, T51))
U23_gga(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → U24_gga(T51, T38, T39, T41, T54, waysc1_in_gga(s(T51), T39, T82))
waysc1_in_gga(s(T132), .(s(T122), T123), T125) → U27_gga(T132, T122, T123, T125, plusc68_in_gag(T132, T135, T122))
U27_gga(T132, T122, T123, T125, plusc68_out_gag(T132, T135, T122)) → U28_gga(T132, T122, T123, T125, waysc1_in_gga(s(T132), T123, T125))
U28_gga(T132, T122, T123, T125, waysc1_out_gga(s(T132), T123, T125)) → waysc1_out_gga(s(T132), .(s(T122), T123), T125)
U24_gga(T51, T38, T39, T41, T54, waysc1_out_gga(s(T51), T39, T82)) → U25_gga(T51, T38, T39, T41, T82, waysc1_in_gga(T54, .(s(T38), T39), T89))
U25_gga(T51, T38, T39, T41, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → U26_gga(T51, T38, T39, T41, plusc55_in_gga(T82, T89, T41))
plusc55_in_gga(0, T99, T99) → U29_gga(T99, natc40_in_g(T99))
U29_gga(T99, natc40_out_g(T99)) → plusc55_out_gga(0, T99, T99)
plusc55_in_gga(s(T106), T107, s(T109)) → U30_gga(T106, T107, T109, plusc55_in_gga(T106, T107, T109))
U30_gga(T106, T107, T109, plusc55_out_gga(T106, T107, T109)) → plusc55_out_gga(s(T106), T107, s(T109))
U26_gga(T51, T38, T39, T41, plusc55_out_gga(T82, T89, T41)) → waysc1_out_gga(s(T51), .(s(T38), T39), T41)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
0  =  0
plusc32_in_gag(x1, x2, x3)  =  plusc32_in_gag(x1, x3)
U34_gag(x1, x2, x3, x4)  =  U34_gag(x1, x3, x4)
plusc36_in_gag(x1, x2, x3)  =  plusc36_in_gag(x1, x3)
U21_gag(x1, x2)  =  U21_gag(x1, x2)
natc40_in_g(x1)  =  natc40_in_g(x1)
natc40_out_g(x1)  =  natc40_out_g(x1)
U20_g(x1, x2)  =  U20_g(x1, x2)
plusc36_out_gag(x1, x2, x3)  =  plusc36_out_gag(x1, x2, x3)
U22_gag(x1, x2, x3, x4)  =  U22_gag(x1, x3, x4)
plusc32_out_gag(x1, x2, x3)  =  plusc32_out_gag(x1, x2, x3)
plusc68_in_gag(x1, x2, x3)  =  plusc68_in_gag(x1, x3)
U35_gag(x1, x2, x3, x4)  =  U35_gag(x1, x3, x4)
plusc72_in_gag(x1, x2, x3)  =  plusc72_in_gag(x1, x3)
U32_gag(x1, x2)  =  U32_gag(x1, x2)
natc80_in_g(x1)  =  natc80_in_g(x1)
natc80_out_g(x1)  =  natc80_out_g(x1)
U31_g(x1, x2)  =  U31_g(x1, x2)
plusc72_out_gag(x1, x2, x3)  =  plusc72_out_gag(x1, x2, x3)
U33_gag(x1, x2, x3, x4)  =  U33_gag(x1, x3, x4)
plusc68_out_gag(x1, x2, x3)  =  plusc68_out_gag(x1, x2, x3)
waysc1_in_gga(x1, x2, x3)  =  waysc1_in_gga(x1, x2)
waysc1_out_gga(x1, x2, x3)  =  waysc1_out_gga(x1, x2, x3)
[]  =  []
U23_gga(x1, x2, x3, x4, x5)  =  U23_gga(x1, x2, x3, x5)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x5, x6)
U27_gga(x1, x2, x3, x4, x5)  =  U27_gga(x1, x2, x3, x5)
U28_gga(x1, x2, x3, x4, x5)  =  U28_gga(x1, x2, x3, x5)
U25_gga(x1, x2, x3, x4, x5, x6)  =  U25_gga(x1, x2, x3, x5, x6)
U26_gga(x1, x2, x3, x4, x5)  =  U26_gga(x1, x2, x3, x5)
plusc55_in_gga(x1, x2, x3)  =  plusc55_in_gga(x1, x2)
U29_gga(x1, x2)  =  U29_gga(x1, x2)
plusc55_out_gga(x1, x2, x3)  =  plusc55_out_gga(x1, x2, x3)
U30_gga(x1, x2, x3, x4)  =  U30_gga(x1, x2, x4)
PLUS55_IN_GGA(x1, x2, x3)  =  PLUS55_IN_GGA(x1, x2)

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

(33) UsableRulesProof (EQUIVALENT transformation)

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

(34) Obligation:

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

PLUS55_IN_GGA(s(T106), T107, s(T109)) → PLUS55_IN_GGA(T106, T107, T109)

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

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

(35) PiDPToQDPProof (SOUND transformation)

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

(36) Obligation:

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

PLUS55_IN_GGA(s(T106), T107) → PLUS55_IN_GGA(T106, T107)

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

(37) QDPSizeChangeProof (EQUIVALENT transformation)

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:

  • PLUS55_IN_GGA(s(T106), T107) → PLUS55_IN_GGA(T106, T107)
    The graph contains the following edges 1 > 1, 2 >= 2

(38) YES

(39) Obligation:

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

PLUS36_IN_GAG(s(T77), X148, s(T78)) → PLUS36_IN_GAG(T77, X148, T78)

The TRS R consists of the following rules:

plusc32_in_gag(T62, X119, T63) → U34_gag(T62, X119, T63, plusc36_in_gag(T62, X119, T63))
plusc36_in_gag(0, T69, T69) → U21_gag(T69, natc40_in_g(T69))
natc40_in_g(0) → natc40_out_g(0)
natc40_in_g(s(T72)) → U20_g(T72, natc40_in_g(T72))
U20_g(T72, natc40_out_g(T72)) → natc40_out_g(s(T72))
U21_gag(T69, natc40_out_g(T69)) → plusc36_out_gag(0, T69, T69)
plusc36_in_gag(s(T77), X148, s(T78)) → U22_gag(T77, X148, T78, plusc36_in_gag(T77, X148, T78))
U22_gag(T77, X148, T78, plusc36_out_gag(T77, X148, T78)) → plusc36_out_gag(s(T77), X148, s(T78))
U34_gag(T62, X119, T63, plusc36_out_gag(T62, X119, T63)) → plusc32_out_gag(T62, X119, T63)
plusc68_in_gag(T142, X234, T143) → U35_gag(T142, X234, T143, plusc72_in_gag(T142, X234, T143))
plusc72_in_gag(0, X255, s(X255)) → U32_gag(X255, natc80_in_g(X255))
natc80_in_g(0) → natc80_out_g(0)
natc80_in_g(s(X261)) → U31_g(X261, natc80_in_g(X261))
U31_g(X261, natc80_out_g(X261)) → natc80_out_g(s(X261))
U32_gag(X255, natc80_out_g(X255)) → plusc72_out_gag(0, X255, s(X255))
plusc72_in_gag(s(T148), X273, s(T149)) → U33_gag(T148, X273, T149, plusc72_in_gag(T148, X273, T149))
U33_gag(T148, X273, T149, plusc72_out_gag(T148, X273, T149)) → plusc72_out_gag(s(T148), X273, s(T149))
U35_gag(T142, X234, T143, plusc72_out_gag(T142, X234, T143)) → plusc68_out_gag(T142, X234, T143)
waysc1_in_gga(0, T5, s(0)) → waysc1_out_gga(0, T5, s(0))
waysc1_in_gga(0, [], 0) → waysc1_out_gga(0, [], 0)
waysc1_in_gga(T30, [], 0) → waysc1_out_gga(T30, [], 0)
waysc1_in_gga(s(T51), .(s(T38), T39), T41) → U23_gga(T51, T38, T39, T41, plusc32_in_gag(T38, T54, T51))
U23_gga(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → U24_gga(T51, T38, T39, T41, T54, waysc1_in_gga(s(T51), T39, T82))
waysc1_in_gga(s(T132), .(s(T122), T123), T125) → U27_gga(T132, T122, T123, T125, plusc68_in_gag(T132, T135, T122))
U27_gga(T132, T122, T123, T125, plusc68_out_gag(T132, T135, T122)) → U28_gga(T132, T122, T123, T125, waysc1_in_gga(s(T132), T123, T125))
U28_gga(T132, T122, T123, T125, waysc1_out_gga(s(T132), T123, T125)) → waysc1_out_gga(s(T132), .(s(T122), T123), T125)
U24_gga(T51, T38, T39, T41, T54, waysc1_out_gga(s(T51), T39, T82)) → U25_gga(T51, T38, T39, T41, T82, waysc1_in_gga(T54, .(s(T38), T39), T89))
U25_gga(T51, T38, T39, T41, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → U26_gga(T51, T38, T39, T41, plusc55_in_gga(T82, T89, T41))
plusc55_in_gga(0, T99, T99) → U29_gga(T99, natc40_in_g(T99))
U29_gga(T99, natc40_out_g(T99)) → plusc55_out_gga(0, T99, T99)
plusc55_in_gga(s(T106), T107, s(T109)) → U30_gga(T106, T107, T109, plusc55_in_gga(T106, T107, T109))
U30_gga(T106, T107, T109, plusc55_out_gga(T106, T107, T109)) → plusc55_out_gga(s(T106), T107, s(T109))
U26_gga(T51, T38, T39, T41, plusc55_out_gga(T82, T89, T41)) → waysc1_out_gga(s(T51), .(s(T38), T39), T41)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
0  =  0
plusc32_in_gag(x1, x2, x3)  =  plusc32_in_gag(x1, x3)
U34_gag(x1, x2, x3, x4)  =  U34_gag(x1, x3, x4)
plusc36_in_gag(x1, x2, x3)  =  plusc36_in_gag(x1, x3)
U21_gag(x1, x2)  =  U21_gag(x1, x2)
natc40_in_g(x1)  =  natc40_in_g(x1)
natc40_out_g(x1)  =  natc40_out_g(x1)
U20_g(x1, x2)  =  U20_g(x1, x2)
plusc36_out_gag(x1, x2, x3)  =  plusc36_out_gag(x1, x2, x3)
U22_gag(x1, x2, x3, x4)  =  U22_gag(x1, x3, x4)
plusc32_out_gag(x1, x2, x3)  =  plusc32_out_gag(x1, x2, x3)
plusc68_in_gag(x1, x2, x3)  =  plusc68_in_gag(x1, x3)
U35_gag(x1, x2, x3, x4)  =  U35_gag(x1, x3, x4)
plusc72_in_gag(x1, x2, x3)  =  plusc72_in_gag(x1, x3)
U32_gag(x1, x2)  =  U32_gag(x1, x2)
natc80_in_g(x1)  =  natc80_in_g(x1)
natc80_out_g(x1)  =  natc80_out_g(x1)
U31_g(x1, x2)  =  U31_g(x1, x2)
plusc72_out_gag(x1, x2, x3)  =  plusc72_out_gag(x1, x2, x3)
U33_gag(x1, x2, x3, x4)  =  U33_gag(x1, x3, x4)
plusc68_out_gag(x1, x2, x3)  =  plusc68_out_gag(x1, x2, x3)
waysc1_in_gga(x1, x2, x3)  =  waysc1_in_gga(x1, x2)
waysc1_out_gga(x1, x2, x3)  =  waysc1_out_gga(x1, x2, x3)
[]  =  []
U23_gga(x1, x2, x3, x4, x5)  =  U23_gga(x1, x2, x3, x5)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x5, x6)
U27_gga(x1, x2, x3, x4, x5)  =  U27_gga(x1, x2, x3, x5)
U28_gga(x1, x2, x3, x4, x5)  =  U28_gga(x1, x2, x3, x5)
U25_gga(x1, x2, x3, x4, x5, x6)  =  U25_gga(x1, x2, x3, x5, x6)
U26_gga(x1, x2, x3, x4, x5)  =  U26_gga(x1, x2, x3, x5)
plusc55_in_gga(x1, x2, x3)  =  plusc55_in_gga(x1, x2)
U29_gga(x1, x2)  =  U29_gga(x1, x2)
plusc55_out_gga(x1, x2, x3)  =  plusc55_out_gga(x1, x2, x3)
U30_gga(x1, x2, x3, x4)  =  U30_gga(x1, x2, x4)
PLUS36_IN_GAG(x1, x2, x3)  =  PLUS36_IN_GAG(x1, x3)

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

(40) UsableRulesProof (EQUIVALENT transformation)

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

(41) Obligation:

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

PLUS36_IN_GAG(s(T77), X148, s(T78)) → PLUS36_IN_GAG(T77, X148, T78)

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

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

(42) PiDPToQDPProof (SOUND transformation)

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

(43) Obligation:

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

PLUS36_IN_GAG(s(T77), s(T78)) → PLUS36_IN_GAG(T77, T78)

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

(44) QDPSizeChangeProof (EQUIVALENT transformation)

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:

  • PLUS36_IN_GAG(s(T77), s(T78)) → PLUS36_IN_GAG(T77, T78)
    The graph contains the following edges 1 > 1, 2 > 2

(45) YES

(46) Obligation:

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

WAYS1_IN_GGA(s(T51), .(s(T38), T39), T41) → U10_GGA(T51, T38, T39, T41, plusc32_in_gag(T38, T54, T51))
U10_GGA(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → WAYS1_IN_GGA(s(T51), T39, X83)
WAYS1_IN_GGA(s(T132), .(s(T122), T123), T125) → U17_GGA(T132, T122, T123, T125, plusc68_in_gag(T132, T135, T122))
U17_GGA(T132, T122, T123, T125, plusc68_out_gag(T132, T135, T122)) → WAYS1_IN_GGA(s(T132), T123, T125)
U10_GGA(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → U12_GGA(T51, T38, T39, T41, T54, waysc1_in_gga(s(T51), T39, T82))
U12_GGA(T51, T38, T39, T41, T54, waysc1_out_gga(s(T51), T39, T82)) → WAYS1_IN_GGA(T54, .(s(T38), T39), X84)

The TRS R consists of the following rules:

plusc32_in_gag(T62, X119, T63) → U34_gag(T62, X119, T63, plusc36_in_gag(T62, X119, T63))
plusc36_in_gag(0, T69, T69) → U21_gag(T69, natc40_in_g(T69))
natc40_in_g(0) → natc40_out_g(0)
natc40_in_g(s(T72)) → U20_g(T72, natc40_in_g(T72))
U20_g(T72, natc40_out_g(T72)) → natc40_out_g(s(T72))
U21_gag(T69, natc40_out_g(T69)) → plusc36_out_gag(0, T69, T69)
plusc36_in_gag(s(T77), X148, s(T78)) → U22_gag(T77, X148, T78, plusc36_in_gag(T77, X148, T78))
U22_gag(T77, X148, T78, plusc36_out_gag(T77, X148, T78)) → plusc36_out_gag(s(T77), X148, s(T78))
U34_gag(T62, X119, T63, plusc36_out_gag(T62, X119, T63)) → plusc32_out_gag(T62, X119, T63)
plusc68_in_gag(T142, X234, T143) → U35_gag(T142, X234, T143, plusc72_in_gag(T142, X234, T143))
plusc72_in_gag(0, X255, s(X255)) → U32_gag(X255, natc80_in_g(X255))
natc80_in_g(0) → natc80_out_g(0)
natc80_in_g(s(X261)) → U31_g(X261, natc80_in_g(X261))
U31_g(X261, natc80_out_g(X261)) → natc80_out_g(s(X261))
U32_gag(X255, natc80_out_g(X255)) → plusc72_out_gag(0, X255, s(X255))
plusc72_in_gag(s(T148), X273, s(T149)) → U33_gag(T148, X273, T149, plusc72_in_gag(T148, X273, T149))
U33_gag(T148, X273, T149, plusc72_out_gag(T148, X273, T149)) → plusc72_out_gag(s(T148), X273, s(T149))
U35_gag(T142, X234, T143, plusc72_out_gag(T142, X234, T143)) → plusc68_out_gag(T142, X234, T143)
waysc1_in_gga(0, T5, s(0)) → waysc1_out_gga(0, T5, s(0))
waysc1_in_gga(0, [], 0) → waysc1_out_gga(0, [], 0)
waysc1_in_gga(T30, [], 0) → waysc1_out_gga(T30, [], 0)
waysc1_in_gga(s(T51), .(s(T38), T39), T41) → U23_gga(T51, T38, T39, T41, plusc32_in_gag(T38, T54, T51))
U23_gga(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → U24_gga(T51, T38, T39, T41, T54, waysc1_in_gga(s(T51), T39, T82))
waysc1_in_gga(s(T132), .(s(T122), T123), T125) → U27_gga(T132, T122, T123, T125, plusc68_in_gag(T132, T135, T122))
U27_gga(T132, T122, T123, T125, plusc68_out_gag(T132, T135, T122)) → U28_gga(T132, T122, T123, T125, waysc1_in_gga(s(T132), T123, T125))
U28_gga(T132, T122, T123, T125, waysc1_out_gga(s(T132), T123, T125)) → waysc1_out_gga(s(T132), .(s(T122), T123), T125)
U24_gga(T51, T38, T39, T41, T54, waysc1_out_gga(s(T51), T39, T82)) → U25_gga(T51, T38, T39, T41, T82, waysc1_in_gga(T54, .(s(T38), T39), T89))
U25_gga(T51, T38, T39, T41, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → U26_gga(T51, T38, T39, T41, plusc55_in_gga(T82, T89, T41))
plusc55_in_gga(0, T99, T99) → U29_gga(T99, natc40_in_g(T99))
U29_gga(T99, natc40_out_g(T99)) → plusc55_out_gga(0, T99, T99)
plusc55_in_gga(s(T106), T107, s(T109)) → U30_gga(T106, T107, T109, plusc55_in_gga(T106, T107, T109))
U30_gga(T106, T107, T109, plusc55_out_gga(T106, T107, T109)) → plusc55_out_gga(s(T106), T107, s(T109))
U26_gga(T51, T38, T39, T41, plusc55_out_gga(T82, T89, T41)) → waysc1_out_gga(s(T51), .(s(T38), T39), T41)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
0  =  0
plusc32_in_gag(x1, x2, x3)  =  plusc32_in_gag(x1, x3)
U34_gag(x1, x2, x3, x4)  =  U34_gag(x1, x3, x4)
plusc36_in_gag(x1, x2, x3)  =  plusc36_in_gag(x1, x3)
U21_gag(x1, x2)  =  U21_gag(x1, x2)
natc40_in_g(x1)  =  natc40_in_g(x1)
natc40_out_g(x1)  =  natc40_out_g(x1)
U20_g(x1, x2)  =  U20_g(x1, x2)
plusc36_out_gag(x1, x2, x3)  =  plusc36_out_gag(x1, x2, x3)
U22_gag(x1, x2, x3, x4)  =  U22_gag(x1, x3, x4)
plusc32_out_gag(x1, x2, x3)  =  plusc32_out_gag(x1, x2, x3)
plusc68_in_gag(x1, x2, x3)  =  plusc68_in_gag(x1, x3)
U35_gag(x1, x2, x3, x4)  =  U35_gag(x1, x3, x4)
plusc72_in_gag(x1, x2, x3)  =  plusc72_in_gag(x1, x3)
U32_gag(x1, x2)  =  U32_gag(x1, x2)
natc80_in_g(x1)  =  natc80_in_g(x1)
natc80_out_g(x1)  =  natc80_out_g(x1)
U31_g(x1, x2)  =  U31_g(x1, x2)
plusc72_out_gag(x1, x2, x3)  =  plusc72_out_gag(x1, x2, x3)
U33_gag(x1, x2, x3, x4)  =  U33_gag(x1, x3, x4)
plusc68_out_gag(x1, x2, x3)  =  plusc68_out_gag(x1, x2, x3)
waysc1_in_gga(x1, x2, x3)  =  waysc1_in_gga(x1, x2)
waysc1_out_gga(x1, x2, x3)  =  waysc1_out_gga(x1, x2, x3)
[]  =  []
U23_gga(x1, x2, x3, x4, x5)  =  U23_gga(x1, x2, x3, x5)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x5, x6)
U27_gga(x1, x2, x3, x4, x5)  =  U27_gga(x1, x2, x3, x5)
U28_gga(x1, x2, x3, x4, x5)  =  U28_gga(x1, x2, x3, x5)
U25_gga(x1, x2, x3, x4, x5, x6)  =  U25_gga(x1, x2, x3, x5, x6)
U26_gga(x1, x2, x3, x4, x5)  =  U26_gga(x1, x2, x3, x5)
plusc55_in_gga(x1, x2, x3)  =  plusc55_in_gga(x1, x2)
U29_gga(x1, x2)  =  U29_gga(x1, x2)
plusc55_out_gga(x1, x2, x3)  =  plusc55_out_gga(x1, x2, x3)
U30_gga(x1, x2, x3, x4)  =  U30_gga(x1, x2, x4)
WAYS1_IN_GGA(x1, x2, x3)  =  WAYS1_IN_GGA(x1, x2)
U10_GGA(x1, x2, x3, x4, x5)  =  U10_GGA(x1, x2, x3, x5)
U17_GGA(x1, x2, x3, x4, x5)  =  U17_GGA(x1, x2, x3, x5)
U12_GGA(x1, x2, x3, x4, x5, x6)  =  U12_GGA(x1, x2, x3, x5, x6)

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

(47) UsableRulesProof (EQUIVALENT transformation)

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

(48) Obligation:

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

WAYS1_IN_GGA(s(T51), .(s(T38), T39), T41) → U10_GGA(T51, T38, T39, T41, plusc32_in_gag(T38, T54, T51))
U10_GGA(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → WAYS1_IN_GGA(s(T51), T39, X83)
WAYS1_IN_GGA(s(T132), .(s(T122), T123), T125) → U17_GGA(T132, T122, T123, T125, plusc68_in_gag(T132, T135, T122))
U17_GGA(T132, T122, T123, T125, plusc68_out_gag(T132, T135, T122)) → WAYS1_IN_GGA(s(T132), T123, T125)
U10_GGA(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → U12_GGA(T51, T38, T39, T41, T54, waysc1_in_gga(s(T51), T39, T82))
U12_GGA(T51, T38, T39, T41, T54, waysc1_out_gga(s(T51), T39, T82)) → WAYS1_IN_GGA(T54, .(s(T38), T39), X84)

The TRS R consists of the following rules:

plusc32_in_gag(T62, X119, T63) → U34_gag(T62, X119, T63, plusc36_in_gag(T62, X119, T63))
plusc68_in_gag(T142, X234, T143) → U35_gag(T142, X234, T143, plusc72_in_gag(T142, X234, T143))
waysc1_in_gga(T30, [], 0) → waysc1_out_gga(T30, [], 0)
waysc1_in_gga(s(T51), .(s(T38), T39), T41) → U23_gga(T51, T38, T39, T41, plusc32_in_gag(T38, T54, T51))
waysc1_in_gga(s(T132), .(s(T122), T123), T125) → U27_gga(T132, T122, T123, T125, plusc68_in_gag(T132, T135, T122))
U34_gag(T62, X119, T63, plusc36_out_gag(T62, X119, T63)) → plusc32_out_gag(T62, X119, T63)
U35_gag(T142, X234, T143, plusc72_out_gag(T142, X234, T143)) → plusc68_out_gag(T142, X234, T143)
U23_gga(T51, T38, T39, T41, plusc32_out_gag(T38, T54, T51)) → U24_gga(T51, T38, T39, T41, T54, waysc1_in_gga(s(T51), T39, T82))
U27_gga(T132, T122, T123, T125, plusc68_out_gag(T132, T135, T122)) → U28_gga(T132, T122, T123, T125, waysc1_in_gga(s(T132), T123, T125))
plusc36_in_gag(0, T69, T69) → U21_gag(T69, natc40_in_g(T69))
plusc36_in_gag(s(T77), X148, s(T78)) → U22_gag(T77, X148, T78, plusc36_in_gag(T77, X148, T78))
plusc72_in_gag(0, X255, s(X255)) → U32_gag(X255, natc80_in_g(X255))
plusc72_in_gag(s(T148), X273, s(T149)) → U33_gag(T148, X273, T149, plusc72_in_gag(T148, X273, T149))
U24_gga(T51, T38, T39, T41, T54, waysc1_out_gga(s(T51), T39, T82)) → U25_gga(T51, T38, T39, T41, T82, waysc1_in_gga(T54, .(s(T38), T39), T89))
U28_gga(T132, T122, T123, T125, waysc1_out_gga(s(T132), T123, T125)) → waysc1_out_gga(s(T132), .(s(T122), T123), T125)
U21_gag(T69, natc40_out_g(T69)) → plusc36_out_gag(0, T69, T69)
U22_gag(T77, X148, T78, plusc36_out_gag(T77, X148, T78)) → plusc36_out_gag(s(T77), X148, s(T78))
U32_gag(X255, natc80_out_g(X255)) → plusc72_out_gag(0, X255, s(X255))
U33_gag(T148, X273, T149, plusc72_out_gag(T148, X273, T149)) → plusc72_out_gag(s(T148), X273, s(T149))
U25_gga(T51, T38, T39, T41, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → U26_gga(T51, T38, T39, T41, plusc55_in_gga(T82, T89, T41))
natc40_in_g(0) → natc40_out_g(0)
natc40_in_g(s(T72)) → U20_g(T72, natc40_in_g(T72))
natc80_in_g(0) → natc80_out_g(0)
natc80_in_g(s(X261)) → U31_g(X261, natc80_in_g(X261))
waysc1_in_gga(0, T5, s(0)) → waysc1_out_gga(0, T5, s(0))
U26_gga(T51, T38, T39, T41, plusc55_out_gga(T82, T89, T41)) → waysc1_out_gga(s(T51), .(s(T38), T39), T41)
U20_g(T72, natc40_out_g(T72)) → natc40_out_g(s(T72))
U31_g(X261, natc80_out_g(X261)) → natc80_out_g(s(X261))
plusc55_in_gga(0, T99, T99) → U29_gga(T99, natc40_in_g(T99))
plusc55_in_gga(s(T106), T107, s(T109)) → U30_gga(T106, T107, T109, plusc55_in_gga(T106, T107, T109))
U29_gga(T99, natc40_out_g(T99)) → plusc55_out_gga(0, T99, T99)
U30_gga(T106, T107, T109, plusc55_out_gga(T106, T107, T109)) → plusc55_out_gga(s(T106), T107, s(T109))

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
0  =  0
plusc32_in_gag(x1, x2, x3)  =  plusc32_in_gag(x1, x3)
U34_gag(x1, x2, x3, x4)  =  U34_gag(x1, x3, x4)
plusc36_in_gag(x1, x2, x3)  =  plusc36_in_gag(x1, x3)
U21_gag(x1, x2)  =  U21_gag(x1, x2)
natc40_in_g(x1)  =  natc40_in_g(x1)
natc40_out_g(x1)  =  natc40_out_g(x1)
U20_g(x1, x2)  =  U20_g(x1, x2)
plusc36_out_gag(x1, x2, x3)  =  plusc36_out_gag(x1, x2, x3)
U22_gag(x1, x2, x3, x4)  =  U22_gag(x1, x3, x4)
plusc32_out_gag(x1, x2, x3)  =  plusc32_out_gag(x1, x2, x3)
plusc68_in_gag(x1, x2, x3)  =  plusc68_in_gag(x1, x3)
U35_gag(x1, x2, x3, x4)  =  U35_gag(x1, x3, x4)
plusc72_in_gag(x1, x2, x3)  =  plusc72_in_gag(x1, x3)
U32_gag(x1, x2)  =  U32_gag(x1, x2)
natc80_in_g(x1)  =  natc80_in_g(x1)
natc80_out_g(x1)  =  natc80_out_g(x1)
U31_g(x1, x2)  =  U31_g(x1, x2)
plusc72_out_gag(x1, x2, x3)  =  plusc72_out_gag(x1, x2, x3)
U33_gag(x1, x2, x3, x4)  =  U33_gag(x1, x3, x4)
plusc68_out_gag(x1, x2, x3)  =  plusc68_out_gag(x1, x2, x3)
waysc1_in_gga(x1, x2, x3)  =  waysc1_in_gga(x1, x2)
waysc1_out_gga(x1, x2, x3)  =  waysc1_out_gga(x1, x2, x3)
[]  =  []
U23_gga(x1, x2, x3, x4, x5)  =  U23_gga(x1, x2, x3, x5)
U24_gga(x1, x2, x3, x4, x5, x6)  =  U24_gga(x1, x2, x3, x5, x6)
U27_gga(x1, x2, x3, x4, x5)  =  U27_gga(x1, x2, x3, x5)
U28_gga(x1, x2, x3, x4, x5)  =  U28_gga(x1, x2, x3, x5)
U25_gga(x1, x2, x3, x4, x5, x6)  =  U25_gga(x1, x2, x3, x5, x6)
U26_gga(x1, x2, x3, x4, x5)  =  U26_gga(x1, x2, x3, x5)
plusc55_in_gga(x1, x2, x3)  =  plusc55_in_gga(x1, x2)
U29_gga(x1, x2)  =  U29_gga(x1, x2)
plusc55_out_gga(x1, x2, x3)  =  plusc55_out_gga(x1, x2, x3)
U30_gga(x1, x2, x3, x4)  =  U30_gga(x1, x2, x4)
WAYS1_IN_GGA(x1, x2, x3)  =  WAYS1_IN_GGA(x1, x2)
U10_GGA(x1, x2, x3, x4, x5)  =  U10_GGA(x1, x2, x3, x5)
U17_GGA(x1, x2, x3, x4, x5)  =  U17_GGA(x1, x2, x3, x5)
U12_GGA(x1, x2, x3, x4, x5, x6)  =  U12_GGA(x1, x2, x3, x5, x6)

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

(49) PiDPToQDPProof (SOUND transformation)

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

(50) Obligation:

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

WAYS1_IN_GGA(s(T51), .(s(T38), T39)) → U10_GGA(T51, T38, T39, plusc32_in_gag(T38, T51))
U10_GGA(T51, T38, T39, plusc32_out_gag(T38, T54, T51)) → WAYS1_IN_GGA(s(T51), T39)
WAYS1_IN_GGA(s(T132), .(s(T122), T123)) → U17_GGA(T132, T122, T123, plusc68_in_gag(T132, T122))
U17_GGA(T132, T122, T123, plusc68_out_gag(T132, T135, T122)) → WAYS1_IN_GGA(s(T132), T123)
U10_GGA(T51, T38, T39, plusc32_out_gag(T38, T54, T51)) → U12_GGA(T51, T38, T39, T54, waysc1_in_gga(s(T51), T39))
U12_GGA(T51, T38, T39, T54, waysc1_out_gga(s(T51), T39, T82)) → WAYS1_IN_GGA(T54, .(s(T38), T39))

The TRS R consists of the following rules:

plusc32_in_gag(T62, T63) → U34_gag(T62, T63, plusc36_in_gag(T62, T63))
plusc68_in_gag(T142, T143) → U35_gag(T142, T143, plusc72_in_gag(T142, T143))
waysc1_in_gga(T30, []) → waysc1_out_gga(T30, [], 0)
waysc1_in_gga(s(T51), .(s(T38), T39)) → U23_gga(T51, T38, T39, plusc32_in_gag(T38, T51))
waysc1_in_gga(s(T132), .(s(T122), T123)) → U27_gga(T132, T122, T123, plusc68_in_gag(T132, T122))
U34_gag(T62, T63, plusc36_out_gag(T62, X119, T63)) → plusc32_out_gag(T62, X119, T63)
U35_gag(T142, T143, plusc72_out_gag(T142, X234, T143)) → plusc68_out_gag(T142, X234, T143)
U23_gga(T51, T38, T39, plusc32_out_gag(T38, T54, T51)) → U24_gga(T51, T38, T39, T54, waysc1_in_gga(s(T51), T39))
U27_gga(T132, T122, T123, plusc68_out_gag(T132, T135, T122)) → U28_gga(T132, T122, T123, waysc1_in_gga(s(T132), T123))
plusc36_in_gag(0, T69) → U21_gag(T69, natc40_in_g(T69))
plusc36_in_gag(s(T77), s(T78)) → U22_gag(T77, T78, plusc36_in_gag(T77, T78))
plusc72_in_gag(0, s(X255)) → U32_gag(X255, natc80_in_g(X255))
plusc72_in_gag(s(T148), s(T149)) → U33_gag(T148, T149, plusc72_in_gag(T148, T149))
U24_gga(T51, T38, T39, T54, waysc1_out_gga(s(T51), T39, T82)) → U25_gga(T51, T38, T39, T82, waysc1_in_gga(T54, .(s(T38), T39)))
U28_gga(T132, T122, T123, waysc1_out_gga(s(T132), T123, T125)) → waysc1_out_gga(s(T132), .(s(T122), T123), T125)
U21_gag(T69, natc40_out_g(T69)) → plusc36_out_gag(0, T69, T69)
U22_gag(T77, T78, plusc36_out_gag(T77, X148, T78)) → plusc36_out_gag(s(T77), X148, s(T78))
U32_gag(X255, natc80_out_g(X255)) → plusc72_out_gag(0, X255, s(X255))
U33_gag(T148, T149, plusc72_out_gag(T148, X273, T149)) → plusc72_out_gag(s(T148), X273, s(T149))
U25_gga(T51, T38, T39, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → U26_gga(T51, T38, T39, plusc55_in_gga(T82, T89))
natc40_in_g(0) → natc40_out_g(0)
natc40_in_g(s(T72)) → U20_g(T72, natc40_in_g(T72))
natc80_in_g(0) → natc80_out_g(0)
natc80_in_g(s(X261)) → U31_g(X261, natc80_in_g(X261))
waysc1_in_gga(0, T5) → waysc1_out_gga(0, T5, s(0))
U26_gga(T51, T38, T39, plusc55_out_gga(T82, T89, T41)) → waysc1_out_gga(s(T51), .(s(T38), T39), T41)
U20_g(T72, natc40_out_g(T72)) → natc40_out_g(s(T72))
U31_g(X261, natc80_out_g(X261)) → natc80_out_g(s(X261))
plusc55_in_gga(0, T99) → U29_gga(T99, natc40_in_g(T99))
plusc55_in_gga(s(T106), T107) → U30_gga(T106, T107, plusc55_in_gga(T106, T107))
U29_gga(T99, natc40_out_g(T99)) → plusc55_out_gga(0, T99, T99)
U30_gga(T106, T107, plusc55_out_gga(T106, T107, T109)) → plusc55_out_gga(s(T106), T107, s(T109))

The set Q consists of the following terms:

plusc32_in_gag(x0, x1)
plusc68_in_gag(x0, x1)
waysc1_in_gga(x0, x1)
U34_gag(x0, x1, x2)
U35_gag(x0, x1, x2)
U23_gga(x0, x1, x2, x3)
U27_gga(x0, x1, x2, x3)
plusc36_in_gag(x0, x1)
plusc72_in_gag(x0, x1)
U24_gga(x0, x1, x2, x3, x4)
U28_gga(x0, x1, x2, x3)
U21_gag(x0, x1)
U22_gag(x0, x1, x2)
U32_gag(x0, x1)
U33_gag(x0, x1, x2)
U25_gga(x0, x1, x2, x3, x4)
natc40_in_g(x0)
natc80_in_g(x0)
U26_gga(x0, x1, x2, x3)
U20_g(x0, x1)
U31_g(x0, x1)
plusc55_in_gga(x0, x1)
U29_gga(x0, x1)
U30_gga(x0, x1, x2)

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

(51) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule WAYS1_IN_GGA(s(T51), .(s(T38), T39)) → U10_GGA(T51, T38, T39, plusc32_in_gag(T38, T51)) at position [3] we obtained the following new rules [LPAR04]:

WAYS1_IN_GGA(s(T51), .(s(T38), T39)) → U10_GGA(T51, T38, T39, U34_gag(T38, T51, plusc36_in_gag(T38, T51)))

(52) Obligation:

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

U10_GGA(T51, T38, T39, plusc32_out_gag(T38, T54, T51)) → WAYS1_IN_GGA(s(T51), T39)
WAYS1_IN_GGA(s(T132), .(s(T122), T123)) → U17_GGA(T132, T122, T123, plusc68_in_gag(T132, T122))
U17_GGA(T132, T122, T123, plusc68_out_gag(T132, T135, T122)) → WAYS1_IN_GGA(s(T132), T123)
U10_GGA(T51, T38, T39, plusc32_out_gag(T38, T54, T51)) → U12_GGA(T51, T38, T39, T54, waysc1_in_gga(s(T51), T39))
U12_GGA(T51, T38, T39, T54, waysc1_out_gga(s(T51), T39, T82)) → WAYS1_IN_GGA(T54, .(s(T38), T39))
WAYS1_IN_GGA(s(T51), .(s(T38), T39)) → U10_GGA(T51, T38, T39, U34_gag(T38, T51, plusc36_in_gag(T38, T51)))

The TRS R consists of the following rules:

plusc32_in_gag(T62, T63) → U34_gag(T62, T63, plusc36_in_gag(T62, T63))
plusc68_in_gag(T142, T143) → U35_gag(T142, T143, plusc72_in_gag(T142, T143))
waysc1_in_gga(T30, []) → waysc1_out_gga(T30, [], 0)
waysc1_in_gga(s(T51), .(s(T38), T39)) → U23_gga(T51, T38, T39, plusc32_in_gag(T38, T51))
waysc1_in_gga(s(T132), .(s(T122), T123)) → U27_gga(T132, T122, T123, plusc68_in_gag(T132, T122))
U34_gag(T62, T63, plusc36_out_gag(T62, X119, T63)) → plusc32_out_gag(T62, X119, T63)
U35_gag(T142, T143, plusc72_out_gag(T142, X234, T143)) → plusc68_out_gag(T142, X234, T143)
U23_gga(T51, T38, T39, plusc32_out_gag(T38, T54, T51)) → U24_gga(T51, T38, T39, T54, waysc1_in_gga(s(T51), T39))
U27_gga(T132, T122, T123, plusc68_out_gag(T132, T135, T122)) → U28_gga(T132, T122, T123, waysc1_in_gga(s(T132), T123))
plusc36_in_gag(0, T69) → U21_gag(T69, natc40_in_g(T69))
plusc36_in_gag(s(T77), s(T78)) → U22_gag(T77, T78, plusc36_in_gag(T77, T78))
plusc72_in_gag(0, s(X255)) → U32_gag(X255, natc80_in_g(X255))
plusc72_in_gag(s(T148), s(T149)) → U33_gag(T148, T149, plusc72_in_gag(T148, T149))
U24_gga(T51, T38, T39, T54, waysc1_out_gga(s(T51), T39, T82)) → U25_gga(T51, T38, T39, T82, waysc1_in_gga(T54, .(s(T38), T39)))
U28_gga(T132, T122, T123, waysc1_out_gga(s(T132), T123, T125)) → waysc1_out_gga(s(T132), .(s(T122), T123), T125)
U21_gag(T69, natc40_out_g(T69)) → plusc36_out_gag(0, T69, T69)
U22_gag(T77, T78, plusc36_out_gag(T77, X148, T78)) → plusc36_out_gag(s(T77), X148, s(T78))
U32_gag(X255, natc80_out_g(X255)) → plusc72_out_gag(0, X255, s(X255))
U33_gag(T148, T149, plusc72_out_gag(T148, X273, T149)) → plusc72_out_gag(s(T148), X273, s(T149))
U25_gga(T51, T38, T39, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → U26_gga(T51, T38, T39, plusc55_in_gga(T82, T89))
natc40_in_g(0) → natc40_out_g(0)
natc40_in_g(s(T72)) → U20_g(T72, natc40_in_g(T72))
natc80_in_g(0) → natc80_out_g(0)
natc80_in_g(s(X261)) → U31_g(X261, natc80_in_g(X261))
waysc1_in_gga(0, T5) → waysc1_out_gga(0, T5, s(0))
U26_gga(T51, T38, T39, plusc55_out_gga(T82, T89, T41)) → waysc1_out_gga(s(T51), .(s(T38), T39), T41)
U20_g(T72, natc40_out_g(T72)) → natc40_out_g(s(T72))
U31_g(X261, natc80_out_g(X261)) → natc80_out_g(s(X261))
plusc55_in_gga(0, T99) → U29_gga(T99, natc40_in_g(T99))
plusc55_in_gga(s(T106), T107) → U30_gga(T106, T107, plusc55_in_gga(T106, T107))
U29_gga(T99, natc40_out_g(T99)) → plusc55_out_gga(0, T99, T99)
U30_gga(T106, T107, plusc55_out_gga(T106, T107, T109)) → plusc55_out_gga(s(T106), T107, s(T109))

The set Q consists of the following terms:

plusc32_in_gag(x0, x1)
plusc68_in_gag(x0, x1)
waysc1_in_gga(x0, x1)
U34_gag(x0, x1, x2)
U35_gag(x0, x1, x2)
U23_gga(x0, x1, x2, x3)
U27_gga(x0, x1, x2, x3)
plusc36_in_gag(x0, x1)
plusc72_in_gag(x0, x1)
U24_gga(x0, x1, x2, x3, x4)
U28_gga(x0, x1, x2, x3)
U21_gag(x0, x1)
U22_gag(x0, x1, x2)
U32_gag(x0, x1)
U33_gag(x0, x1, x2)
U25_gga(x0, x1, x2, x3, x4)
natc40_in_g(x0)
natc80_in_g(x0)
U26_gga(x0, x1, x2, x3)
U20_g(x0, x1)
U31_g(x0, x1)
plusc55_in_gga(x0, x1)
U29_gga(x0, x1)
U30_gga(x0, x1, x2)

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

(53) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule WAYS1_IN_GGA(s(T132), .(s(T122), T123)) → U17_GGA(T132, T122, T123, plusc68_in_gag(T132, T122)) at position [3] we obtained the following new rules [LPAR04]:

WAYS1_IN_GGA(s(T132), .(s(T122), T123)) → U17_GGA(T132, T122, T123, U35_gag(T132, T122, plusc72_in_gag(T132, T122)))

(54) Obligation:

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

U10_GGA(T51, T38, T39, plusc32_out_gag(T38, T54, T51)) → WAYS1_IN_GGA(s(T51), T39)
U17_GGA(T132, T122, T123, plusc68_out_gag(T132, T135, T122)) → WAYS1_IN_GGA(s(T132), T123)
U10_GGA(T51, T38, T39, plusc32_out_gag(T38, T54, T51)) → U12_GGA(T51, T38, T39, T54, waysc1_in_gga(s(T51), T39))
U12_GGA(T51, T38, T39, T54, waysc1_out_gga(s(T51), T39, T82)) → WAYS1_IN_GGA(T54, .(s(T38), T39))
WAYS1_IN_GGA(s(T51), .(s(T38), T39)) → U10_GGA(T51, T38, T39, U34_gag(T38, T51, plusc36_in_gag(T38, T51)))
WAYS1_IN_GGA(s(T132), .(s(T122), T123)) → U17_GGA(T132, T122, T123, U35_gag(T132, T122, plusc72_in_gag(T132, T122)))

The TRS R consists of the following rules:

plusc32_in_gag(T62, T63) → U34_gag(T62, T63, plusc36_in_gag(T62, T63))
plusc68_in_gag(T142, T143) → U35_gag(T142, T143, plusc72_in_gag(T142, T143))
waysc1_in_gga(T30, []) → waysc1_out_gga(T30, [], 0)
waysc1_in_gga(s(T51), .(s(T38), T39)) → U23_gga(T51, T38, T39, plusc32_in_gag(T38, T51))
waysc1_in_gga(s(T132), .(s(T122), T123)) → U27_gga(T132, T122, T123, plusc68_in_gag(T132, T122))
U34_gag(T62, T63, plusc36_out_gag(T62, X119, T63)) → plusc32_out_gag(T62, X119, T63)
U35_gag(T142, T143, plusc72_out_gag(T142, X234, T143)) → plusc68_out_gag(T142, X234, T143)
U23_gga(T51, T38, T39, plusc32_out_gag(T38, T54, T51)) → U24_gga(T51, T38, T39, T54, waysc1_in_gga(s(T51), T39))
U27_gga(T132, T122, T123, plusc68_out_gag(T132, T135, T122)) → U28_gga(T132, T122, T123, waysc1_in_gga(s(T132), T123))
plusc36_in_gag(0, T69) → U21_gag(T69, natc40_in_g(T69))
plusc36_in_gag(s(T77), s(T78)) → U22_gag(T77, T78, plusc36_in_gag(T77, T78))
plusc72_in_gag(0, s(X255)) → U32_gag(X255, natc80_in_g(X255))
plusc72_in_gag(s(T148), s(T149)) → U33_gag(T148, T149, plusc72_in_gag(T148, T149))
U24_gga(T51, T38, T39, T54, waysc1_out_gga(s(T51), T39, T82)) → U25_gga(T51, T38, T39, T82, waysc1_in_gga(T54, .(s(T38), T39)))
U28_gga(T132, T122, T123, waysc1_out_gga(s(T132), T123, T125)) → waysc1_out_gga(s(T132), .(s(T122), T123), T125)
U21_gag(T69, natc40_out_g(T69)) → plusc36_out_gag(0, T69, T69)
U22_gag(T77, T78, plusc36_out_gag(T77, X148, T78)) → plusc36_out_gag(s(T77), X148, s(T78))
U32_gag(X255, natc80_out_g(X255)) → plusc72_out_gag(0, X255, s(X255))
U33_gag(T148, T149, plusc72_out_gag(T148, X273, T149)) → plusc72_out_gag(s(T148), X273, s(T149))
U25_gga(T51, T38, T39, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → U26_gga(T51, T38, T39, plusc55_in_gga(T82, T89))
natc40_in_g(0) → natc40_out_g(0)
natc40_in_g(s(T72)) → U20_g(T72, natc40_in_g(T72))
natc80_in_g(0) → natc80_out_g(0)
natc80_in_g(s(X261)) → U31_g(X261, natc80_in_g(X261))
waysc1_in_gga(0, T5) → waysc1_out_gga(0, T5, s(0))
U26_gga(T51, T38, T39, plusc55_out_gga(T82, T89, T41)) → waysc1_out_gga(s(T51), .(s(T38), T39), T41)
U20_g(T72, natc40_out_g(T72)) → natc40_out_g(s(T72))
U31_g(X261, natc80_out_g(X261)) → natc80_out_g(s(X261))
plusc55_in_gga(0, T99) → U29_gga(T99, natc40_in_g(T99))
plusc55_in_gga(s(T106), T107) → U30_gga(T106, T107, plusc55_in_gga(T106, T107))
U29_gga(T99, natc40_out_g(T99)) → plusc55_out_gga(0, T99, T99)
U30_gga(T106, T107, plusc55_out_gga(T106, T107, T109)) → plusc55_out_gga(s(T106), T107, s(T109))

The set Q consists of the following terms:

plusc32_in_gag(x0, x1)
plusc68_in_gag(x0, x1)
waysc1_in_gga(x0, x1)
U34_gag(x0, x1, x2)
U35_gag(x0, x1, x2)
U23_gga(x0, x1, x2, x3)
U27_gga(x0, x1, x2, x3)
plusc36_in_gag(x0, x1)
plusc72_in_gag(x0, x1)
U24_gga(x0, x1, x2, x3, x4)
U28_gga(x0, x1, x2, x3)
U21_gag(x0, x1)
U22_gag(x0, x1, x2)
U32_gag(x0, x1)
U33_gag(x0, x1, x2)
U25_gga(x0, x1, x2, x3, x4)
natc40_in_g(x0)
natc80_in_g(x0)
U26_gga(x0, x1, x2, x3)
U20_g(x0, x1)
U31_g(x0, x1)
plusc55_in_gga(x0, x1)
U29_gga(x0, x1)
U30_gga(x0, x1, x2)

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

(55) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U10_GGA(T51, T38, T39, plusc32_out_gag(T38, T54, T51)) → WAYS1_IN_GGA(s(T51), T39)
WAYS1_IN_GGA(s(T132), .(s(T122), T123)) → U17_GGA(T132, T122, T123, U35_gag(T132, T122, plusc72_in_gag(T132, T122)))
The remaining pairs can at least be oriented weakly.
Used ordering: Polynomial interpretation [POLO]:

POL(.(x1, x2)) = 1 + x1 + x2   
POL(0) = 0   
POL(U10_GGA(x1, x2, x3, x4)) = 1 + x2 + x3   
POL(U12_GGA(x1, x2, x3, x4, x5)) = 1 + x2 + x3   
POL(U17_GGA(x1, x2, x3, x4)) = x3   
POL(U20_g(x1, x2)) = 0   
POL(U21_gag(x1, x2)) = 0   
POL(U22_gag(x1, x2, x3)) = 0   
POL(U23_gga(x1, x2, x3, x4)) = 0   
POL(U24_gga(x1, x2, x3, x4, x5)) = 0   
POL(U25_gga(x1, x2, x3, x4, x5)) = 0   
POL(U26_gga(x1, x2, x3, x4)) = 0   
POL(U27_gga(x1, x2, x3, x4)) = 0   
POL(U28_gga(x1, x2, x3, x4)) = 0   
POL(U29_gga(x1, x2)) = 0   
POL(U30_gga(x1, x2, x3)) = 0   
POL(U31_g(x1, x2)) = 0   
POL(U32_gag(x1, x2)) = 0   
POL(U33_gag(x1, x2, x3)) = 0   
POL(U34_gag(x1, x2, x3)) = 0   
POL(U35_gag(x1, x2, x3)) = 0   
POL(WAYS1_IN_GGA(x1, x2)) = x2   
POL([]) = 0   
POL(natc40_in_g(x1)) = 0   
POL(natc40_out_g(x1)) = 0   
POL(natc80_in_g(x1)) = 0   
POL(natc80_out_g(x1)) = 0   
POL(plusc32_in_gag(x1, x2)) = x2   
POL(plusc32_out_gag(x1, x2, x3)) = 0   
POL(plusc36_in_gag(x1, x2)) = 0   
POL(plusc36_out_gag(x1, x2, x3)) = 0   
POL(plusc55_in_gga(x1, x2)) = 0   
POL(plusc55_out_gga(x1, x2, x3)) = 0   
POL(plusc68_in_gag(x1, x2)) = x1   
POL(plusc68_out_gag(x1, x2, x3)) = 0   
POL(plusc72_in_gag(x1, x2)) = 0   
POL(plusc72_out_gag(x1, x2, x3)) = 0   
POL(s(x1)) = x1   
POL(waysc1_in_gga(x1, x2)) = 0   
POL(waysc1_out_gga(x1, x2, x3)) = 0   

The following usable rules [FROCOS05] were oriented: none

(56) Obligation:

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

U17_GGA(T132, T122, T123, plusc68_out_gag(T132, T135, T122)) → WAYS1_IN_GGA(s(T132), T123)
U10_GGA(T51, T38, T39, plusc32_out_gag(T38, T54, T51)) → U12_GGA(T51, T38, T39, T54, waysc1_in_gga(s(T51), T39))
U12_GGA(T51, T38, T39, T54, waysc1_out_gga(s(T51), T39, T82)) → WAYS1_IN_GGA(T54, .(s(T38), T39))
WAYS1_IN_GGA(s(T51), .(s(T38), T39)) → U10_GGA(T51, T38, T39, U34_gag(T38, T51, plusc36_in_gag(T38, T51)))

The TRS R consists of the following rules:

plusc32_in_gag(T62, T63) → U34_gag(T62, T63, plusc36_in_gag(T62, T63))
plusc68_in_gag(T142, T143) → U35_gag(T142, T143, plusc72_in_gag(T142, T143))
waysc1_in_gga(T30, []) → waysc1_out_gga(T30, [], 0)
waysc1_in_gga(s(T51), .(s(T38), T39)) → U23_gga(T51, T38, T39, plusc32_in_gag(T38, T51))
waysc1_in_gga(s(T132), .(s(T122), T123)) → U27_gga(T132, T122, T123, plusc68_in_gag(T132, T122))
U34_gag(T62, T63, plusc36_out_gag(T62, X119, T63)) → plusc32_out_gag(T62, X119, T63)
U35_gag(T142, T143, plusc72_out_gag(T142, X234, T143)) → plusc68_out_gag(T142, X234, T143)
U23_gga(T51, T38, T39, plusc32_out_gag(T38, T54, T51)) → U24_gga(T51, T38, T39, T54, waysc1_in_gga(s(T51), T39))
U27_gga(T132, T122, T123, plusc68_out_gag(T132, T135, T122)) → U28_gga(T132, T122, T123, waysc1_in_gga(s(T132), T123))
plusc36_in_gag(0, T69) → U21_gag(T69, natc40_in_g(T69))
plusc36_in_gag(s(T77), s(T78)) → U22_gag(T77, T78, plusc36_in_gag(T77, T78))
plusc72_in_gag(0, s(X255)) → U32_gag(X255, natc80_in_g(X255))
plusc72_in_gag(s(T148), s(T149)) → U33_gag(T148, T149, plusc72_in_gag(T148, T149))
U24_gga(T51, T38, T39, T54, waysc1_out_gga(s(T51), T39, T82)) → U25_gga(T51, T38, T39, T82, waysc1_in_gga(T54, .(s(T38), T39)))
U28_gga(T132, T122, T123, waysc1_out_gga(s(T132), T123, T125)) → waysc1_out_gga(s(T132), .(s(T122), T123), T125)
U21_gag(T69, natc40_out_g(T69)) → plusc36_out_gag(0, T69, T69)
U22_gag(T77, T78, plusc36_out_gag(T77, X148, T78)) → plusc36_out_gag(s(T77), X148, s(T78))
U32_gag(X255, natc80_out_g(X255)) → plusc72_out_gag(0, X255, s(X255))
U33_gag(T148, T149, plusc72_out_gag(T148, X273, T149)) → plusc72_out_gag(s(T148), X273, s(T149))
U25_gga(T51, T38, T39, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → U26_gga(T51, T38, T39, plusc55_in_gga(T82, T89))
natc40_in_g(0) → natc40_out_g(0)
natc40_in_g(s(T72)) → U20_g(T72, natc40_in_g(T72))
natc80_in_g(0) → natc80_out_g(0)
natc80_in_g(s(X261)) → U31_g(X261, natc80_in_g(X261))
waysc1_in_gga(0, T5) → waysc1_out_gga(0, T5, s(0))
U26_gga(T51, T38, T39, plusc55_out_gga(T82, T89, T41)) → waysc1_out_gga(s(T51), .(s(T38), T39), T41)
U20_g(T72, natc40_out_g(T72)) → natc40_out_g(s(T72))
U31_g(X261, natc80_out_g(X261)) → natc80_out_g(s(X261))
plusc55_in_gga(0, T99) → U29_gga(T99, natc40_in_g(T99))
plusc55_in_gga(s(T106), T107) → U30_gga(T106, T107, plusc55_in_gga(T106, T107))
U29_gga(T99, natc40_out_g(T99)) → plusc55_out_gga(0, T99, T99)
U30_gga(T106, T107, plusc55_out_gga(T106, T107, T109)) → plusc55_out_gga(s(T106), T107, s(T109))

The set Q consists of the following terms:

plusc32_in_gag(x0, x1)
plusc68_in_gag(x0, x1)
waysc1_in_gga(x0, x1)
U34_gag(x0, x1, x2)
U35_gag(x0, x1, x2)
U23_gga(x0, x1, x2, x3)
U27_gga(x0, x1, x2, x3)
plusc36_in_gag(x0, x1)
plusc72_in_gag(x0, x1)
U24_gga(x0, x1, x2, x3, x4)
U28_gga(x0, x1, x2, x3)
U21_gag(x0, x1)
U22_gag(x0, x1, x2)
U32_gag(x0, x1)
U33_gag(x0, x1, x2)
U25_gga(x0, x1, x2, x3, x4)
natc40_in_g(x0)
natc80_in_g(x0)
U26_gga(x0, x1, x2, x3)
U20_g(x0, x1)
U31_g(x0, x1)
plusc55_in_gga(x0, x1)
U29_gga(x0, x1)
U30_gga(x0, x1, x2)

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

(57) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.

(58) Obligation:

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

U12_GGA(T51, T38, T39, T54, waysc1_out_gga(s(T51), T39, T82)) → WAYS1_IN_GGA(T54, .(s(T38), T39))
WAYS1_IN_GGA(s(T51), .(s(T38), T39)) → U10_GGA(T51, T38, T39, U34_gag(T38, T51, plusc36_in_gag(T38, T51)))
U10_GGA(T51, T38, T39, plusc32_out_gag(T38, T54, T51)) → U12_GGA(T51, T38, T39, T54, waysc1_in_gga(s(T51), T39))

The TRS R consists of the following rules:

plusc32_in_gag(T62, T63) → U34_gag(T62, T63, plusc36_in_gag(T62, T63))
plusc68_in_gag(T142, T143) → U35_gag(T142, T143, plusc72_in_gag(T142, T143))
waysc1_in_gga(T30, []) → waysc1_out_gga(T30, [], 0)
waysc1_in_gga(s(T51), .(s(T38), T39)) → U23_gga(T51, T38, T39, plusc32_in_gag(T38, T51))
waysc1_in_gga(s(T132), .(s(T122), T123)) → U27_gga(T132, T122, T123, plusc68_in_gag(T132, T122))
U34_gag(T62, T63, plusc36_out_gag(T62, X119, T63)) → plusc32_out_gag(T62, X119, T63)
U35_gag(T142, T143, plusc72_out_gag(T142, X234, T143)) → plusc68_out_gag(T142, X234, T143)
U23_gga(T51, T38, T39, plusc32_out_gag(T38, T54, T51)) → U24_gga(T51, T38, T39, T54, waysc1_in_gga(s(T51), T39))
U27_gga(T132, T122, T123, plusc68_out_gag(T132, T135, T122)) → U28_gga(T132, T122, T123, waysc1_in_gga(s(T132), T123))
plusc36_in_gag(0, T69) → U21_gag(T69, natc40_in_g(T69))
plusc36_in_gag(s(T77), s(T78)) → U22_gag(T77, T78, plusc36_in_gag(T77, T78))
plusc72_in_gag(0, s(X255)) → U32_gag(X255, natc80_in_g(X255))
plusc72_in_gag(s(T148), s(T149)) → U33_gag(T148, T149, plusc72_in_gag(T148, T149))
U24_gga(T51, T38, T39, T54, waysc1_out_gga(s(T51), T39, T82)) → U25_gga(T51, T38, T39, T82, waysc1_in_gga(T54, .(s(T38), T39)))
U28_gga(T132, T122, T123, waysc1_out_gga(s(T132), T123, T125)) → waysc1_out_gga(s(T132), .(s(T122), T123), T125)
U21_gag(T69, natc40_out_g(T69)) → plusc36_out_gag(0, T69, T69)
U22_gag(T77, T78, plusc36_out_gag(T77, X148, T78)) → plusc36_out_gag(s(T77), X148, s(T78))
U32_gag(X255, natc80_out_g(X255)) → plusc72_out_gag(0, X255, s(X255))
U33_gag(T148, T149, plusc72_out_gag(T148, X273, T149)) → plusc72_out_gag(s(T148), X273, s(T149))
U25_gga(T51, T38, T39, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → U26_gga(T51, T38, T39, plusc55_in_gga(T82, T89))
natc40_in_g(0) → natc40_out_g(0)
natc40_in_g(s(T72)) → U20_g(T72, natc40_in_g(T72))
natc80_in_g(0) → natc80_out_g(0)
natc80_in_g(s(X261)) → U31_g(X261, natc80_in_g(X261))
waysc1_in_gga(0, T5) → waysc1_out_gga(0, T5, s(0))
U26_gga(T51, T38, T39, plusc55_out_gga(T82, T89, T41)) → waysc1_out_gga(s(T51), .(s(T38), T39), T41)
U20_g(T72, natc40_out_g(T72)) → natc40_out_g(s(T72))
U31_g(X261, natc80_out_g(X261)) → natc80_out_g(s(X261))
plusc55_in_gga(0, T99) → U29_gga(T99, natc40_in_g(T99))
plusc55_in_gga(s(T106), T107) → U30_gga(T106, T107, plusc55_in_gga(T106, T107))
U29_gga(T99, natc40_out_g(T99)) → plusc55_out_gga(0, T99, T99)
U30_gga(T106, T107, plusc55_out_gga(T106, T107, T109)) → plusc55_out_gga(s(T106), T107, s(T109))

The set Q consists of the following terms:

plusc32_in_gag(x0, x1)
plusc68_in_gag(x0, x1)
waysc1_in_gga(x0, x1)
U34_gag(x0, x1, x2)
U35_gag(x0, x1, x2)
U23_gga(x0, x1, x2, x3)
U27_gga(x0, x1, x2, x3)
plusc36_in_gag(x0, x1)
plusc72_in_gag(x0, x1)
U24_gga(x0, x1, x2, x3, x4)
U28_gga(x0, x1, x2, x3)
U21_gag(x0, x1)
U22_gag(x0, x1, x2)
U32_gag(x0, x1)
U33_gag(x0, x1, x2)
U25_gga(x0, x1, x2, x3, x4)
natc40_in_g(x0)
natc80_in_g(x0)
U26_gga(x0, x1, x2, x3)
U20_g(x0, x1)
U31_g(x0, x1)
plusc55_in_gga(x0, x1)
U29_gga(x0, x1)
U30_gga(x0, x1, x2)

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

(59) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


WAYS1_IN_GGA(s(T51), .(s(T38), T39)) → U10_GGA(T51, T38, T39, U34_gag(T38, T51, plusc36_in_gag(T38, T51)))
The remaining pairs can at least be oriented weakly.
Used ordering: Polynomial interpretation [POLO]:

POL(.(x1, x2)) = 0   
POL(0) = 0   
POL(U10_GGA(x1, x2, x3, x4)) = x4   
POL(U12_GGA(x1, x2, x3, x4, x5)) = x4   
POL(U20_g(x1, x2)) = 0   
POL(U21_gag(x1, x2)) = x1   
POL(U22_gag(x1, x2, x3)) = 1 + x3   
POL(U23_gga(x1, x2, x3, x4)) = 0   
POL(U24_gga(x1, x2, x3, x4, x5)) = 0   
POL(U25_gga(x1, x2, x3, x4, x5)) = 0   
POL(U26_gga(x1, x2, x3, x4)) = 0   
POL(U27_gga(x1, x2, x3, x4)) = 0   
POL(U28_gga(x1, x2, x3, x4)) = 0   
POL(U29_gga(x1, x2)) = 0   
POL(U30_gga(x1, x2, x3)) = 0   
POL(U31_g(x1, x2)) = 0   
POL(U32_gag(x1, x2)) = 0   
POL(U33_gag(x1, x2, x3)) = 0   
POL(U34_gag(x1, x2, x3)) = x3   
POL(U35_gag(x1, x2, x3)) = x2 + x3   
POL(WAYS1_IN_GGA(x1, x2)) = x1   
POL([]) = 0   
POL(natc40_in_g(x1)) = 0   
POL(natc40_out_g(x1)) = 0   
POL(natc80_in_g(x1)) = 0   
POL(natc80_out_g(x1)) = 0   
POL(plusc32_in_gag(x1, x2)) = 0   
POL(plusc32_out_gag(x1, x2, x3)) = x2   
POL(plusc36_in_gag(x1, x2)) = x2   
POL(plusc36_out_gag(x1, x2, x3)) = x2   
POL(plusc55_in_gga(x1, x2)) = 0   
POL(plusc55_out_gga(x1, x2, x3)) = 0   
POL(plusc68_in_gag(x1, x2)) = x1 + x2   
POL(plusc68_out_gag(x1, x2, x3)) = x3   
POL(plusc72_in_gag(x1, x2)) = 0   
POL(plusc72_out_gag(x1, x2, x3)) = 1 + x1 + x3   
POL(s(x1)) = 1 + x1   
POL(waysc1_in_gga(x1, x2)) = 0   
POL(waysc1_out_gga(x1, x2, x3)) = 0   

The following usable rules [FROCOS05] were oriented:

plusc36_in_gag(0, T69) → U21_gag(T69, natc40_in_g(T69))
plusc36_in_gag(s(T77), s(T78)) → U22_gag(T77, T78, plusc36_in_gag(T77, T78))
U34_gag(T62, T63, plusc36_out_gag(T62, X119, T63)) → plusc32_out_gag(T62, X119, T63)
U22_gag(T77, T78, plusc36_out_gag(T77, X148, T78)) → plusc36_out_gag(s(T77), X148, s(T78))
U21_gag(T69, natc40_out_g(T69)) → plusc36_out_gag(0, T69, T69)

(60) Obligation:

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

U12_GGA(T51, T38, T39, T54, waysc1_out_gga(s(T51), T39, T82)) → WAYS1_IN_GGA(T54, .(s(T38), T39))
U10_GGA(T51, T38, T39, plusc32_out_gag(T38, T54, T51)) → U12_GGA(T51, T38, T39, T54, waysc1_in_gga(s(T51), T39))

The TRS R consists of the following rules:

plusc32_in_gag(T62, T63) → U34_gag(T62, T63, plusc36_in_gag(T62, T63))
plusc68_in_gag(T142, T143) → U35_gag(T142, T143, plusc72_in_gag(T142, T143))
waysc1_in_gga(T30, []) → waysc1_out_gga(T30, [], 0)
waysc1_in_gga(s(T51), .(s(T38), T39)) → U23_gga(T51, T38, T39, plusc32_in_gag(T38, T51))
waysc1_in_gga(s(T132), .(s(T122), T123)) → U27_gga(T132, T122, T123, plusc68_in_gag(T132, T122))
U34_gag(T62, T63, plusc36_out_gag(T62, X119, T63)) → plusc32_out_gag(T62, X119, T63)
U35_gag(T142, T143, plusc72_out_gag(T142, X234, T143)) → plusc68_out_gag(T142, X234, T143)
U23_gga(T51, T38, T39, plusc32_out_gag(T38, T54, T51)) → U24_gga(T51, T38, T39, T54, waysc1_in_gga(s(T51), T39))
U27_gga(T132, T122, T123, plusc68_out_gag(T132, T135, T122)) → U28_gga(T132, T122, T123, waysc1_in_gga(s(T132), T123))
plusc36_in_gag(0, T69) → U21_gag(T69, natc40_in_g(T69))
plusc36_in_gag(s(T77), s(T78)) → U22_gag(T77, T78, plusc36_in_gag(T77, T78))
plusc72_in_gag(0, s(X255)) → U32_gag(X255, natc80_in_g(X255))
plusc72_in_gag(s(T148), s(T149)) → U33_gag(T148, T149, plusc72_in_gag(T148, T149))
U24_gga(T51, T38, T39, T54, waysc1_out_gga(s(T51), T39, T82)) → U25_gga(T51, T38, T39, T82, waysc1_in_gga(T54, .(s(T38), T39)))
U28_gga(T132, T122, T123, waysc1_out_gga(s(T132), T123, T125)) → waysc1_out_gga(s(T132), .(s(T122), T123), T125)
U21_gag(T69, natc40_out_g(T69)) → plusc36_out_gag(0, T69, T69)
U22_gag(T77, T78, plusc36_out_gag(T77, X148, T78)) → plusc36_out_gag(s(T77), X148, s(T78))
U32_gag(X255, natc80_out_g(X255)) → plusc72_out_gag(0, X255, s(X255))
U33_gag(T148, T149, plusc72_out_gag(T148, X273, T149)) → plusc72_out_gag(s(T148), X273, s(T149))
U25_gga(T51, T38, T39, T82, waysc1_out_gga(T54, .(s(T38), T39), T89)) → U26_gga(T51, T38, T39, plusc55_in_gga(T82, T89))
natc40_in_g(0) → natc40_out_g(0)
natc40_in_g(s(T72)) → U20_g(T72, natc40_in_g(T72))
natc80_in_g(0) → natc80_out_g(0)
natc80_in_g(s(X261)) → U31_g(X261, natc80_in_g(X261))
waysc1_in_gga(0, T5) → waysc1_out_gga(0, T5, s(0))
U26_gga(T51, T38, T39, plusc55_out_gga(T82, T89, T41)) → waysc1_out_gga(s(T51), .(s(T38), T39), T41)
U20_g(T72, natc40_out_g(T72)) → natc40_out_g(s(T72))
U31_g(X261, natc80_out_g(X261)) → natc80_out_g(s(X261))
plusc55_in_gga(0, T99) → U29_gga(T99, natc40_in_g(T99))
plusc55_in_gga(s(T106), T107) → U30_gga(T106, T107, plusc55_in_gga(T106, T107))
U29_gga(T99, natc40_out_g(T99)) → plusc55_out_gga(0, T99, T99)
U30_gga(T106, T107, plusc55_out_gga(T106, T107, T109)) → plusc55_out_gga(s(T106), T107, s(T109))

The set Q consists of the following terms:

plusc32_in_gag(x0, x1)
plusc68_in_gag(x0, x1)
waysc1_in_gga(x0, x1)
U34_gag(x0, x1, x2)
U35_gag(x0, x1, x2)
U23_gga(x0, x1, x2, x3)
U27_gga(x0, x1, x2, x3)
plusc36_in_gag(x0, x1)
plusc72_in_gag(x0, x1)
U24_gga(x0, x1, x2, x3, x4)
U28_gga(x0, x1, x2, x3)
U21_gag(x0, x1)
U22_gag(x0, x1, x2)
U32_gag(x0, x1)
U33_gag(x0, x1, x2)
U25_gga(x0, x1, x2, x3, x4)
natc40_in_g(x0)
natc80_in_g(x0)
U26_gga(x0, x1, x2, x3)
U20_g(x0, x1)
U31_g(x0, x1)
plusc55_in_gga(x0, x1)
U29_gga(x0, x1)
U30_gga(x0, x1, x2)

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

(61) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.

(62) TRUE