6.27/2.52 YES 6.35/2.55 proof of /export/starexec/sandbox/benchmark/theBenchmark.pl 6.35/2.55 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.35/2.55 6.35/2.55 6.35/2.55 Left Termination of the query pattern 6.35/2.55 6.35/2.55 add(a,a,g) 6.35/2.55 6.35/2.55 w.r.t. the given Prolog program could successfully be proven: 6.35/2.55 6.35/2.55 (0) Prolog 6.35/2.55 (1) PrologToPiTRSProof [SOUND, 53 ms] 6.35/2.55 (2) PiTRS 6.35/2.55 (3) DependencyPairsProof [EQUIVALENT, 22 ms] 6.35/2.55 (4) PiDP 6.35/2.55 (5) DependencyGraphProof [EQUIVALENT, 0 ms] 6.35/2.55 (6) AND 6.35/2.55 (7) PiDP 6.35/2.55 (8) UsableRulesProof [EQUIVALENT, 0 ms] 6.35/2.55 (9) PiDP 6.35/2.55 (10) PiDPToQDPProof [EQUIVALENT, 0 ms] 6.35/2.55 (11) QDP 6.35/2.55 (12) QDPSizeChangeProof [EQUIVALENT, 1 ms] 6.35/2.55 (13) YES 6.35/2.55 (14) PiDP 6.35/2.55 (15) UsableRulesProof [EQUIVALENT, 0 ms] 6.35/2.55 (16) PiDP 6.35/2.55 (17) PiDPToQDPProof [SOUND, 0 ms] 6.35/2.55 (18) QDP 6.35/2.55 (19) QDPSizeChangeProof [EQUIVALENT, 0 ms] 6.35/2.55 (20) YES 6.35/2.55 (21) PiDP 6.35/2.55 (22) UsableRulesProof [EQUIVALENT, 0 ms] 6.35/2.55 (23) PiDP 6.35/2.55 (24) PiDPToQDPProof [SOUND, 0 ms] 6.35/2.55 (25) QDP 6.35/2.55 (26) QDPSizeChangeProof [EQUIVALENT, 0 ms] 6.35/2.55 (27) YES 6.35/2.55 6.35/2.55 6.35/2.55 ---------------------------------------- 6.35/2.55 6.35/2.55 (0) 6.35/2.55 Obligation: 6.35/2.55 Clauses: 6.35/2.55 6.35/2.55 add(b, b, b). 6.35/2.55 add(X, b, X) :- binaryZ(X). 6.35/2.55 add(b, Y, Y) :- binaryZ(Y). 6.35/2.55 add(X, Y, Z) :- addz(X, Y, Z). 6.35/2.55 addx(one(X), b, one(X)) :- binary(X). 6.35/2.55 addx(zero(X), b, zero(X)) :- binaryZ(X). 6.35/2.55 addx(X, Y, Z) :- addz(X, Y, Z). 6.35/2.55 addy(b, one(Y), one(Y)) :- binary(Y). 6.35/2.55 addy(b, zero(Y), zero(Y)) :- binaryZ(Y). 6.35/2.55 addy(X, Y, Z) :- addz(X, Y, Z). 6.35/2.55 addz(zero(X), zero(Y), zero(Z)) :- addz(X, Y, Z). 6.35/2.55 addz(zero(X), one(Y), one(Z)) :- addx(X, Y, Z). 6.35/2.55 addz(one(X), zero(Y), one(Z)) :- addy(X, Y, Z). 6.35/2.55 addz(one(X), one(Y), zero(Z)) :- addc(X, Y, Z). 6.35/2.55 addc(b, b, one(b)). 6.35/2.55 addc(X, b, Z) :- succZ(X, Z). 6.35/2.55 addc(b, Y, Z) :- succZ(Y, Z). 6.35/2.55 addc(X, Y, Z) :- addC(X, Y, Z). 6.35/2.55 addX(zero(X), b, one(X)) :- binaryZ(X). 6.35/2.55 addX(one(X), b, zero(Z)) :- succ(X, Z). 6.35/2.55 addX(X, Y, Z) :- addC(X, Y, Z). 6.35/2.55 addY(b, zero(Y), one(Y)) :- binaryZ(Y). 6.35/2.55 addY(b, one(Y), zero(Z)) :- succ(Y, Z). 6.35/2.55 addY(X, Y, Z) :- addC(X, Y, Z). 6.35/2.55 addC(zero(X), zero(Y), one(Z)) :- addz(X, Y, Z). 6.35/2.55 addC(zero(X), one(Y), zero(Z)) :- addX(X, Y, Z). 6.35/2.55 addC(one(X), zero(Y), zero(Z)) :- addY(X, Y, Z). 6.35/2.55 addC(one(X), one(Y), one(Z)) :- addc(X, Y, Z). 6.35/2.55 binary(b). 6.35/2.55 binary(zero(X)) :- binaryZ(X). 6.35/2.55 binary(one(X)) :- binary(X). 6.35/2.55 binaryZ(zero(X)) :- binaryZ(X). 6.35/2.55 binaryZ(one(X)) :- binary(X). 6.35/2.55 succ(b, one(b)). 6.35/2.55 succ(zero(X), one(X)) :- binaryZ(X). 6.35/2.55 succ(one(X), zero(Z)) :- succ(X, Z). 6.35/2.55 succZ(zero(X), one(X)) :- binaryZ(X). 6.35/2.55 succZ(one(X), zero(Z)) :- succ(X, Z). 6.35/2.55 times(one(b), X, X). 6.35/2.55 times(zero(R), S, zero(RS)) :- times(R, S, RS). 6.35/2.55 times(one(R), S, RSS) :- ','(times(R, S, RS), add(S, zero(RS), RSS)). 6.35/2.55 6.35/2.55 6.35/2.55 Query: add(a,a,g) 6.35/2.55 ---------------------------------------- 6.35/2.55 6.35/2.55 (1) PrologToPiTRSProof (SOUND) 6.35/2.55 We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: 6.35/2.55 6.35/2.55 add_in_3: (f,f,b) 6.35/2.55 6.35/2.55 binaryZ_in_1: (b) 6.35/2.55 6.35/2.55 binary_in_1: (b) 6.35/2.55 6.35/2.55 addz_in_3: (f,f,b) 6.35/2.55 6.35/2.55 addx_in_3: (f,f,b) 6.35/2.55 6.35/2.55 addy_in_3: (f,f,b) 6.35/2.55 6.35/2.55 addc_in_3: (f,f,b) 6.35/2.55 6.35/2.55 succZ_in_2: (f,b) 6.35/2.55 6.35/2.55 succ_in_2: (f,b) 6.35/2.55 6.35/2.55 addC_in_3: (f,f,b) 6.35/2.55 6.35/2.55 addX_in_3: (f,f,b) 6.35/2.55 6.35/2.55 addY_in_3: (f,f,b) 6.35/2.55 6.35/2.55 Transforming Prolog into the following Term Rewriting System: 6.35/2.55 6.35/2.55 Pi-finite rewrite system: 6.35/2.55 The TRS R consists of the following rules: 6.35/2.55 6.35/2.55 add_in_aag(b, b, b) -> add_out_aag(b, b, b) 6.35/2.55 add_in_aag(X, b, X) -> U1_aag(X, binaryZ_in_g(X)) 6.35/2.55 binaryZ_in_g(zero(X)) -> U29_g(X, binaryZ_in_g(X)) 6.35/2.55 binaryZ_in_g(one(X)) -> U30_g(X, binary_in_g(X)) 6.35/2.55 binary_in_g(b) -> binary_out_g(b) 6.35/2.55 binary_in_g(zero(X)) -> U27_g(X, binaryZ_in_g(X)) 6.35/2.55 U27_g(X, binaryZ_out_g(X)) -> binary_out_g(zero(X)) 6.35/2.55 binary_in_g(one(X)) -> U28_g(X, binary_in_g(X)) 6.35/2.55 U28_g(X, binary_out_g(X)) -> binary_out_g(one(X)) 6.35/2.55 U30_g(X, binary_out_g(X)) -> binaryZ_out_g(one(X)) 6.35/2.55 U29_g(X, binaryZ_out_g(X)) -> binaryZ_out_g(zero(X)) 6.35/2.55 U1_aag(X, binaryZ_out_g(X)) -> add_out_aag(X, b, X) 6.35/2.55 add_in_aag(b, Y, Y) -> U2_aag(Y, binaryZ_in_g(Y)) 6.35/2.55 U2_aag(Y, binaryZ_out_g(Y)) -> add_out_aag(b, Y, Y) 6.35/2.55 add_in_aag(X, Y, Z) -> U3_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 addz_in_aag(zero(X), zero(Y), zero(Z)) -> U10_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 addz_in_aag(zero(X), one(Y), one(Z)) -> U11_aag(X, Y, Z, addx_in_aag(X, Y, Z)) 6.35/2.55 addx_in_aag(one(X), b, one(X)) -> U4_aag(X, binary_in_g(X)) 6.35/2.55 U4_aag(X, binary_out_g(X)) -> addx_out_aag(one(X), b, one(X)) 6.35/2.55 addx_in_aag(zero(X), b, zero(X)) -> U5_aag(X, binaryZ_in_g(X)) 6.35/2.55 U5_aag(X, binaryZ_out_g(X)) -> addx_out_aag(zero(X), b, zero(X)) 6.35/2.55 addx_in_aag(X, Y, Z) -> U6_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 addz_in_aag(one(X), zero(Y), one(Z)) -> U12_aag(X, Y, Z, addy_in_aag(X, Y, Z)) 6.35/2.55 addy_in_aag(b, one(Y), one(Y)) -> U7_aag(Y, binary_in_g(Y)) 6.35/2.55 U7_aag(Y, binary_out_g(Y)) -> addy_out_aag(b, one(Y), one(Y)) 6.35/2.55 addy_in_aag(b, zero(Y), zero(Y)) -> U8_aag(Y, binaryZ_in_g(Y)) 6.35/2.55 U8_aag(Y, binaryZ_out_g(Y)) -> addy_out_aag(b, zero(Y), zero(Y)) 6.35/2.55 addy_in_aag(X, Y, Z) -> U9_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 addz_in_aag(one(X), one(Y), zero(Z)) -> U13_aag(X, Y, Z, addc_in_aag(X, Y, Z)) 6.35/2.55 addc_in_aag(b, b, one(b)) -> addc_out_aag(b, b, one(b)) 6.35/2.55 addc_in_aag(X, b, Z) -> U14_aag(X, Z, succZ_in_ag(X, Z)) 6.35/2.55 succZ_in_ag(zero(X), one(X)) -> U33_ag(X, binaryZ_in_g(X)) 6.35/2.55 U33_ag(X, binaryZ_out_g(X)) -> succZ_out_ag(zero(X), one(X)) 6.35/2.55 succZ_in_ag(one(X), zero(Z)) -> U34_ag(X, Z, succ_in_ag(X, Z)) 6.35/2.55 succ_in_ag(b, one(b)) -> succ_out_ag(b, one(b)) 6.35/2.55 succ_in_ag(zero(X), one(X)) -> U31_ag(X, binaryZ_in_g(X)) 6.35/2.55 U31_ag(X, binaryZ_out_g(X)) -> succ_out_ag(zero(X), one(X)) 6.35/2.55 succ_in_ag(one(X), zero(Z)) -> U32_ag(X, Z, succ_in_ag(X, Z)) 6.35/2.55 U32_ag(X, Z, succ_out_ag(X, Z)) -> succ_out_ag(one(X), zero(Z)) 6.35/2.55 U34_ag(X, Z, succ_out_ag(X, Z)) -> succZ_out_ag(one(X), zero(Z)) 6.35/2.55 U14_aag(X, Z, succZ_out_ag(X, Z)) -> addc_out_aag(X, b, Z) 6.35/2.55 addc_in_aag(b, Y, Z) -> U15_aag(Y, Z, succZ_in_ag(Y, Z)) 6.35/2.55 U15_aag(Y, Z, succZ_out_ag(Y, Z)) -> addc_out_aag(b, Y, Z) 6.35/2.55 addc_in_aag(X, Y, Z) -> U16_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.55 addC_in_aag(zero(X), zero(Y), one(Z)) -> U23_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 U23_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addC_out_aag(zero(X), zero(Y), one(Z)) 6.35/2.55 addC_in_aag(zero(X), one(Y), zero(Z)) -> U24_aag(X, Y, Z, addX_in_aag(X, Y, Z)) 6.35/2.55 addX_in_aag(zero(X), b, one(X)) -> U17_aag(X, binaryZ_in_g(X)) 6.35/2.55 U17_aag(X, binaryZ_out_g(X)) -> addX_out_aag(zero(X), b, one(X)) 6.35/2.55 addX_in_aag(one(X), b, zero(Z)) -> U18_aag(X, Z, succ_in_ag(X, Z)) 6.35/2.55 U18_aag(X, Z, succ_out_ag(X, Z)) -> addX_out_aag(one(X), b, zero(Z)) 6.35/2.55 addX_in_aag(X, Y, Z) -> U19_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.55 addC_in_aag(one(X), zero(Y), zero(Z)) -> U25_aag(X, Y, Z, addY_in_aag(X, Y, Z)) 6.35/2.55 addY_in_aag(b, zero(Y), one(Y)) -> U20_aag(Y, binaryZ_in_g(Y)) 6.35/2.55 U20_aag(Y, binaryZ_out_g(Y)) -> addY_out_aag(b, zero(Y), one(Y)) 6.35/2.55 addY_in_aag(b, one(Y), zero(Z)) -> U21_aag(Y, Z, succ_in_ag(Y, Z)) 6.35/2.55 U21_aag(Y, Z, succ_out_ag(Y, Z)) -> addY_out_aag(b, one(Y), zero(Z)) 6.35/2.55 addY_in_aag(X, Y, Z) -> U22_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.55 addC_in_aag(one(X), one(Y), one(Z)) -> U26_aag(X, Y, Z, addc_in_aag(X, Y, Z)) 6.35/2.55 U26_aag(X, Y, Z, addc_out_aag(X, Y, Z)) -> addC_out_aag(one(X), one(Y), one(Z)) 6.35/2.55 U22_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addY_out_aag(X, Y, Z) 6.35/2.55 U25_aag(X, Y, Z, addY_out_aag(X, Y, Z)) -> addC_out_aag(one(X), zero(Y), zero(Z)) 6.35/2.55 U19_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addX_out_aag(X, Y, Z) 6.35/2.55 U24_aag(X, Y, Z, addX_out_aag(X, Y, Z)) -> addC_out_aag(zero(X), one(Y), zero(Z)) 6.35/2.55 U16_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addc_out_aag(X, Y, Z) 6.35/2.55 U13_aag(X, Y, Z, addc_out_aag(X, Y, Z)) -> addz_out_aag(one(X), one(Y), zero(Z)) 6.35/2.55 U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addy_out_aag(X, Y, Z) 6.35/2.55 U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) -> addz_out_aag(one(X), zero(Y), one(Z)) 6.35/2.55 U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addx_out_aag(X, Y, Z) 6.35/2.55 U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) -> addz_out_aag(zero(X), one(Y), one(Z)) 6.35/2.55 U10_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addz_out_aag(zero(X), zero(Y), zero(Z)) 6.35/2.55 U3_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> add_out_aag(X, Y, Z) 6.35/2.55 6.35/2.55 The argument filtering Pi contains the following mapping: 6.35/2.55 add_in_aag(x1, x2, x3) = add_in_aag(x3) 6.35/2.55 6.35/2.55 b = b 6.35/2.55 6.35/2.55 add_out_aag(x1, x2, x3) = add_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U1_aag(x1, x2) = U1_aag(x1, x2) 6.35/2.55 6.35/2.55 binaryZ_in_g(x1) = binaryZ_in_g(x1) 6.35/2.55 6.35/2.55 zero(x1) = zero(x1) 6.35/2.55 6.35/2.55 U29_g(x1, x2) = U29_g(x2) 6.35/2.55 6.35/2.55 one(x1) = one(x1) 6.35/2.55 6.35/2.55 U30_g(x1, x2) = U30_g(x2) 6.35/2.55 6.35/2.55 binary_in_g(x1) = binary_in_g(x1) 6.35/2.55 6.35/2.55 binary_out_g(x1) = binary_out_g 6.35/2.55 6.35/2.55 U27_g(x1, x2) = U27_g(x2) 6.35/2.55 6.35/2.55 binaryZ_out_g(x1) = binaryZ_out_g 6.35/2.55 6.35/2.55 U28_g(x1, x2) = U28_g(x2) 6.35/2.55 6.35/2.55 U2_aag(x1, x2) = U2_aag(x1, x2) 6.35/2.55 6.35/2.55 U3_aag(x1, x2, x3, x4) = U3_aag(x4) 6.35/2.55 6.35/2.55 addz_in_aag(x1, x2, x3) = addz_in_aag(x3) 6.35/2.55 6.35/2.55 U10_aag(x1, x2, x3, x4) = U10_aag(x4) 6.35/2.55 6.35/2.55 U11_aag(x1, x2, x3, x4) = U11_aag(x4) 6.35/2.55 6.35/2.55 addx_in_aag(x1, x2, x3) = addx_in_aag(x3) 6.35/2.55 6.35/2.55 U4_aag(x1, x2) = U4_aag(x1, x2) 6.35/2.55 6.35/2.55 addx_out_aag(x1, x2, x3) = addx_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U5_aag(x1, x2) = U5_aag(x1, x2) 6.35/2.55 6.35/2.55 U6_aag(x1, x2, x3, x4) = U6_aag(x4) 6.35/2.55 6.35/2.55 U12_aag(x1, x2, x3, x4) = U12_aag(x4) 6.35/2.55 6.35/2.55 addy_in_aag(x1, x2, x3) = addy_in_aag(x3) 6.35/2.55 6.35/2.55 U7_aag(x1, x2) = U7_aag(x1, x2) 6.35/2.55 6.35/2.55 addy_out_aag(x1, x2, x3) = addy_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U8_aag(x1, x2) = U8_aag(x1, x2) 6.35/2.55 6.35/2.55 U9_aag(x1, x2, x3, x4) = U9_aag(x4) 6.35/2.55 6.35/2.55 U13_aag(x1, x2, x3, x4) = U13_aag(x4) 6.35/2.55 6.35/2.55 addc_in_aag(x1, x2, x3) = addc_in_aag(x3) 6.35/2.55 6.35/2.55 addc_out_aag(x1, x2, x3) = addc_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U14_aag(x1, x2, x3) = U14_aag(x3) 6.35/2.55 6.35/2.55 succZ_in_ag(x1, x2) = succZ_in_ag(x2) 6.35/2.55 6.35/2.55 U33_ag(x1, x2) = U33_ag(x1, x2) 6.35/2.55 6.35/2.55 succZ_out_ag(x1, x2) = succZ_out_ag(x1) 6.35/2.55 6.35/2.55 U34_ag(x1, x2, x3) = U34_ag(x3) 6.35/2.55 6.35/2.55 succ_in_ag(x1, x2) = succ_in_ag(x2) 6.35/2.55 6.35/2.55 succ_out_ag(x1, x2) = succ_out_ag(x1) 6.35/2.55 6.35/2.55 U31_ag(x1, x2) = U31_ag(x1, x2) 6.35/2.55 6.35/2.55 U32_ag(x1, x2, x3) = U32_ag(x3) 6.35/2.55 6.35/2.55 U15_aag(x1, x2, x3) = U15_aag(x3) 6.35/2.55 6.35/2.55 U16_aag(x1, x2, x3, x4) = U16_aag(x4) 6.35/2.55 6.35/2.55 addC_in_aag(x1, x2, x3) = addC_in_aag(x3) 6.35/2.55 6.35/2.55 U23_aag(x1, x2, x3, x4) = U23_aag(x4) 6.35/2.55 6.35/2.55 addz_out_aag(x1, x2, x3) = addz_out_aag(x1, x2) 6.35/2.55 6.35/2.55 addC_out_aag(x1, x2, x3) = addC_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U24_aag(x1, x2, x3, x4) = U24_aag(x4) 6.35/2.55 6.35/2.55 addX_in_aag(x1, x2, x3) = addX_in_aag(x3) 6.35/2.55 6.35/2.55 U17_aag(x1, x2) = U17_aag(x1, x2) 6.35/2.55 6.35/2.55 addX_out_aag(x1, x2, x3) = addX_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U18_aag(x1, x2, x3) = U18_aag(x3) 6.35/2.55 6.35/2.55 U19_aag(x1, x2, x3, x4) = U19_aag(x4) 6.35/2.55 6.35/2.55 U25_aag(x1, x2, x3, x4) = U25_aag(x4) 6.35/2.55 6.35/2.55 addY_in_aag(x1, x2, x3) = addY_in_aag(x3) 6.35/2.55 6.35/2.55 U20_aag(x1, x2) = U20_aag(x1, x2) 6.35/2.55 6.35/2.55 addY_out_aag(x1, x2, x3) = addY_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U21_aag(x1, x2, x3) = U21_aag(x3) 6.35/2.55 6.35/2.55 U22_aag(x1, x2, x3, x4) = U22_aag(x4) 6.35/2.55 6.35/2.55 U26_aag(x1, x2, x3, x4) = U26_aag(x4) 6.35/2.55 6.35/2.55 6.35/2.55 6.35/2.55 6.35/2.55 6.35/2.55 Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog 6.35/2.55 6.35/2.55 6.35/2.55 6.35/2.55 ---------------------------------------- 6.35/2.55 6.35/2.55 (2) 6.35/2.55 Obligation: 6.35/2.55 Pi-finite rewrite system: 6.35/2.55 The TRS R consists of the following rules: 6.35/2.55 6.35/2.55 add_in_aag(b, b, b) -> add_out_aag(b, b, b) 6.35/2.55 add_in_aag(X, b, X) -> U1_aag(X, binaryZ_in_g(X)) 6.35/2.55 binaryZ_in_g(zero(X)) -> U29_g(X, binaryZ_in_g(X)) 6.35/2.55 binaryZ_in_g(one(X)) -> U30_g(X, binary_in_g(X)) 6.35/2.55 binary_in_g(b) -> binary_out_g(b) 6.35/2.55 binary_in_g(zero(X)) -> U27_g(X, binaryZ_in_g(X)) 6.35/2.55 U27_g(X, binaryZ_out_g(X)) -> binary_out_g(zero(X)) 6.35/2.55 binary_in_g(one(X)) -> U28_g(X, binary_in_g(X)) 6.35/2.55 U28_g(X, binary_out_g(X)) -> binary_out_g(one(X)) 6.35/2.55 U30_g(X, binary_out_g(X)) -> binaryZ_out_g(one(X)) 6.35/2.55 U29_g(X, binaryZ_out_g(X)) -> binaryZ_out_g(zero(X)) 6.35/2.55 U1_aag(X, binaryZ_out_g(X)) -> add_out_aag(X, b, X) 6.35/2.55 add_in_aag(b, Y, Y) -> U2_aag(Y, binaryZ_in_g(Y)) 6.35/2.55 U2_aag(Y, binaryZ_out_g(Y)) -> add_out_aag(b, Y, Y) 6.35/2.55 add_in_aag(X, Y, Z) -> U3_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 addz_in_aag(zero(X), zero(Y), zero(Z)) -> U10_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 addz_in_aag(zero(X), one(Y), one(Z)) -> U11_aag(X, Y, Z, addx_in_aag(X, Y, Z)) 6.35/2.55 addx_in_aag(one(X), b, one(X)) -> U4_aag(X, binary_in_g(X)) 6.35/2.55 U4_aag(X, binary_out_g(X)) -> addx_out_aag(one(X), b, one(X)) 6.35/2.55 addx_in_aag(zero(X), b, zero(X)) -> U5_aag(X, binaryZ_in_g(X)) 6.35/2.55 U5_aag(X, binaryZ_out_g(X)) -> addx_out_aag(zero(X), b, zero(X)) 6.35/2.55 addx_in_aag(X, Y, Z) -> U6_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 addz_in_aag(one(X), zero(Y), one(Z)) -> U12_aag(X, Y, Z, addy_in_aag(X, Y, Z)) 6.35/2.55 addy_in_aag(b, one(Y), one(Y)) -> U7_aag(Y, binary_in_g(Y)) 6.35/2.55 U7_aag(Y, binary_out_g(Y)) -> addy_out_aag(b, one(Y), one(Y)) 6.35/2.55 addy_in_aag(b, zero(Y), zero(Y)) -> U8_aag(Y, binaryZ_in_g(Y)) 6.35/2.55 U8_aag(Y, binaryZ_out_g(Y)) -> addy_out_aag(b, zero(Y), zero(Y)) 6.35/2.55 addy_in_aag(X, Y, Z) -> U9_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 addz_in_aag(one(X), one(Y), zero(Z)) -> U13_aag(X, Y, Z, addc_in_aag(X, Y, Z)) 6.35/2.55 addc_in_aag(b, b, one(b)) -> addc_out_aag(b, b, one(b)) 6.35/2.55 addc_in_aag(X, b, Z) -> U14_aag(X, Z, succZ_in_ag(X, Z)) 6.35/2.55 succZ_in_ag(zero(X), one(X)) -> U33_ag(X, binaryZ_in_g(X)) 6.35/2.55 U33_ag(X, binaryZ_out_g(X)) -> succZ_out_ag(zero(X), one(X)) 6.35/2.55 succZ_in_ag(one(X), zero(Z)) -> U34_ag(X, Z, succ_in_ag(X, Z)) 6.35/2.55 succ_in_ag(b, one(b)) -> succ_out_ag(b, one(b)) 6.35/2.55 succ_in_ag(zero(X), one(X)) -> U31_ag(X, binaryZ_in_g(X)) 6.35/2.55 U31_ag(X, binaryZ_out_g(X)) -> succ_out_ag(zero(X), one(X)) 6.35/2.55 succ_in_ag(one(X), zero(Z)) -> U32_ag(X, Z, succ_in_ag(X, Z)) 6.35/2.55 U32_ag(X, Z, succ_out_ag(X, Z)) -> succ_out_ag(one(X), zero(Z)) 6.35/2.55 U34_ag(X, Z, succ_out_ag(X, Z)) -> succZ_out_ag(one(X), zero(Z)) 6.35/2.55 U14_aag(X, Z, succZ_out_ag(X, Z)) -> addc_out_aag(X, b, Z) 6.35/2.55 addc_in_aag(b, Y, Z) -> U15_aag(Y, Z, succZ_in_ag(Y, Z)) 6.35/2.55 U15_aag(Y, Z, succZ_out_ag(Y, Z)) -> addc_out_aag(b, Y, Z) 6.35/2.55 addc_in_aag(X, Y, Z) -> U16_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.55 addC_in_aag(zero(X), zero(Y), one(Z)) -> U23_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 U23_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addC_out_aag(zero(X), zero(Y), one(Z)) 6.35/2.55 addC_in_aag(zero(X), one(Y), zero(Z)) -> U24_aag(X, Y, Z, addX_in_aag(X, Y, Z)) 6.35/2.55 addX_in_aag(zero(X), b, one(X)) -> U17_aag(X, binaryZ_in_g(X)) 6.35/2.55 U17_aag(X, binaryZ_out_g(X)) -> addX_out_aag(zero(X), b, one(X)) 6.35/2.55 addX_in_aag(one(X), b, zero(Z)) -> U18_aag(X, Z, succ_in_ag(X, Z)) 6.35/2.55 U18_aag(X, Z, succ_out_ag(X, Z)) -> addX_out_aag(one(X), b, zero(Z)) 6.35/2.55 addX_in_aag(X, Y, Z) -> U19_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.55 addC_in_aag(one(X), zero(Y), zero(Z)) -> U25_aag(X, Y, Z, addY_in_aag(X, Y, Z)) 6.35/2.55 addY_in_aag(b, zero(Y), one(Y)) -> U20_aag(Y, binaryZ_in_g(Y)) 6.35/2.55 U20_aag(Y, binaryZ_out_g(Y)) -> addY_out_aag(b, zero(Y), one(Y)) 6.35/2.55 addY_in_aag(b, one(Y), zero(Z)) -> U21_aag(Y, Z, succ_in_ag(Y, Z)) 6.35/2.55 U21_aag(Y, Z, succ_out_ag(Y, Z)) -> addY_out_aag(b, one(Y), zero(Z)) 6.35/2.55 addY_in_aag(X, Y, Z) -> U22_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.55 addC_in_aag(one(X), one(Y), one(Z)) -> U26_aag(X, Y, Z, addc_in_aag(X, Y, Z)) 6.35/2.55 U26_aag(X, Y, Z, addc_out_aag(X, Y, Z)) -> addC_out_aag(one(X), one(Y), one(Z)) 6.35/2.55 U22_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addY_out_aag(X, Y, Z) 6.35/2.55 U25_aag(X, Y, Z, addY_out_aag(X, Y, Z)) -> addC_out_aag(one(X), zero(Y), zero(Z)) 6.35/2.55 U19_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addX_out_aag(X, Y, Z) 6.35/2.55 U24_aag(X, Y, Z, addX_out_aag(X, Y, Z)) -> addC_out_aag(zero(X), one(Y), zero(Z)) 6.35/2.55 U16_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addc_out_aag(X, Y, Z) 6.35/2.55 U13_aag(X, Y, Z, addc_out_aag(X, Y, Z)) -> addz_out_aag(one(X), one(Y), zero(Z)) 6.35/2.55 U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addy_out_aag(X, Y, Z) 6.35/2.55 U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) -> addz_out_aag(one(X), zero(Y), one(Z)) 6.35/2.55 U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addx_out_aag(X, Y, Z) 6.35/2.55 U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) -> addz_out_aag(zero(X), one(Y), one(Z)) 6.35/2.55 U10_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addz_out_aag(zero(X), zero(Y), zero(Z)) 6.35/2.55 U3_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> add_out_aag(X, Y, Z) 6.35/2.55 6.35/2.55 The argument filtering Pi contains the following mapping: 6.35/2.55 add_in_aag(x1, x2, x3) = add_in_aag(x3) 6.35/2.55 6.35/2.55 b = b 6.35/2.55 6.35/2.55 add_out_aag(x1, x2, x3) = add_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U1_aag(x1, x2) = U1_aag(x1, x2) 6.35/2.55 6.35/2.55 binaryZ_in_g(x1) = binaryZ_in_g(x1) 6.35/2.55 6.35/2.55 zero(x1) = zero(x1) 6.35/2.55 6.35/2.55 U29_g(x1, x2) = U29_g(x2) 6.35/2.55 6.35/2.55 one(x1) = one(x1) 6.35/2.55 6.35/2.55 U30_g(x1, x2) = U30_g(x2) 6.35/2.55 6.35/2.55 binary_in_g(x1) = binary_in_g(x1) 6.35/2.55 6.35/2.55 binary_out_g(x1) = binary_out_g 6.35/2.55 6.35/2.55 U27_g(x1, x2) = U27_g(x2) 6.35/2.55 6.35/2.55 binaryZ_out_g(x1) = binaryZ_out_g 6.35/2.55 6.35/2.55 U28_g(x1, x2) = U28_g(x2) 6.35/2.55 6.35/2.55 U2_aag(x1, x2) = U2_aag(x1, x2) 6.35/2.55 6.35/2.55 U3_aag(x1, x2, x3, x4) = U3_aag(x4) 6.35/2.55 6.35/2.55 addz_in_aag(x1, x2, x3) = addz_in_aag(x3) 6.35/2.55 6.35/2.55 U10_aag(x1, x2, x3, x4) = U10_aag(x4) 6.35/2.55 6.35/2.55 U11_aag(x1, x2, x3, x4) = U11_aag(x4) 6.35/2.55 6.35/2.55 addx_in_aag(x1, x2, x3) = addx_in_aag(x3) 6.35/2.55 6.35/2.55 U4_aag(x1, x2) = U4_aag(x1, x2) 6.35/2.55 6.35/2.55 addx_out_aag(x1, x2, x3) = addx_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U5_aag(x1, x2) = U5_aag(x1, x2) 6.35/2.55 6.35/2.55 U6_aag(x1, x2, x3, x4) = U6_aag(x4) 6.35/2.55 6.35/2.55 U12_aag(x1, x2, x3, x4) = U12_aag(x4) 6.35/2.55 6.35/2.55 addy_in_aag(x1, x2, x3) = addy_in_aag(x3) 6.35/2.55 6.35/2.55 U7_aag(x1, x2) = U7_aag(x1, x2) 6.35/2.55 6.35/2.55 addy_out_aag(x1, x2, x3) = addy_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U8_aag(x1, x2) = U8_aag(x1, x2) 6.35/2.55 6.35/2.55 U9_aag(x1, x2, x3, x4) = U9_aag(x4) 6.35/2.55 6.35/2.55 U13_aag(x1, x2, x3, x4) = U13_aag(x4) 6.35/2.55 6.35/2.55 addc_in_aag(x1, x2, x3) = addc_in_aag(x3) 6.35/2.55 6.35/2.55 addc_out_aag(x1, x2, x3) = addc_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U14_aag(x1, x2, x3) = U14_aag(x3) 6.35/2.55 6.35/2.55 succZ_in_ag(x1, x2) = succZ_in_ag(x2) 6.35/2.55 6.35/2.55 U33_ag(x1, x2) = U33_ag(x1, x2) 6.35/2.55 6.35/2.55 succZ_out_ag(x1, x2) = succZ_out_ag(x1) 6.35/2.55 6.35/2.55 U34_ag(x1, x2, x3) = U34_ag(x3) 6.35/2.55 6.35/2.55 succ_in_ag(x1, x2) = succ_in_ag(x2) 6.35/2.55 6.35/2.55 succ_out_ag(x1, x2) = succ_out_ag(x1) 6.35/2.55 6.35/2.55 U31_ag(x1, x2) = U31_ag(x1, x2) 6.35/2.55 6.35/2.55 U32_ag(x1, x2, x3) = U32_ag(x3) 6.35/2.55 6.35/2.55 U15_aag(x1, x2, x3) = U15_aag(x3) 6.35/2.55 6.35/2.55 U16_aag(x1, x2, x3, x4) = U16_aag(x4) 6.35/2.55 6.35/2.55 addC_in_aag(x1, x2, x3) = addC_in_aag(x3) 6.35/2.55 6.35/2.55 U23_aag(x1, x2, x3, x4) = U23_aag(x4) 6.35/2.55 6.35/2.55 addz_out_aag(x1, x2, x3) = addz_out_aag(x1, x2) 6.35/2.55 6.35/2.55 addC_out_aag(x1, x2, x3) = addC_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U24_aag(x1, x2, x3, x4) = U24_aag(x4) 6.35/2.55 6.35/2.55 addX_in_aag(x1, x2, x3) = addX_in_aag(x3) 6.35/2.55 6.35/2.55 U17_aag(x1, x2) = U17_aag(x1, x2) 6.35/2.55 6.35/2.55 addX_out_aag(x1, x2, x3) = addX_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U18_aag(x1, x2, x3) = U18_aag(x3) 6.35/2.55 6.35/2.55 U19_aag(x1, x2, x3, x4) = U19_aag(x4) 6.35/2.55 6.35/2.55 U25_aag(x1, x2, x3, x4) = U25_aag(x4) 6.35/2.55 6.35/2.55 addY_in_aag(x1, x2, x3) = addY_in_aag(x3) 6.35/2.55 6.35/2.55 U20_aag(x1, x2) = U20_aag(x1, x2) 6.35/2.55 6.35/2.55 addY_out_aag(x1, x2, x3) = addY_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U21_aag(x1, x2, x3) = U21_aag(x3) 6.35/2.55 6.35/2.55 U22_aag(x1, x2, x3, x4) = U22_aag(x4) 6.35/2.55 6.35/2.55 U26_aag(x1, x2, x3, x4) = U26_aag(x4) 6.35/2.55 6.35/2.55 6.35/2.55 6.35/2.55 ---------------------------------------- 6.35/2.55 6.35/2.55 (3) DependencyPairsProof (EQUIVALENT) 6.35/2.55 Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: 6.35/2.55 Pi DP problem: 6.35/2.55 The TRS P consists of the following rules: 6.35/2.55 6.35/2.55 ADD_IN_AAG(X, b, X) -> U1_AAG(X, binaryZ_in_g(X)) 6.35/2.55 ADD_IN_AAG(X, b, X) -> BINARYZ_IN_G(X) 6.35/2.55 BINARYZ_IN_G(zero(X)) -> U29_G(X, binaryZ_in_g(X)) 6.35/2.55 BINARYZ_IN_G(zero(X)) -> BINARYZ_IN_G(X) 6.35/2.55 BINARYZ_IN_G(one(X)) -> U30_G(X, binary_in_g(X)) 6.35/2.55 BINARYZ_IN_G(one(X)) -> BINARY_IN_G(X) 6.35/2.55 BINARY_IN_G(zero(X)) -> U27_G(X, binaryZ_in_g(X)) 6.35/2.55 BINARY_IN_G(zero(X)) -> BINARYZ_IN_G(X) 6.35/2.55 BINARY_IN_G(one(X)) -> U28_G(X, binary_in_g(X)) 6.35/2.55 BINARY_IN_G(one(X)) -> BINARY_IN_G(X) 6.35/2.55 ADD_IN_AAG(b, Y, Y) -> U2_AAG(Y, binaryZ_in_g(Y)) 6.35/2.55 ADD_IN_AAG(b, Y, Y) -> BINARYZ_IN_G(Y) 6.35/2.55 ADD_IN_AAG(X, Y, Z) -> U3_AAG(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 ADD_IN_AAG(X, Y, Z) -> ADDZ_IN_AAG(X, Y, Z) 6.35/2.55 ADDZ_IN_AAG(zero(X), zero(Y), zero(Z)) -> U10_AAG(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 ADDZ_IN_AAG(zero(X), zero(Y), zero(Z)) -> ADDZ_IN_AAG(X, Y, Z) 6.35/2.55 ADDZ_IN_AAG(zero(X), one(Y), one(Z)) -> U11_AAG(X, Y, Z, addx_in_aag(X, Y, Z)) 6.35/2.55 ADDZ_IN_AAG(zero(X), one(Y), one(Z)) -> ADDX_IN_AAG(X, Y, Z) 6.35/2.55 ADDX_IN_AAG(one(X), b, one(X)) -> U4_AAG(X, binary_in_g(X)) 6.35/2.55 ADDX_IN_AAG(one(X), b, one(X)) -> BINARY_IN_G(X) 6.35/2.55 ADDX_IN_AAG(zero(X), b, zero(X)) -> U5_AAG(X, binaryZ_in_g(X)) 6.35/2.55 ADDX_IN_AAG(zero(X), b, zero(X)) -> BINARYZ_IN_G(X) 6.35/2.55 ADDX_IN_AAG(X, Y, Z) -> U6_AAG(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 ADDX_IN_AAG(X, Y, Z) -> ADDZ_IN_AAG(X, Y, Z) 6.35/2.55 ADDZ_IN_AAG(one(X), zero(Y), one(Z)) -> U12_AAG(X, Y, Z, addy_in_aag(X, Y, Z)) 6.35/2.55 ADDZ_IN_AAG(one(X), zero(Y), one(Z)) -> ADDY_IN_AAG(X, Y, Z) 6.35/2.55 ADDY_IN_AAG(b, one(Y), one(Y)) -> U7_AAG(Y, binary_in_g(Y)) 6.35/2.55 ADDY_IN_AAG(b, one(Y), one(Y)) -> BINARY_IN_G(Y) 6.35/2.55 ADDY_IN_AAG(b, zero(Y), zero(Y)) -> U8_AAG(Y, binaryZ_in_g(Y)) 6.35/2.55 ADDY_IN_AAG(b, zero(Y), zero(Y)) -> BINARYZ_IN_G(Y) 6.35/2.55 ADDY_IN_AAG(X, Y, Z) -> U9_AAG(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 ADDY_IN_AAG(X, Y, Z) -> ADDZ_IN_AAG(X, Y, Z) 6.35/2.55 ADDZ_IN_AAG(one(X), one(Y), zero(Z)) -> U13_AAG(X, Y, Z, addc_in_aag(X, Y, Z)) 6.35/2.55 ADDZ_IN_AAG(one(X), one(Y), zero(Z)) -> ADDC_IN_AAG(X, Y, Z) 6.35/2.55 ADDC_IN_AAG(X, b, Z) -> U14_AAG(X, Z, succZ_in_ag(X, Z)) 6.35/2.55 ADDC_IN_AAG(X, b, Z) -> SUCCZ_IN_AG(X, Z) 6.35/2.55 SUCCZ_IN_AG(zero(X), one(X)) -> U33_AG(X, binaryZ_in_g(X)) 6.35/2.55 SUCCZ_IN_AG(zero(X), one(X)) -> BINARYZ_IN_G(X) 6.35/2.55 SUCCZ_IN_AG(one(X), zero(Z)) -> U34_AG(X, Z, succ_in_ag(X, Z)) 6.35/2.55 SUCCZ_IN_AG(one(X), zero(Z)) -> SUCC_IN_AG(X, Z) 6.35/2.55 SUCC_IN_AG(zero(X), one(X)) -> U31_AG(X, binaryZ_in_g(X)) 6.35/2.55 SUCC_IN_AG(zero(X), one(X)) -> BINARYZ_IN_G(X) 6.35/2.55 SUCC_IN_AG(one(X), zero(Z)) -> U32_AG(X, Z, succ_in_ag(X, Z)) 6.35/2.55 SUCC_IN_AG(one(X), zero(Z)) -> SUCC_IN_AG(X, Z) 6.35/2.55 ADDC_IN_AAG(b, Y, Z) -> U15_AAG(Y, Z, succZ_in_ag(Y, Z)) 6.35/2.55 ADDC_IN_AAG(b, Y, Z) -> SUCCZ_IN_AG(Y, Z) 6.35/2.55 ADDC_IN_AAG(X, Y, Z) -> U16_AAG(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.55 ADDC_IN_AAG(X, Y, Z) -> ADDC_IN_AAG^1(X, Y, Z) 6.35/2.55 ADDC_IN_AAG^1(zero(X), zero(Y), one(Z)) -> U23_AAG(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 ADDC_IN_AAG^1(zero(X), zero(Y), one(Z)) -> ADDZ_IN_AAG(X, Y, Z) 6.35/2.55 ADDC_IN_AAG^1(zero(X), one(Y), zero(Z)) -> U24_AAG(X, Y, Z, addX_in_aag(X, Y, Z)) 6.35/2.55 ADDC_IN_AAG^1(zero(X), one(Y), zero(Z)) -> ADDX_IN_AAG^1(X, Y, Z) 6.35/2.55 ADDX_IN_AAG^1(zero(X), b, one(X)) -> U17_AAG(X, binaryZ_in_g(X)) 6.35/2.55 ADDX_IN_AAG^1(zero(X), b, one(X)) -> BINARYZ_IN_G(X) 6.35/2.55 ADDX_IN_AAG^1(one(X), b, zero(Z)) -> U18_AAG(X, Z, succ_in_ag(X, Z)) 6.35/2.55 ADDX_IN_AAG^1(one(X), b, zero(Z)) -> SUCC_IN_AG(X, Z) 6.35/2.55 ADDX_IN_AAG^1(X, Y, Z) -> U19_AAG(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.55 ADDX_IN_AAG^1(X, Y, Z) -> ADDC_IN_AAG^1(X, Y, Z) 6.35/2.55 ADDC_IN_AAG^1(one(X), zero(Y), zero(Z)) -> U25_AAG(X, Y, Z, addY_in_aag(X, Y, Z)) 6.35/2.55 ADDC_IN_AAG^1(one(X), zero(Y), zero(Z)) -> ADDY_IN_AAG^1(X, Y, Z) 6.35/2.55 ADDY_IN_AAG^1(b, zero(Y), one(Y)) -> U20_AAG(Y, binaryZ_in_g(Y)) 6.35/2.55 ADDY_IN_AAG^1(b, zero(Y), one(Y)) -> BINARYZ_IN_G(Y) 6.35/2.55 ADDY_IN_AAG^1(b, one(Y), zero(Z)) -> U21_AAG(Y, Z, succ_in_ag(Y, Z)) 6.35/2.55 ADDY_IN_AAG^1(b, one(Y), zero(Z)) -> SUCC_IN_AG(Y, Z) 6.35/2.55 ADDY_IN_AAG^1(X, Y, Z) -> U22_AAG(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.55 ADDY_IN_AAG^1(X, Y, Z) -> ADDC_IN_AAG^1(X, Y, Z) 6.35/2.55 ADDC_IN_AAG^1(one(X), one(Y), one(Z)) -> U26_AAG(X, Y, Z, addc_in_aag(X, Y, Z)) 6.35/2.55 ADDC_IN_AAG^1(one(X), one(Y), one(Z)) -> ADDC_IN_AAG(X, Y, Z) 6.35/2.55 6.35/2.55 The TRS R consists of the following rules: 6.35/2.55 6.35/2.55 add_in_aag(b, b, b) -> add_out_aag(b, b, b) 6.35/2.55 add_in_aag(X, b, X) -> U1_aag(X, binaryZ_in_g(X)) 6.35/2.55 binaryZ_in_g(zero(X)) -> U29_g(X, binaryZ_in_g(X)) 6.35/2.55 binaryZ_in_g(one(X)) -> U30_g(X, binary_in_g(X)) 6.35/2.55 binary_in_g(b) -> binary_out_g(b) 6.35/2.55 binary_in_g(zero(X)) -> U27_g(X, binaryZ_in_g(X)) 6.35/2.55 U27_g(X, binaryZ_out_g(X)) -> binary_out_g(zero(X)) 6.35/2.55 binary_in_g(one(X)) -> U28_g(X, binary_in_g(X)) 6.35/2.55 U28_g(X, binary_out_g(X)) -> binary_out_g(one(X)) 6.35/2.55 U30_g(X, binary_out_g(X)) -> binaryZ_out_g(one(X)) 6.35/2.55 U29_g(X, binaryZ_out_g(X)) -> binaryZ_out_g(zero(X)) 6.35/2.55 U1_aag(X, binaryZ_out_g(X)) -> add_out_aag(X, b, X) 6.35/2.55 add_in_aag(b, Y, Y) -> U2_aag(Y, binaryZ_in_g(Y)) 6.35/2.55 U2_aag(Y, binaryZ_out_g(Y)) -> add_out_aag(b, Y, Y) 6.35/2.55 add_in_aag(X, Y, Z) -> U3_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 addz_in_aag(zero(X), zero(Y), zero(Z)) -> U10_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 addz_in_aag(zero(X), one(Y), one(Z)) -> U11_aag(X, Y, Z, addx_in_aag(X, Y, Z)) 6.35/2.55 addx_in_aag(one(X), b, one(X)) -> U4_aag(X, binary_in_g(X)) 6.35/2.55 U4_aag(X, binary_out_g(X)) -> addx_out_aag(one(X), b, one(X)) 6.35/2.55 addx_in_aag(zero(X), b, zero(X)) -> U5_aag(X, binaryZ_in_g(X)) 6.35/2.55 U5_aag(X, binaryZ_out_g(X)) -> addx_out_aag(zero(X), b, zero(X)) 6.35/2.55 addx_in_aag(X, Y, Z) -> U6_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 addz_in_aag(one(X), zero(Y), one(Z)) -> U12_aag(X, Y, Z, addy_in_aag(X, Y, Z)) 6.35/2.55 addy_in_aag(b, one(Y), one(Y)) -> U7_aag(Y, binary_in_g(Y)) 6.35/2.55 U7_aag(Y, binary_out_g(Y)) -> addy_out_aag(b, one(Y), one(Y)) 6.35/2.55 addy_in_aag(b, zero(Y), zero(Y)) -> U8_aag(Y, binaryZ_in_g(Y)) 6.35/2.55 U8_aag(Y, binaryZ_out_g(Y)) -> addy_out_aag(b, zero(Y), zero(Y)) 6.35/2.55 addy_in_aag(X, Y, Z) -> U9_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 addz_in_aag(one(X), one(Y), zero(Z)) -> U13_aag(X, Y, Z, addc_in_aag(X, Y, Z)) 6.35/2.55 addc_in_aag(b, b, one(b)) -> addc_out_aag(b, b, one(b)) 6.35/2.55 addc_in_aag(X, b, Z) -> U14_aag(X, Z, succZ_in_ag(X, Z)) 6.35/2.55 succZ_in_ag(zero(X), one(X)) -> U33_ag(X, binaryZ_in_g(X)) 6.35/2.55 U33_ag(X, binaryZ_out_g(X)) -> succZ_out_ag(zero(X), one(X)) 6.35/2.55 succZ_in_ag(one(X), zero(Z)) -> U34_ag(X, Z, succ_in_ag(X, Z)) 6.35/2.55 succ_in_ag(b, one(b)) -> succ_out_ag(b, one(b)) 6.35/2.55 succ_in_ag(zero(X), one(X)) -> U31_ag(X, binaryZ_in_g(X)) 6.35/2.55 U31_ag(X, binaryZ_out_g(X)) -> succ_out_ag(zero(X), one(X)) 6.35/2.55 succ_in_ag(one(X), zero(Z)) -> U32_ag(X, Z, succ_in_ag(X, Z)) 6.35/2.55 U32_ag(X, Z, succ_out_ag(X, Z)) -> succ_out_ag(one(X), zero(Z)) 6.35/2.55 U34_ag(X, Z, succ_out_ag(X, Z)) -> succZ_out_ag(one(X), zero(Z)) 6.35/2.55 U14_aag(X, Z, succZ_out_ag(X, Z)) -> addc_out_aag(X, b, Z) 6.35/2.55 addc_in_aag(b, Y, Z) -> U15_aag(Y, Z, succZ_in_ag(Y, Z)) 6.35/2.55 U15_aag(Y, Z, succZ_out_ag(Y, Z)) -> addc_out_aag(b, Y, Z) 6.35/2.55 addc_in_aag(X, Y, Z) -> U16_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.55 addC_in_aag(zero(X), zero(Y), one(Z)) -> U23_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 U23_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addC_out_aag(zero(X), zero(Y), one(Z)) 6.35/2.55 addC_in_aag(zero(X), one(Y), zero(Z)) -> U24_aag(X, Y, Z, addX_in_aag(X, Y, Z)) 6.35/2.55 addX_in_aag(zero(X), b, one(X)) -> U17_aag(X, binaryZ_in_g(X)) 6.35/2.55 U17_aag(X, binaryZ_out_g(X)) -> addX_out_aag(zero(X), b, one(X)) 6.35/2.55 addX_in_aag(one(X), b, zero(Z)) -> U18_aag(X, Z, succ_in_ag(X, Z)) 6.35/2.55 U18_aag(X, Z, succ_out_ag(X, Z)) -> addX_out_aag(one(X), b, zero(Z)) 6.35/2.55 addX_in_aag(X, Y, Z) -> U19_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.55 addC_in_aag(one(X), zero(Y), zero(Z)) -> U25_aag(X, Y, Z, addY_in_aag(X, Y, Z)) 6.35/2.55 addY_in_aag(b, zero(Y), one(Y)) -> U20_aag(Y, binaryZ_in_g(Y)) 6.35/2.55 U20_aag(Y, binaryZ_out_g(Y)) -> addY_out_aag(b, zero(Y), one(Y)) 6.35/2.55 addY_in_aag(b, one(Y), zero(Z)) -> U21_aag(Y, Z, succ_in_ag(Y, Z)) 6.35/2.55 U21_aag(Y, Z, succ_out_ag(Y, Z)) -> addY_out_aag(b, one(Y), zero(Z)) 6.35/2.55 addY_in_aag(X, Y, Z) -> U22_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.55 addC_in_aag(one(X), one(Y), one(Z)) -> U26_aag(X, Y, Z, addc_in_aag(X, Y, Z)) 6.35/2.55 U26_aag(X, Y, Z, addc_out_aag(X, Y, Z)) -> addC_out_aag(one(X), one(Y), one(Z)) 6.35/2.55 U22_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addY_out_aag(X, Y, Z) 6.35/2.55 U25_aag(X, Y, Z, addY_out_aag(X, Y, Z)) -> addC_out_aag(one(X), zero(Y), zero(Z)) 6.35/2.55 U19_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addX_out_aag(X, Y, Z) 6.35/2.55 U24_aag(X, Y, Z, addX_out_aag(X, Y, Z)) -> addC_out_aag(zero(X), one(Y), zero(Z)) 6.35/2.55 U16_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addc_out_aag(X, Y, Z) 6.35/2.55 U13_aag(X, Y, Z, addc_out_aag(X, Y, Z)) -> addz_out_aag(one(X), one(Y), zero(Z)) 6.35/2.55 U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addy_out_aag(X, Y, Z) 6.35/2.55 U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) -> addz_out_aag(one(X), zero(Y), one(Z)) 6.35/2.55 U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addx_out_aag(X, Y, Z) 6.35/2.55 U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) -> addz_out_aag(zero(X), one(Y), one(Z)) 6.35/2.55 U10_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addz_out_aag(zero(X), zero(Y), zero(Z)) 6.35/2.55 U3_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> add_out_aag(X, Y, Z) 6.35/2.55 6.35/2.55 The argument filtering Pi contains the following mapping: 6.35/2.55 add_in_aag(x1, x2, x3) = add_in_aag(x3) 6.35/2.55 6.35/2.55 b = b 6.35/2.55 6.35/2.55 add_out_aag(x1, x2, x3) = add_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U1_aag(x1, x2) = U1_aag(x1, x2) 6.35/2.55 6.35/2.55 binaryZ_in_g(x1) = binaryZ_in_g(x1) 6.35/2.55 6.35/2.55 zero(x1) = zero(x1) 6.35/2.55 6.35/2.55 U29_g(x1, x2) = U29_g(x2) 6.35/2.55 6.35/2.55 one(x1) = one(x1) 6.35/2.55 6.35/2.55 U30_g(x1, x2) = U30_g(x2) 6.35/2.55 6.35/2.55 binary_in_g(x1) = binary_in_g(x1) 6.35/2.55 6.35/2.55 binary_out_g(x1) = binary_out_g 6.35/2.55 6.35/2.55 U27_g(x1, x2) = U27_g(x2) 6.35/2.55 6.35/2.55 binaryZ_out_g(x1) = binaryZ_out_g 6.35/2.55 6.35/2.55 U28_g(x1, x2) = U28_g(x2) 6.35/2.55 6.35/2.55 U2_aag(x1, x2) = U2_aag(x1, x2) 6.35/2.55 6.35/2.55 U3_aag(x1, x2, x3, x4) = U3_aag(x4) 6.35/2.55 6.35/2.55 addz_in_aag(x1, x2, x3) = addz_in_aag(x3) 6.35/2.55 6.35/2.55 U10_aag(x1, x2, x3, x4) = U10_aag(x4) 6.35/2.55 6.35/2.55 U11_aag(x1, x2, x3, x4) = U11_aag(x4) 6.35/2.55 6.35/2.55 addx_in_aag(x1, x2, x3) = addx_in_aag(x3) 6.35/2.55 6.35/2.55 U4_aag(x1, x2) = U4_aag(x1, x2) 6.35/2.55 6.35/2.55 addx_out_aag(x1, x2, x3) = addx_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U5_aag(x1, x2) = U5_aag(x1, x2) 6.35/2.55 6.35/2.55 U6_aag(x1, x2, x3, x4) = U6_aag(x4) 6.35/2.55 6.35/2.55 U12_aag(x1, x2, x3, x4) = U12_aag(x4) 6.35/2.55 6.35/2.55 addy_in_aag(x1, x2, x3) = addy_in_aag(x3) 6.35/2.55 6.35/2.55 U7_aag(x1, x2) = U7_aag(x1, x2) 6.35/2.55 6.35/2.55 addy_out_aag(x1, x2, x3) = addy_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U8_aag(x1, x2) = U8_aag(x1, x2) 6.35/2.55 6.35/2.55 U9_aag(x1, x2, x3, x4) = U9_aag(x4) 6.35/2.55 6.35/2.55 U13_aag(x1, x2, x3, x4) = U13_aag(x4) 6.35/2.55 6.35/2.55 addc_in_aag(x1, x2, x3) = addc_in_aag(x3) 6.35/2.55 6.35/2.55 addc_out_aag(x1, x2, x3) = addc_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U14_aag(x1, x2, x3) = U14_aag(x3) 6.35/2.55 6.35/2.55 succZ_in_ag(x1, x2) = succZ_in_ag(x2) 6.35/2.55 6.35/2.55 U33_ag(x1, x2) = U33_ag(x1, x2) 6.35/2.55 6.35/2.55 succZ_out_ag(x1, x2) = succZ_out_ag(x1) 6.35/2.55 6.35/2.55 U34_ag(x1, x2, x3) = U34_ag(x3) 6.35/2.55 6.35/2.55 succ_in_ag(x1, x2) = succ_in_ag(x2) 6.35/2.55 6.35/2.55 succ_out_ag(x1, x2) = succ_out_ag(x1) 6.35/2.55 6.35/2.55 U31_ag(x1, x2) = U31_ag(x1, x2) 6.35/2.55 6.35/2.55 U32_ag(x1, x2, x3) = U32_ag(x3) 6.35/2.55 6.35/2.55 U15_aag(x1, x2, x3) = U15_aag(x3) 6.35/2.55 6.35/2.55 U16_aag(x1, x2, x3, x4) = U16_aag(x4) 6.35/2.55 6.35/2.55 addC_in_aag(x1, x2, x3) = addC_in_aag(x3) 6.35/2.55 6.35/2.55 U23_aag(x1, x2, x3, x4) = U23_aag(x4) 6.35/2.55 6.35/2.55 addz_out_aag(x1, x2, x3) = addz_out_aag(x1, x2) 6.35/2.55 6.35/2.55 addC_out_aag(x1, x2, x3) = addC_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U24_aag(x1, x2, x3, x4) = U24_aag(x4) 6.35/2.55 6.35/2.55 addX_in_aag(x1, x2, x3) = addX_in_aag(x3) 6.35/2.55 6.35/2.55 U17_aag(x1, x2) = U17_aag(x1, x2) 6.35/2.55 6.35/2.55 addX_out_aag(x1, x2, x3) = addX_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U18_aag(x1, x2, x3) = U18_aag(x3) 6.35/2.55 6.35/2.55 U19_aag(x1, x2, x3, x4) = U19_aag(x4) 6.35/2.55 6.35/2.55 U25_aag(x1, x2, x3, x4) = U25_aag(x4) 6.35/2.55 6.35/2.55 addY_in_aag(x1, x2, x3) = addY_in_aag(x3) 6.35/2.55 6.35/2.55 U20_aag(x1, x2) = U20_aag(x1, x2) 6.35/2.55 6.35/2.55 addY_out_aag(x1, x2, x3) = addY_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U21_aag(x1, x2, x3) = U21_aag(x3) 6.35/2.55 6.35/2.55 U22_aag(x1, x2, x3, x4) = U22_aag(x4) 6.35/2.55 6.35/2.55 U26_aag(x1, x2, x3, x4) = U26_aag(x4) 6.35/2.55 6.35/2.55 ADD_IN_AAG(x1, x2, x3) = ADD_IN_AAG(x3) 6.35/2.55 6.35/2.55 U1_AAG(x1, x2) = U1_AAG(x1, x2) 6.35/2.55 6.35/2.55 BINARYZ_IN_G(x1) = BINARYZ_IN_G(x1) 6.35/2.55 6.35/2.55 U29_G(x1, x2) = U29_G(x2) 6.35/2.55 6.35/2.55 U30_G(x1, x2) = U30_G(x2) 6.35/2.55 6.35/2.55 BINARY_IN_G(x1) = BINARY_IN_G(x1) 6.35/2.55 6.35/2.55 U27_G(x1, x2) = U27_G(x2) 6.35/2.55 6.35/2.55 U28_G(x1, x2) = U28_G(x2) 6.35/2.55 6.35/2.55 U2_AAG(x1, x2) = U2_AAG(x1, x2) 6.35/2.55 6.35/2.55 U3_AAG(x1, x2, x3, x4) = U3_AAG(x4) 6.35/2.55 6.35/2.55 ADDZ_IN_AAG(x1, x2, x3) = ADDZ_IN_AAG(x3) 6.35/2.55 6.35/2.55 U10_AAG(x1, x2, x3, x4) = U10_AAG(x4) 6.35/2.55 6.35/2.55 U11_AAG(x1, x2, x3, x4) = U11_AAG(x4) 6.35/2.55 6.35/2.55 ADDX_IN_AAG(x1, x2, x3) = ADDX_IN_AAG(x3) 6.35/2.55 6.35/2.55 U4_AAG(x1, x2) = U4_AAG(x1, x2) 6.35/2.55 6.35/2.55 U5_AAG(x1, x2) = U5_AAG(x1, x2) 6.35/2.55 6.35/2.55 U6_AAG(x1, x2, x3, x4) = U6_AAG(x4) 6.35/2.55 6.35/2.55 U12_AAG(x1, x2, x3, x4) = U12_AAG(x4) 6.35/2.55 6.35/2.55 ADDY_IN_AAG(x1, x2, x3) = ADDY_IN_AAG(x3) 6.35/2.55 6.35/2.55 U7_AAG(x1, x2) = U7_AAG(x1, x2) 6.35/2.55 6.35/2.55 U8_AAG(x1, x2) = U8_AAG(x1, x2) 6.35/2.55 6.35/2.55 U9_AAG(x1, x2, x3, x4) = U9_AAG(x4) 6.35/2.55 6.35/2.55 U13_AAG(x1, x2, x3, x4) = U13_AAG(x4) 6.35/2.55 6.35/2.55 ADDC_IN_AAG(x1, x2, x3) = ADDC_IN_AAG(x3) 6.35/2.55 6.35/2.55 U14_AAG(x1, x2, x3) = U14_AAG(x3) 6.35/2.55 6.35/2.55 SUCCZ_IN_AG(x1, x2) = SUCCZ_IN_AG(x2) 6.35/2.55 6.35/2.55 U33_AG(x1, x2) = U33_AG(x1, x2) 6.35/2.55 6.35/2.55 U34_AG(x1, x2, x3) = U34_AG(x3) 6.35/2.55 6.35/2.55 SUCC_IN_AG(x1, x2) = SUCC_IN_AG(x2) 6.35/2.55 6.35/2.55 U31_AG(x1, x2) = U31_AG(x1, x2) 6.35/2.55 6.35/2.55 U32_AG(x1, x2, x3) = U32_AG(x3) 6.35/2.55 6.35/2.55 U15_AAG(x1, x2, x3) = U15_AAG(x3) 6.35/2.55 6.35/2.55 U16_AAG(x1, x2, x3, x4) = U16_AAG(x4) 6.35/2.55 6.35/2.55 ADDC_IN_AAG^1(x1, x2, x3) = ADDC_IN_AAG^1(x3) 6.35/2.55 6.35/2.55 U23_AAG(x1, x2, x3, x4) = U23_AAG(x4) 6.35/2.55 6.35/2.55 U24_AAG(x1, x2, x3, x4) = U24_AAG(x4) 6.35/2.55 6.35/2.55 ADDX_IN_AAG^1(x1, x2, x3) = ADDX_IN_AAG^1(x3) 6.35/2.55 6.35/2.55 U17_AAG(x1, x2) = U17_AAG(x1, x2) 6.35/2.55 6.35/2.55 U18_AAG(x1, x2, x3) = U18_AAG(x3) 6.35/2.55 6.35/2.55 U19_AAG(x1, x2, x3, x4) = U19_AAG(x4) 6.35/2.55 6.35/2.55 U25_AAG(x1, x2, x3, x4) = U25_AAG(x4) 6.35/2.55 6.35/2.55 ADDY_IN_AAG^1(x1, x2, x3) = ADDY_IN_AAG^1(x3) 6.35/2.55 6.35/2.55 U20_AAG(x1, x2) = U20_AAG(x1, x2) 6.35/2.55 6.35/2.55 U21_AAG(x1, x2, x3) = U21_AAG(x3) 6.35/2.55 6.35/2.55 U22_AAG(x1, x2, x3, x4) = U22_AAG(x4) 6.35/2.55 6.35/2.55 U26_AAG(x1, x2, x3, x4) = U26_AAG(x4) 6.35/2.55 6.35/2.55 6.35/2.55 We have to consider all (P,R,Pi)-chains 6.35/2.55 ---------------------------------------- 6.35/2.55 6.35/2.55 (4) 6.35/2.55 Obligation: 6.35/2.55 Pi DP problem: 6.35/2.55 The TRS P consists of the following rules: 6.35/2.55 6.35/2.55 ADD_IN_AAG(X, b, X) -> U1_AAG(X, binaryZ_in_g(X)) 6.35/2.55 ADD_IN_AAG(X, b, X) -> BINARYZ_IN_G(X) 6.35/2.55 BINARYZ_IN_G(zero(X)) -> U29_G(X, binaryZ_in_g(X)) 6.35/2.55 BINARYZ_IN_G(zero(X)) -> BINARYZ_IN_G(X) 6.35/2.55 BINARYZ_IN_G(one(X)) -> U30_G(X, binary_in_g(X)) 6.35/2.55 BINARYZ_IN_G(one(X)) -> BINARY_IN_G(X) 6.35/2.55 BINARY_IN_G(zero(X)) -> U27_G(X, binaryZ_in_g(X)) 6.35/2.55 BINARY_IN_G(zero(X)) -> BINARYZ_IN_G(X) 6.35/2.55 BINARY_IN_G(one(X)) -> U28_G(X, binary_in_g(X)) 6.35/2.55 BINARY_IN_G(one(X)) -> BINARY_IN_G(X) 6.35/2.55 ADD_IN_AAG(b, Y, Y) -> U2_AAG(Y, binaryZ_in_g(Y)) 6.35/2.55 ADD_IN_AAG(b, Y, Y) -> BINARYZ_IN_G(Y) 6.35/2.55 ADD_IN_AAG(X, Y, Z) -> U3_AAG(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 ADD_IN_AAG(X, Y, Z) -> ADDZ_IN_AAG(X, Y, Z) 6.35/2.55 ADDZ_IN_AAG(zero(X), zero(Y), zero(Z)) -> U10_AAG(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 ADDZ_IN_AAG(zero(X), zero(Y), zero(Z)) -> ADDZ_IN_AAG(X, Y, Z) 6.35/2.55 ADDZ_IN_AAG(zero(X), one(Y), one(Z)) -> U11_AAG(X, Y, Z, addx_in_aag(X, Y, Z)) 6.35/2.55 ADDZ_IN_AAG(zero(X), one(Y), one(Z)) -> ADDX_IN_AAG(X, Y, Z) 6.35/2.55 ADDX_IN_AAG(one(X), b, one(X)) -> U4_AAG(X, binary_in_g(X)) 6.35/2.55 ADDX_IN_AAG(one(X), b, one(X)) -> BINARY_IN_G(X) 6.35/2.55 ADDX_IN_AAG(zero(X), b, zero(X)) -> U5_AAG(X, binaryZ_in_g(X)) 6.35/2.55 ADDX_IN_AAG(zero(X), b, zero(X)) -> BINARYZ_IN_G(X) 6.35/2.55 ADDX_IN_AAG(X, Y, Z) -> U6_AAG(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 ADDX_IN_AAG(X, Y, Z) -> ADDZ_IN_AAG(X, Y, Z) 6.35/2.55 ADDZ_IN_AAG(one(X), zero(Y), one(Z)) -> U12_AAG(X, Y, Z, addy_in_aag(X, Y, Z)) 6.35/2.55 ADDZ_IN_AAG(one(X), zero(Y), one(Z)) -> ADDY_IN_AAG(X, Y, Z) 6.35/2.55 ADDY_IN_AAG(b, one(Y), one(Y)) -> U7_AAG(Y, binary_in_g(Y)) 6.35/2.55 ADDY_IN_AAG(b, one(Y), one(Y)) -> BINARY_IN_G(Y) 6.35/2.55 ADDY_IN_AAG(b, zero(Y), zero(Y)) -> U8_AAG(Y, binaryZ_in_g(Y)) 6.35/2.55 ADDY_IN_AAG(b, zero(Y), zero(Y)) -> BINARYZ_IN_G(Y) 6.35/2.55 ADDY_IN_AAG(X, Y, Z) -> U9_AAG(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 ADDY_IN_AAG(X, Y, Z) -> ADDZ_IN_AAG(X, Y, Z) 6.35/2.55 ADDZ_IN_AAG(one(X), one(Y), zero(Z)) -> U13_AAG(X, Y, Z, addc_in_aag(X, Y, Z)) 6.35/2.55 ADDZ_IN_AAG(one(X), one(Y), zero(Z)) -> ADDC_IN_AAG(X, Y, Z) 6.35/2.55 ADDC_IN_AAG(X, b, Z) -> U14_AAG(X, Z, succZ_in_ag(X, Z)) 6.35/2.55 ADDC_IN_AAG(X, b, Z) -> SUCCZ_IN_AG(X, Z) 6.35/2.55 SUCCZ_IN_AG(zero(X), one(X)) -> U33_AG(X, binaryZ_in_g(X)) 6.35/2.55 SUCCZ_IN_AG(zero(X), one(X)) -> BINARYZ_IN_G(X) 6.35/2.55 SUCCZ_IN_AG(one(X), zero(Z)) -> U34_AG(X, Z, succ_in_ag(X, Z)) 6.35/2.55 SUCCZ_IN_AG(one(X), zero(Z)) -> SUCC_IN_AG(X, Z) 6.35/2.55 SUCC_IN_AG(zero(X), one(X)) -> U31_AG(X, binaryZ_in_g(X)) 6.35/2.55 SUCC_IN_AG(zero(X), one(X)) -> BINARYZ_IN_G(X) 6.35/2.55 SUCC_IN_AG(one(X), zero(Z)) -> U32_AG(X, Z, succ_in_ag(X, Z)) 6.35/2.55 SUCC_IN_AG(one(X), zero(Z)) -> SUCC_IN_AG(X, Z) 6.35/2.55 ADDC_IN_AAG(b, Y, Z) -> U15_AAG(Y, Z, succZ_in_ag(Y, Z)) 6.35/2.55 ADDC_IN_AAG(b, Y, Z) -> SUCCZ_IN_AG(Y, Z) 6.35/2.55 ADDC_IN_AAG(X, Y, Z) -> U16_AAG(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.55 ADDC_IN_AAG(X, Y, Z) -> ADDC_IN_AAG^1(X, Y, Z) 6.35/2.55 ADDC_IN_AAG^1(zero(X), zero(Y), one(Z)) -> U23_AAG(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 ADDC_IN_AAG^1(zero(X), zero(Y), one(Z)) -> ADDZ_IN_AAG(X, Y, Z) 6.35/2.55 ADDC_IN_AAG^1(zero(X), one(Y), zero(Z)) -> U24_AAG(X, Y, Z, addX_in_aag(X, Y, Z)) 6.35/2.55 ADDC_IN_AAG^1(zero(X), one(Y), zero(Z)) -> ADDX_IN_AAG^1(X, Y, Z) 6.35/2.55 ADDX_IN_AAG^1(zero(X), b, one(X)) -> U17_AAG(X, binaryZ_in_g(X)) 6.35/2.55 ADDX_IN_AAG^1(zero(X), b, one(X)) -> BINARYZ_IN_G(X) 6.35/2.55 ADDX_IN_AAG^1(one(X), b, zero(Z)) -> U18_AAG(X, Z, succ_in_ag(X, Z)) 6.35/2.55 ADDX_IN_AAG^1(one(X), b, zero(Z)) -> SUCC_IN_AG(X, Z) 6.35/2.55 ADDX_IN_AAG^1(X, Y, Z) -> U19_AAG(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.55 ADDX_IN_AAG^1(X, Y, Z) -> ADDC_IN_AAG^1(X, Y, Z) 6.35/2.55 ADDC_IN_AAG^1(one(X), zero(Y), zero(Z)) -> U25_AAG(X, Y, Z, addY_in_aag(X, Y, Z)) 6.35/2.55 ADDC_IN_AAG^1(one(X), zero(Y), zero(Z)) -> ADDY_IN_AAG^1(X, Y, Z) 6.35/2.55 ADDY_IN_AAG^1(b, zero(Y), one(Y)) -> U20_AAG(Y, binaryZ_in_g(Y)) 6.35/2.55 ADDY_IN_AAG^1(b, zero(Y), one(Y)) -> BINARYZ_IN_G(Y) 6.35/2.55 ADDY_IN_AAG^1(b, one(Y), zero(Z)) -> U21_AAG(Y, Z, succ_in_ag(Y, Z)) 6.35/2.55 ADDY_IN_AAG^1(b, one(Y), zero(Z)) -> SUCC_IN_AG(Y, Z) 6.35/2.55 ADDY_IN_AAG^1(X, Y, Z) -> U22_AAG(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.55 ADDY_IN_AAG^1(X, Y, Z) -> ADDC_IN_AAG^1(X, Y, Z) 6.35/2.55 ADDC_IN_AAG^1(one(X), one(Y), one(Z)) -> U26_AAG(X, Y, Z, addc_in_aag(X, Y, Z)) 6.35/2.55 ADDC_IN_AAG^1(one(X), one(Y), one(Z)) -> ADDC_IN_AAG(X, Y, Z) 6.35/2.55 6.35/2.55 The TRS R consists of the following rules: 6.35/2.55 6.35/2.55 add_in_aag(b, b, b) -> add_out_aag(b, b, b) 6.35/2.55 add_in_aag(X, b, X) -> U1_aag(X, binaryZ_in_g(X)) 6.35/2.55 binaryZ_in_g(zero(X)) -> U29_g(X, binaryZ_in_g(X)) 6.35/2.55 binaryZ_in_g(one(X)) -> U30_g(X, binary_in_g(X)) 6.35/2.55 binary_in_g(b) -> binary_out_g(b) 6.35/2.55 binary_in_g(zero(X)) -> U27_g(X, binaryZ_in_g(X)) 6.35/2.55 U27_g(X, binaryZ_out_g(X)) -> binary_out_g(zero(X)) 6.35/2.55 binary_in_g(one(X)) -> U28_g(X, binary_in_g(X)) 6.35/2.55 U28_g(X, binary_out_g(X)) -> binary_out_g(one(X)) 6.35/2.55 U30_g(X, binary_out_g(X)) -> binaryZ_out_g(one(X)) 6.35/2.55 U29_g(X, binaryZ_out_g(X)) -> binaryZ_out_g(zero(X)) 6.35/2.55 U1_aag(X, binaryZ_out_g(X)) -> add_out_aag(X, b, X) 6.35/2.55 add_in_aag(b, Y, Y) -> U2_aag(Y, binaryZ_in_g(Y)) 6.35/2.55 U2_aag(Y, binaryZ_out_g(Y)) -> add_out_aag(b, Y, Y) 6.35/2.55 add_in_aag(X, Y, Z) -> U3_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 addz_in_aag(zero(X), zero(Y), zero(Z)) -> U10_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 addz_in_aag(zero(X), one(Y), one(Z)) -> U11_aag(X, Y, Z, addx_in_aag(X, Y, Z)) 6.35/2.55 addx_in_aag(one(X), b, one(X)) -> U4_aag(X, binary_in_g(X)) 6.35/2.55 U4_aag(X, binary_out_g(X)) -> addx_out_aag(one(X), b, one(X)) 6.35/2.55 addx_in_aag(zero(X), b, zero(X)) -> U5_aag(X, binaryZ_in_g(X)) 6.35/2.55 U5_aag(X, binaryZ_out_g(X)) -> addx_out_aag(zero(X), b, zero(X)) 6.35/2.55 addx_in_aag(X, Y, Z) -> U6_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 addz_in_aag(one(X), zero(Y), one(Z)) -> U12_aag(X, Y, Z, addy_in_aag(X, Y, Z)) 6.35/2.55 addy_in_aag(b, one(Y), one(Y)) -> U7_aag(Y, binary_in_g(Y)) 6.35/2.55 U7_aag(Y, binary_out_g(Y)) -> addy_out_aag(b, one(Y), one(Y)) 6.35/2.55 addy_in_aag(b, zero(Y), zero(Y)) -> U8_aag(Y, binaryZ_in_g(Y)) 6.35/2.55 U8_aag(Y, binaryZ_out_g(Y)) -> addy_out_aag(b, zero(Y), zero(Y)) 6.35/2.55 addy_in_aag(X, Y, Z) -> U9_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 addz_in_aag(one(X), one(Y), zero(Z)) -> U13_aag(X, Y, Z, addc_in_aag(X, Y, Z)) 6.35/2.55 addc_in_aag(b, b, one(b)) -> addc_out_aag(b, b, one(b)) 6.35/2.55 addc_in_aag(X, b, Z) -> U14_aag(X, Z, succZ_in_ag(X, Z)) 6.35/2.55 succZ_in_ag(zero(X), one(X)) -> U33_ag(X, binaryZ_in_g(X)) 6.35/2.55 U33_ag(X, binaryZ_out_g(X)) -> succZ_out_ag(zero(X), one(X)) 6.35/2.55 succZ_in_ag(one(X), zero(Z)) -> U34_ag(X, Z, succ_in_ag(X, Z)) 6.35/2.55 succ_in_ag(b, one(b)) -> succ_out_ag(b, one(b)) 6.35/2.55 succ_in_ag(zero(X), one(X)) -> U31_ag(X, binaryZ_in_g(X)) 6.35/2.55 U31_ag(X, binaryZ_out_g(X)) -> succ_out_ag(zero(X), one(X)) 6.35/2.55 succ_in_ag(one(X), zero(Z)) -> U32_ag(X, Z, succ_in_ag(X, Z)) 6.35/2.55 U32_ag(X, Z, succ_out_ag(X, Z)) -> succ_out_ag(one(X), zero(Z)) 6.35/2.55 U34_ag(X, Z, succ_out_ag(X, Z)) -> succZ_out_ag(one(X), zero(Z)) 6.35/2.55 U14_aag(X, Z, succZ_out_ag(X, Z)) -> addc_out_aag(X, b, Z) 6.35/2.55 addc_in_aag(b, Y, Z) -> U15_aag(Y, Z, succZ_in_ag(Y, Z)) 6.35/2.55 U15_aag(Y, Z, succZ_out_ag(Y, Z)) -> addc_out_aag(b, Y, Z) 6.35/2.55 addc_in_aag(X, Y, Z) -> U16_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.55 addC_in_aag(zero(X), zero(Y), one(Z)) -> U23_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.55 U23_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addC_out_aag(zero(X), zero(Y), one(Z)) 6.35/2.55 addC_in_aag(zero(X), one(Y), zero(Z)) -> U24_aag(X, Y, Z, addX_in_aag(X, Y, Z)) 6.35/2.55 addX_in_aag(zero(X), b, one(X)) -> U17_aag(X, binaryZ_in_g(X)) 6.35/2.55 U17_aag(X, binaryZ_out_g(X)) -> addX_out_aag(zero(X), b, one(X)) 6.35/2.55 addX_in_aag(one(X), b, zero(Z)) -> U18_aag(X, Z, succ_in_ag(X, Z)) 6.35/2.55 U18_aag(X, Z, succ_out_ag(X, Z)) -> addX_out_aag(one(X), b, zero(Z)) 6.35/2.55 addX_in_aag(X, Y, Z) -> U19_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.55 addC_in_aag(one(X), zero(Y), zero(Z)) -> U25_aag(X, Y, Z, addY_in_aag(X, Y, Z)) 6.35/2.55 addY_in_aag(b, zero(Y), one(Y)) -> U20_aag(Y, binaryZ_in_g(Y)) 6.35/2.55 U20_aag(Y, binaryZ_out_g(Y)) -> addY_out_aag(b, zero(Y), one(Y)) 6.35/2.55 addY_in_aag(b, one(Y), zero(Z)) -> U21_aag(Y, Z, succ_in_ag(Y, Z)) 6.35/2.55 U21_aag(Y, Z, succ_out_ag(Y, Z)) -> addY_out_aag(b, one(Y), zero(Z)) 6.35/2.55 addY_in_aag(X, Y, Z) -> U22_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.55 addC_in_aag(one(X), one(Y), one(Z)) -> U26_aag(X, Y, Z, addc_in_aag(X, Y, Z)) 6.35/2.55 U26_aag(X, Y, Z, addc_out_aag(X, Y, Z)) -> addC_out_aag(one(X), one(Y), one(Z)) 6.35/2.55 U22_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addY_out_aag(X, Y, Z) 6.35/2.55 U25_aag(X, Y, Z, addY_out_aag(X, Y, Z)) -> addC_out_aag(one(X), zero(Y), zero(Z)) 6.35/2.55 U19_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addX_out_aag(X, Y, Z) 6.35/2.55 U24_aag(X, Y, Z, addX_out_aag(X, Y, Z)) -> addC_out_aag(zero(X), one(Y), zero(Z)) 6.35/2.55 U16_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addc_out_aag(X, Y, Z) 6.35/2.55 U13_aag(X, Y, Z, addc_out_aag(X, Y, Z)) -> addz_out_aag(one(X), one(Y), zero(Z)) 6.35/2.55 U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addy_out_aag(X, Y, Z) 6.35/2.55 U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) -> addz_out_aag(one(X), zero(Y), one(Z)) 6.35/2.55 U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addx_out_aag(X, Y, Z) 6.35/2.55 U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) -> addz_out_aag(zero(X), one(Y), one(Z)) 6.35/2.55 U10_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addz_out_aag(zero(X), zero(Y), zero(Z)) 6.35/2.55 U3_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> add_out_aag(X, Y, Z) 6.35/2.55 6.35/2.55 The argument filtering Pi contains the following mapping: 6.35/2.55 add_in_aag(x1, x2, x3) = add_in_aag(x3) 6.35/2.55 6.35/2.55 b = b 6.35/2.55 6.35/2.55 add_out_aag(x1, x2, x3) = add_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U1_aag(x1, x2) = U1_aag(x1, x2) 6.35/2.55 6.35/2.55 binaryZ_in_g(x1) = binaryZ_in_g(x1) 6.35/2.55 6.35/2.55 zero(x1) = zero(x1) 6.35/2.55 6.35/2.55 U29_g(x1, x2) = U29_g(x2) 6.35/2.55 6.35/2.55 one(x1) = one(x1) 6.35/2.55 6.35/2.55 U30_g(x1, x2) = U30_g(x2) 6.35/2.55 6.35/2.55 binary_in_g(x1) = binary_in_g(x1) 6.35/2.55 6.35/2.55 binary_out_g(x1) = binary_out_g 6.35/2.55 6.35/2.55 U27_g(x1, x2) = U27_g(x2) 6.35/2.55 6.35/2.55 binaryZ_out_g(x1) = binaryZ_out_g 6.35/2.55 6.35/2.55 U28_g(x1, x2) = U28_g(x2) 6.35/2.55 6.35/2.55 U2_aag(x1, x2) = U2_aag(x1, x2) 6.35/2.55 6.35/2.55 U3_aag(x1, x2, x3, x4) = U3_aag(x4) 6.35/2.55 6.35/2.55 addz_in_aag(x1, x2, x3) = addz_in_aag(x3) 6.35/2.55 6.35/2.55 U10_aag(x1, x2, x3, x4) = U10_aag(x4) 6.35/2.55 6.35/2.55 U11_aag(x1, x2, x3, x4) = U11_aag(x4) 6.35/2.55 6.35/2.55 addx_in_aag(x1, x2, x3) = addx_in_aag(x3) 6.35/2.55 6.35/2.55 U4_aag(x1, x2) = U4_aag(x1, x2) 6.35/2.55 6.35/2.55 addx_out_aag(x1, x2, x3) = addx_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U5_aag(x1, x2) = U5_aag(x1, x2) 6.35/2.55 6.35/2.55 U6_aag(x1, x2, x3, x4) = U6_aag(x4) 6.35/2.55 6.35/2.55 U12_aag(x1, x2, x3, x4) = U12_aag(x4) 6.35/2.55 6.35/2.55 addy_in_aag(x1, x2, x3) = addy_in_aag(x3) 6.35/2.55 6.35/2.55 U7_aag(x1, x2) = U7_aag(x1, x2) 6.35/2.55 6.35/2.55 addy_out_aag(x1, x2, x3) = addy_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U8_aag(x1, x2) = U8_aag(x1, x2) 6.35/2.55 6.35/2.55 U9_aag(x1, x2, x3, x4) = U9_aag(x4) 6.35/2.55 6.35/2.55 U13_aag(x1, x2, x3, x4) = U13_aag(x4) 6.35/2.55 6.35/2.55 addc_in_aag(x1, x2, x3) = addc_in_aag(x3) 6.35/2.55 6.35/2.55 addc_out_aag(x1, x2, x3) = addc_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U14_aag(x1, x2, x3) = U14_aag(x3) 6.35/2.55 6.35/2.55 succZ_in_ag(x1, x2) = succZ_in_ag(x2) 6.35/2.55 6.35/2.55 U33_ag(x1, x2) = U33_ag(x1, x2) 6.35/2.55 6.35/2.55 succZ_out_ag(x1, x2) = succZ_out_ag(x1) 6.35/2.55 6.35/2.55 U34_ag(x1, x2, x3) = U34_ag(x3) 6.35/2.55 6.35/2.55 succ_in_ag(x1, x2) = succ_in_ag(x2) 6.35/2.55 6.35/2.55 succ_out_ag(x1, x2) = succ_out_ag(x1) 6.35/2.55 6.35/2.55 U31_ag(x1, x2) = U31_ag(x1, x2) 6.35/2.55 6.35/2.55 U32_ag(x1, x2, x3) = U32_ag(x3) 6.35/2.55 6.35/2.55 U15_aag(x1, x2, x3) = U15_aag(x3) 6.35/2.55 6.35/2.55 U16_aag(x1, x2, x3, x4) = U16_aag(x4) 6.35/2.55 6.35/2.55 addC_in_aag(x1, x2, x3) = addC_in_aag(x3) 6.35/2.55 6.35/2.55 U23_aag(x1, x2, x3, x4) = U23_aag(x4) 6.35/2.55 6.35/2.55 addz_out_aag(x1, x2, x3) = addz_out_aag(x1, x2) 6.35/2.55 6.35/2.55 addC_out_aag(x1, x2, x3) = addC_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U24_aag(x1, x2, x3, x4) = U24_aag(x4) 6.35/2.55 6.35/2.55 addX_in_aag(x1, x2, x3) = addX_in_aag(x3) 6.35/2.55 6.35/2.55 U17_aag(x1, x2) = U17_aag(x1, x2) 6.35/2.55 6.35/2.55 addX_out_aag(x1, x2, x3) = addX_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U18_aag(x1, x2, x3) = U18_aag(x3) 6.35/2.55 6.35/2.55 U19_aag(x1, x2, x3, x4) = U19_aag(x4) 6.35/2.55 6.35/2.55 U25_aag(x1, x2, x3, x4) = U25_aag(x4) 6.35/2.55 6.35/2.55 addY_in_aag(x1, x2, x3) = addY_in_aag(x3) 6.35/2.55 6.35/2.55 U20_aag(x1, x2) = U20_aag(x1, x2) 6.35/2.55 6.35/2.55 addY_out_aag(x1, x2, x3) = addY_out_aag(x1, x2) 6.35/2.55 6.35/2.55 U21_aag(x1, x2, x3) = U21_aag(x3) 6.35/2.55 6.35/2.55 U22_aag(x1, x2, x3, x4) = U22_aag(x4) 6.35/2.55 6.35/2.55 U26_aag(x1, x2, x3, x4) = U26_aag(x4) 6.35/2.55 6.35/2.55 ADD_IN_AAG(x1, x2, x3) = ADD_IN_AAG(x3) 6.35/2.55 6.35/2.55 U1_AAG(x1, x2) = U1_AAG(x1, x2) 6.35/2.55 6.35/2.55 BINARYZ_IN_G(x1) = BINARYZ_IN_G(x1) 6.35/2.56 6.35/2.56 U29_G(x1, x2) = U29_G(x2) 6.35/2.56 6.35/2.56 U30_G(x1, x2) = U30_G(x2) 6.35/2.56 6.35/2.56 BINARY_IN_G(x1) = BINARY_IN_G(x1) 6.35/2.56 6.35/2.56 U27_G(x1, x2) = U27_G(x2) 6.35/2.56 6.35/2.56 U28_G(x1, x2) = U28_G(x2) 6.35/2.56 6.35/2.56 U2_AAG(x1, x2) = U2_AAG(x1, x2) 6.35/2.56 6.35/2.56 U3_AAG(x1, x2, x3, x4) = U3_AAG(x4) 6.35/2.56 6.35/2.56 ADDZ_IN_AAG(x1, x2, x3) = ADDZ_IN_AAG(x3) 6.35/2.56 6.35/2.56 U10_AAG(x1, x2, x3, x4) = U10_AAG(x4) 6.35/2.56 6.35/2.56 U11_AAG(x1, x2, x3, x4) = U11_AAG(x4) 6.35/2.56 6.35/2.56 ADDX_IN_AAG(x1, x2, x3) = ADDX_IN_AAG(x3) 6.35/2.56 6.35/2.56 U4_AAG(x1, x2) = U4_AAG(x1, x2) 6.35/2.56 6.35/2.56 U5_AAG(x1, x2) = U5_AAG(x1, x2) 6.35/2.56 6.35/2.56 U6_AAG(x1, x2, x3, x4) = U6_AAG(x4) 6.35/2.56 6.35/2.56 U12_AAG(x1, x2, x3, x4) = U12_AAG(x4) 6.35/2.56 6.35/2.56 ADDY_IN_AAG(x1, x2, x3) = ADDY_IN_AAG(x3) 6.35/2.56 6.35/2.56 U7_AAG(x1, x2) = U7_AAG(x1, x2) 6.35/2.56 6.35/2.56 U8_AAG(x1, x2) = U8_AAG(x1, x2) 6.35/2.56 6.35/2.56 U9_AAG(x1, x2, x3, x4) = U9_AAG(x4) 6.35/2.56 6.35/2.56 U13_AAG(x1, x2, x3, x4) = U13_AAG(x4) 6.35/2.56 6.35/2.56 ADDC_IN_AAG(x1, x2, x3) = ADDC_IN_AAG(x3) 6.35/2.56 6.35/2.56 U14_AAG(x1, x2, x3) = U14_AAG(x3) 6.35/2.56 6.35/2.56 SUCCZ_IN_AG(x1, x2) = SUCCZ_IN_AG(x2) 6.35/2.56 6.35/2.56 U33_AG(x1, x2) = U33_AG(x1, x2) 6.35/2.56 6.35/2.56 U34_AG(x1, x2, x3) = U34_AG(x3) 6.35/2.56 6.35/2.56 SUCC_IN_AG(x1, x2) = SUCC_IN_AG(x2) 6.35/2.56 6.35/2.56 U31_AG(x1, x2) = U31_AG(x1, x2) 6.35/2.56 6.35/2.56 U32_AG(x1, x2, x3) = U32_AG(x3) 6.35/2.56 6.35/2.56 U15_AAG(x1, x2, x3) = U15_AAG(x3) 6.35/2.56 6.35/2.56 U16_AAG(x1, x2, x3, x4) = U16_AAG(x4) 6.35/2.56 6.35/2.56 ADDC_IN_AAG^1(x1, x2, x3) = ADDC_IN_AAG^1(x3) 6.35/2.56 6.35/2.56 U23_AAG(x1, x2, x3, x4) = U23_AAG(x4) 6.35/2.56 6.35/2.56 U24_AAG(x1, x2, x3, x4) = U24_AAG(x4) 6.35/2.56 6.35/2.56 ADDX_IN_AAG^1(x1, x2, x3) = ADDX_IN_AAG^1(x3) 6.35/2.56 6.35/2.56 U17_AAG(x1, x2) = U17_AAG(x1, x2) 6.35/2.56 6.35/2.56 U18_AAG(x1, x2, x3) = U18_AAG(x3) 6.35/2.56 6.35/2.56 U19_AAG(x1, x2, x3, x4) = U19_AAG(x4) 6.35/2.56 6.35/2.56 U25_AAG(x1, x2, x3, x4) = U25_AAG(x4) 6.35/2.56 6.35/2.56 ADDY_IN_AAG^1(x1, x2, x3) = ADDY_IN_AAG^1(x3) 6.35/2.56 6.35/2.56 U20_AAG(x1, x2) = U20_AAG(x1, x2) 6.35/2.56 6.35/2.56 U21_AAG(x1, x2, x3) = U21_AAG(x3) 6.35/2.56 6.35/2.56 U22_AAG(x1, x2, x3, x4) = U22_AAG(x4) 6.35/2.56 6.35/2.56 U26_AAG(x1, x2, x3, x4) = U26_AAG(x4) 6.35/2.56 6.35/2.56 6.35/2.56 We have to consider all (P,R,Pi)-chains 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (5) DependencyGraphProof (EQUIVALENT) 6.35/2.56 The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 50 less nodes. 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (6) 6.35/2.56 Complex Obligation (AND) 6.35/2.56 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (7) 6.35/2.56 Obligation: 6.35/2.56 Pi DP problem: 6.35/2.56 The TRS P consists of the following rules: 6.35/2.56 6.35/2.56 BINARYZ_IN_G(one(X)) -> BINARY_IN_G(X) 6.35/2.56 BINARY_IN_G(zero(X)) -> BINARYZ_IN_G(X) 6.35/2.56 BINARYZ_IN_G(zero(X)) -> BINARYZ_IN_G(X) 6.35/2.56 BINARY_IN_G(one(X)) -> BINARY_IN_G(X) 6.35/2.56 6.35/2.56 The TRS R consists of the following rules: 6.35/2.56 6.35/2.56 add_in_aag(b, b, b) -> add_out_aag(b, b, b) 6.35/2.56 add_in_aag(X, b, X) -> U1_aag(X, binaryZ_in_g(X)) 6.35/2.56 binaryZ_in_g(zero(X)) -> U29_g(X, binaryZ_in_g(X)) 6.35/2.56 binaryZ_in_g(one(X)) -> U30_g(X, binary_in_g(X)) 6.35/2.56 binary_in_g(b) -> binary_out_g(b) 6.35/2.56 binary_in_g(zero(X)) -> U27_g(X, binaryZ_in_g(X)) 6.35/2.56 U27_g(X, binaryZ_out_g(X)) -> binary_out_g(zero(X)) 6.35/2.56 binary_in_g(one(X)) -> U28_g(X, binary_in_g(X)) 6.35/2.56 U28_g(X, binary_out_g(X)) -> binary_out_g(one(X)) 6.35/2.56 U30_g(X, binary_out_g(X)) -> binaryZ_out_g(one(X)) 6.35/2.56 U29_g(X, binaryZ_out_g(X)) -> binaryZ_out_g(zero(X)) 6.35/2.56 U1_aag(X, binaryZ_out_g(X)) -> add_out_aag(X, b, X) 6.35/2.56 add_in_aag(b, Y, Y) -> U2_aag(Y, binaryZ_in_g(Y)) 6.35/2.56 U2_aag(Y, binaryZ_out_g(Y)) -> add_out_aag(b, Y, Y) 6.35/2.56 add_in_aag(X, Y, Z) -> U3_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.56 addz_in_aag(zero(X), zero(Y), zero(Z)) -> U10_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.56 addz_in_aag(zero(X), one(Y), one(Z)) -> U11_aag(X, Y, Z, addx_in_aag(X, Y, Z)) 6.35/2.56 addx_in_aag(one(X), b, one(X)) -> U4_aag(X, binary_in_g(X)) 6.35/2.56 U4_aag(X, binary_out_g(X)) -> addx_out_aag(one(X), b, one(X)) 6.35/2.56 addx_in_aag(zero(X), b, zero(X)) -> U5_aag(X, binaryZ_in_g(X)) 6.35/2.56 U5_aag(X, binaryZ_out_g(X)) -> addx_out_aag(zero(X), b, zero(X)) 6.35/2.56 addx_in_aag(X, Y, Z) -> U6_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.56 addz_in_aag(one(X), zero(Y), one(Z)) -> U12_aag(X, Y, Z, addy_in_aag(X, Y, Z)) 6.35/2.56 addy_in_aag(b, one(Y), one(Y)) -> U7_aag(Y, binary_in_g(Y)) 6.35/2.56 U7_aag(Y, binary_out_g(Y)) -> addy_out_aag(b, one(Y), one(Y)) 6.35/2.56 addy_in_aag(b, zero(Y), zero(Y)) -> U8_aag(Y, binaryZ_in_g(Y)) 6.35/2.56 U8_aag(Y, binaryZ_out_g(Y)) -> addy_out_aag(b, zero(Y), zero(Y)) 6.35/2.56 addy_in_aag(X, Y, Z) -> U9_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.56 addz_in_aag(one(X), one(Y), zero(Z)) -> U13_aag(X, Y, Z, addc_in_aag(X, Y, Z)) 6.35/2.56 addc_in_aag(b, b, one(b)) -> addc_out_aag(b, b, one(b)) 6.35/2.56 addc_in_aag(X, b, Z) -> U14_aag(X, Z, succZ_in_ag(X, Z)) 6.35/2.56 succZ_in_ag(zero(X), one(X)) -> U33_ag(X, binaryZ_in_g(X)) 6.35/2.56 U33_ag(X, binaryZ_out_g(X)) -> succZ_out_ag(zero(X), one(X)) 6.35/2.56 succZ_in_ag(one(X), zero(Z)) -> U34_ag(X, Z, succ_in_ag(X, Z)) 6.35/2.56 succ_in_ag(b, one(b)) -> succ_out_ag(b, one(b)) 6.35/2.56 succ_in_ag(zero(X), one(X)) -> U31_ag(X, binaryZ_in_g(X)) 6.35/2.56 U31_ag(X, binaryZ_out_g(X)) -> succ_out_ag(zero(X), one(X)) 6.35/2.56 succ_in_ag(one(X), zero(Z)) -> U32_ag(X, Z, succ_in_ag(X, Z)) 6.35/2.56 U32_ag(X, Z, succ_out_ag(X, Z)) -> succ_out_ag(one(X), zero(Z)) 6.35/2.56 U34_ag(X, Z, succ_out_ag(X, Z)) -> succZ_out_ag(one(X), zero(Z)) 6.35/2.56 U14_aag(X, Z, succZ_out_ag(X, Z)) -> addc_out_aag(X, b, Z) 6.35/2.56 addc_in_aag(b, Y, Z) -> U15_aag(Y, Z, succZ_in_ag(Y, Z)) 6.35/2.56 U15_aag(Y, Z, succZ_out_ag(Y, Z)) -> addc_out_aag(b, Y, Z) 6.35/2.56 addc_in_aag(X, Y, Z) -> U16_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.56 addC_in_aag(zero(X), zero(Y), one(Z)) -> U23_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.56 U23_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addC_out_aag(zero(X), zero(Y), one(Z)) 6.35/2.56 addC_in_aag(zero(X), one(Y), zero(Z)) -> U24_aag(X, Y, Z, addX_in_aag(X, Y, Z)) 6.35/2.56 addX_in_aag(zero(X), b, one(X)) -> U17_aag(X, binaryZ_in_g(X)) 6.35/2.56 U17_aag(X, binaryZ_out_g(X)) -> addX_out_aag(zero(X), b, one(X)) 6.35/2.56 addX_in_aag(one(X), b, zero(Z)) -> U18_aag(X, Z, succ_in_ag(X, Z)) 6.35/2.56 U18_aag(X, Z, succ_out_ag(X, Z)) -> addX_out_aag(one(X), b, zero(Z)) 6.35/2.56 addX_in_aag(X, Y, Z) -> U19_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.56 addC_in_aag(one(X), zero(Y), zero(Z)) -> U25_aag(X, Y, Z, addY_in_aag(X, Y, Z)) 6.35/2.56 addY_in_aag(b, zero(Y), one(Y)) -> U20_aag(Y, binaryZ_in_g(Y)) 6.35/2.56 U20_aag(Y, binaryZ_out_g(Y)) -> addY_out_aag(b, zero(Y), one(Y)) 6.35/2.56 addY_in_aag(b, one(Y), zero(Z)) -> U21_aag(Y, Z, succ_in_ag(Y, Z)) 6.35/2.56 U21_aag(Y, Z, succ_out_ag(Y, Z)) -> addY_out_aag(b, one(Y), zero(Z)) 6.35/2.56 addY_in_aag(X, Y, Z) -> U22_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.56 addC_in_aag(one(X), one(Y), one(Z)) -> U26_aag(X, Y, Z, addc_in_aag(X, Y, Z)) 6.35/2.56 U26_aag(X, Y, Z, addc_out_aag(X, Y, Z)) -> addC_out_aag(one(X), one(Y), one(Z)) 6.35/2.56 U22_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addY_out_aag(X, Y, Z) 6.35/2.56 U25_aag(X, Y, Z, addY_out_aag(X, Y, Z)) -> addC_out_aag(one(X), zero(Y), zero(Z)) 6.35/2.56 U19_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addX_out_aag(X, Y, Z) 6.35/2.56 U24_aag(X, Y, Z, addX_out_aag(X, Y, Z)) -> addC_out_aag(zero(X), one(Y), zero(Z)) 6.35/2.56 U16_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addc_out_aag(X, Y, Z) 6.35/2.56 U13_aag(X, Y, Z, addc_out_aag(X, Y, Z)) -> addz_out_aag(one(X), one(Y), zero(Z)) 6.35/2.56 U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addy_out_aag(X, Y, Z) 6.35/2.56 U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) -> addz_out_aag(one(X), zero(Y), one(Z)) 6.35/2.56 U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addx_out_aag(X, Y, Z) 6.35/2.56 U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) -> addz_out_aag(zero(X), one(Y), one(Z)) 6.35/2.56 U10_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addz_out_aag(zero(X), zero(Y), zero(Z)) 6.35/2.56 U3_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> add_out_aag(X, Y, Z) 6.35/2.56 6.35/2.56 The argument filtering Pi contains the following mapping: 6.35/2.56 add_in_aag(x1, x2, x3) = add_in_aag(x3) 6.35/2.56 6.35/2.56 b = b 6.35/2.56 6.35/2.56 add_out_aag(x1, x2, x3) = add_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U1_aag(x1, x2) = U1_aag(x1, x2) 6.35/2.56 6.35/2.56 binaryZ_in_g(x1) = binaryZ_in_g(x1) 6.35/2.56 6.35/2.56 zero(x1) = zero(x1) 6.35/2.56 6.35/2.56 U29_g(x1, x2) = U29_g(x2) 6.35/2.56 6.35/2.56 one(x1) = one(x1) 6.35/2.56 6.35/2.56 U30_g(x1, x2) = U30_g(x2) 6.35/2.56 6.35/2.56 binary_in_g(x1) = binary_in_g(x1) 6.35/2.56 6.35/2.56 binary_out_g(x1) = binary_out_g 6.35/2.56 6.35/2.56 U27_g(x1, x2) = U27_g(x2) 6.35/2.56 6.35/2.56 binaryZ_out_g(x1) = binaryZ_out_g 6.35/2.56 6.35/2.56 U28_g(x1, x2) = U28_g(x2) 6.35/2.56 6.35/2.56 U2_aag(x1, x2) = U2_aag(x1, x2) 6.35/2.56 6.35/2.56 U3_aag(x1, x2, x3, x4) = U3_aag(x4) 6.35/2.56 6.35/2.56 addz_in_aag(x1, x2, x3) = addz_in_aag(x3) 6.35/2.56 6.35/2.56 U10_aag(x1, x2, x3, x4) = U10_aag(x4) 6.35/2.56 6.35/2.56 U11_aag(x1, x2, x3, x4) = U11_aag(x4) 6.35/2.56 6.35/2.56 addx_in_aag(x1, x2, x3) = addx_in_aag(x3) 6.35/2.56 6.35/2.56 U4_aag(x1, x2) = U4_aag(x1, x2) 6.35/2.56 6.35/2.56 addx_out_aag(x1, x2, x3) = addx_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U5_aag(x1, x2) = U5_aag(x1, x2) 6.35/2.56 6.35/2.56 U6_aag(x1, x2, x3, x4) = U6_aag(x4) 6.35/2.56 6.35/2.56 U12_aag(x1, x2, x3, x4) = U12_aag(x4) 6.35/2.56 6.35/2.56 addy_in_aag(x1, x2, x3) = addy_in_aag(x3) 6.35/2.56 6.35/2.56 U7_aag(x1, x2) = U7_aag(x1, x2) 6.35/2.56 6.35/2.56 addy_out_aag(x1, x2, x3) = addy_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U8_aag(x1, x2) = U8_aag(x1, x2) 6.35/2.56 6.35/2.56 U9_aag(x1, x2, x3, x4) = U9_aag(x4) 6.35/2.56 6.35/2.56 U13_aag(x1, x2, x3, x4) = U13_aag(x4) 6.35/2.56 6.35/2.56 addc_in_aag(x1, x2, x3) = addc_in_aag(x3) 6.35/2.56 6.35/2.56 addc_out_aag(x1, x2, x3) = addc_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U14_aag(x1, x2, x3) = U14_aag(x3) 6.35/2.56 6.35/2.56 succZ_in_ag(x1, x2) = succZ_in_ag(x2) 6.35/2.56 6.35/2.56 U33_ag(x1, x2) = U33_ag(x1, x2) 6.35/2.56 6.35/2.56 succZ_out_ag(x1, x2) = succZ_out_ag(x1) 6.35/2.56 6.35/2.56 U34_ag(x1, x2, x3) = U34_ag(x3) 6.35/2.56 6.35/2.56 succ_in_ag(x1, x2) = succ_in_ag(x2) 6.35/2.56 6.35/2.56 succ_out_ag(x1, x2) = succ_out_ag(x1) 6.35/2.56 6.35/2.56 U31_ag(x1, x2) = U31_ag(x1, x2) 6.35/2.56 6.35/2.56 U32_ag(x1, x2, x3) = U32_ag(x3) 6.35/2.56 6.35/2.56 U15_aag(x1, x2, x3) = U15_aag(x3) 6.35/2.56 6.35/2.56 U16_aag(x1, x2, x3, x4) = U16_aag(x4) 6.35/2.56 6.35/2.56 addC_in_aag(x1, x2, x3) = addC_in_aag(x3) 6.35/2.56 6.35/2.56 U23_aag(x1, x2, x3, x4) = U23_aag(x4) 6.35/2.56 6.35/2.56 addz_out_aag(x1, x2, x3) = addz_out_aag(x1, x2) 6.35/2.56 6.35/2.56 addC_out_aag(x1, x2, x3) = addC_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U24_aag(x1, x2, x3, x4) = U24_aag(x4) 6.35/2.56 6.35/2.56 addX_in_aag(x1, x2, x3) = addX_in_aag(x3) 6.35/2.56 6.35/2.56 U17_aag(x1, x2) = U17_aag(x1, x2) 6.35/2.56 6.35/2.56 addX_out_aag(x1, x2, x3) = addX_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U18_aag(x1, x2, x3) = U18_aag(x3) 6.35/2.56 6.35/2.56 U19_aag(x1, x2, x3, x4) = U19_aag(x4) 6.35/2.56 6.35/2.56 U25_aag(x1, x2, x3, x4) = U25_aag(x4) 6.35/2.56 6.35/2.56 addY_in_aag(x1, x2, x3) = addY_in_aag(x3) 6.35/2.56 6.35/2.56 U20_aag(x1, x2) = U20_aag(x1, x2) 6.35/2.56 6.35/2.56 addY_out_aag(x1, x2, x3) = addY_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U21_aag(x1, x2, x3) = U21_aag(x3) 6.35/2.56 6.35/2.56 U22_aag(x1, x2, x3, x4) = U22_aag(x4) 6.35/2.56 6.35/2.56 U26_aag(x1, x2, x3, x4) = U26_aag(x4) 6.35/2.56 6.35/2.56 BINARYZ_IN_G(x1) = BINARYZ_IN_G(x1) 6.35/2.56 6.35/2.56 BINARY_IN_G(x1) = BINARY_IN_G(x1) 6.35/2.56 6.35/2.56 6.35/2.56 We have to consider all (P,R,Pi)-chains 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (8) UsableRulesProof (EQUIVALENT) 6.35/2.56 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (9) 6.35/2.56 Obligation: 6.35/2.56 Pi DP problem: 6.35/2.56 The TRS P consists of the following rules: 6.35/2.56 6.35/2.56 BINARYZ_IN_G(one(X)) -> BINARY_IN_G(X) 6.35/2.56 BINARY_IN_G(zero(X)) -> BINARYZ_IN_G(X) 6.35/2.56 BINARYZ_IN_G(zero(X)) -> BINARYZ_IN_G(X) 6.35/2.56 BINARY_IN_G(one(X)) -> BINARY_IN_G(X) 6.35/2.56 6.35/2.56 R is empty. 6.35/2.56 Pi is empty. 6.35/2.56 We have to consider all (P,R,Pi)-chains 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (10) PiDPToQDPProof (EQUIVALENT) 6.35/2.56 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (11) 6.35/2.56 Obligation: 6.35/2.56 Q DP problem: 6.35/2.56 The TRS P consists of the following rules: 6.35/2.56 6.35/2.56 BINARYZ_IN_G(one(X)) -> BINARY_IN_G(X) 6.35/2.56 BINARY_IN_G(zero(X)) -> BINARYZ_IN_G(X) 6.35/2.56 BINARYZ_IN_G(zero(X)) -> BINARYZ_IN_G(X) 6.35/2.56 BINARY_IN_G(one(X)) -> BINARY_IN_G(X) 6.35/2.56 6.35/2.56 R is empty. 6.35/2.56 Q is empty. 6.35/2.56 We have to consider all (P,Q,R)-chains. 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (12) QDPSizeChangeProof (EQUIVALENT) 6.35/2.56 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. 6.35/2.56 6.35/2.56 From the DPs we obtained the following set of size-change graphs: 6.35/2.56 *BINARY_IN_G(zero(X)) -> BINARYZ_IN_G(X) 6.35/2.56 The graph contains the following edges 1 > 1 6.35/2.56 6.35/2.56 6.35/2.56 *BINARY_IN_G(one(X)) -> BINARY_IN_G(X) 6.35/2.56 The graph contains the following edges 1 > 1 6.35/2.56 6.35/2.56 6.35/2.56 *BINARYZ_IN_G(zero(X)) -> BINARYZ_IN_G(X) 6.35/2.56 The graph contains the following edges 1 > 1 6.35/2.56 6.35/2.56 6.35/2.56 *BINARYZ_IN_G(one(X)) -> BINARY_IN_G(X) 6.35/2.56 The graph contains the following edges 1 > 1 6.35/2.56 6.35/2.56 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (13) 6.35/2.56 YES 6.35/2.56 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (14) 6.35/2.56 Obligation: 6.35/2.56 Pi DP problem: 6.35/2.56 The TRS P consists of the following rules: 6.35/2.56 6.35/2.56 SUCC_IN_AG(one(X), zero(Z)) -> SUCC_IN_AG(X, Z) 6.35/2.56 6.35/2.56 The TRS R consists of the following rules: 6.35/2.56 6.35/2.56 add_in_aag(b, b, b) -> add_out_aag(b, b, b) 6.35/2.56 add_in_aag(X, b, X) -> U1_aag(X, binaryZ_in_g(X)) 6.35/2.56 binaryZ_in_g(zero(X)) -> U29_g(X, binaryZ_in_g(X)) 6.35/2.56 binaryZ_in_g(one(X)) -> U30_g(X, binary_in_g(X)) 6.35/2.56 binary_in_g(b) -> binary_out_g(b) 6.35/2.56 binary_in_g(zero(X)) -> U27_g(X, binaryZ_in_g(X)) 6.35/2.56 U27_g(X, binaryZ_out_g(X)) -> binary_out_g(zero(X)) 6.35/2.56 binary_in_g(one(X)) -> U28_g(X, binary_in_g(X)) 6.35/2.56 U28_g(X, binary_out_g(X)) -> binary_out_g(one(X)) 6.35/2.56 U30_g(X, binary_out_g(X)) -> binaryZ_out_g(one(X)) 6.35/2.56 U29_g(X, binaryZ_out_g(X)) -> binaryZ_out_g(zero(X)) 6.35/2.56 U1_aag(X, binaryZ_out_g(X)) -> add_out_aag(X, b, X) 6.35/2.56 add_in_aag(b, Y, Y) -> U2_aag(Y, binaryZ_in_g(Y)) 6.35/2.56 U2_aag(Y, binaryZ_out_g(Y)) -> add_out_aag(b, Y, Y) 6.35/2.56 add_in_aag(X, Y, Z) -> U3_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.56 addz_in_aag(zero(X), zero(Y), zero(Z)) -> U10_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.56 addz_in_aag(zero(X), one(Y), one(Z)) -> U11_aag(X, Y, Z, addx_in_aag(X, Y, Z)) 6.35/2.56 addx_in_aag(one(X), b, one(X)) -> U4_aag(X, binary_in_g(X)) 6.35/2.56 U4_aag(X, binary_out_g(X)) -> addx_out_aag(one(X), b, one(X)) 6.35/2.56 addx_in_aag(zero(X), b, zero(X)) -> U5_aag(X, binaryZ_in_g(X)) 6.35/2.56 U5_aag(X, binaryZ_out_g(X)) -> addx_out_aag(zero(X), b, zero(X)) 6.35/2.56 addx_in_aag(X, Y, Z) -> U6_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.56 addz_in_aag(one(X), zero(Y), one(Z)) -> U12_aag(X, Y, Z, addy_in_aag(X, Y, Z)) 6.35/2.56 addy_in_aag(b, one(Y), one(Y)) -> U7_aag(Y, binary_in_g(Y)) 6.35/2.56 U7_aag(Y, binary_out_g(Y)) -> addy_out_aag(b, one(Y), one(Y)) 6.35/2.56 addy_in_aag(b, zero(Y), zero(Y)) -> U8_aag(Y, binaryZ_in_g(Y)) 6.35/2.56 U8_aag(Y, binaryZ_out_g(Y)) -> addy_out_aag(b, zero(Y), zero(Y)) 6.35/2.56 addy_in_aag(X, Y, Z) -> U9_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.56 addz_in_aag(one(X), one(Y), zero(Z)) -> U13_aag(X, Y, Z, addc_in_aag(X, Y, Z)) 6.35/2.56 addc_in_aag(b, b, one(b)) -> addc_out_aag(b, b, one(b)) 6.35/2.56 addc_in_aag(X, b, Z) -> U14_aag(X, Z, succZ_in_ag(X, Z)) 6.35/2.56 succZ_in_ag(zero(X), one(X)) -> U33_ag(X, binaryZ_in_g(X)) 6.35/2.56 U33_ag(X, binaryZ_out_g(X)) -> succZ_out_ag(zero(X), one(X)) 6.35/2.56 succZ_in_ag(one(X), zero(Z)) -> U34_ag(X, Z, succ_in_ag(X, Z)) 6.35/2.56 succ_in_ag(b, one(b)) -> succ_out_ag(b, one(b)) 6.35/2.56 succ_in_ag(zero(X), one(X)) -> U31_ag(X, binaryZ_in_g(X)) 6.35/2.56 U31_ag(X, binaryZ_out_g(X)) -> succ_out_ag(zero(X), one(X)) 6.35/2.56 succ_in_ag(one(X), zero(Z)) -> U32_ag(X, Z, succ_in_ag(X, Z)) 6.35/2.56 U32_ag(X, Z, succ_out_ag(X, Z)) -> succ_out_ag(one(X), zero(Z)) 6.35/2.56 U34_ag(X, Z, succ_out_ag(X, Z)) -> succZ_out_ag(one(X), zero(Z)) 6.35/2.56 U14_aag(X, Z, succZ_out_ag(X, Z)) -> addc_out_aag(X, b, Z) 6.35/2.56 addc_in_aag(b, Y, Z) -> U15_aag(Y, Z, succZ_in_ag(Y, Z)) 6.35/2.56 U15_aag(Y, Z, succZ_out_ag(Y, Z)) -> addc_out_aag(b, Y, Z) 6.35/2.56 addc_in_aag(X, Y, Z) -> U16_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.56 addC_in_aag(zero(X), zero(Y), one(Z)) -> U23_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.56 U23_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addC_out_aag(zero(X), zero(Y), one(Z)) 6.35/2.56 addC_in_aag(zero(X), one(Y), zero(Z)) -> U24_aag(X, Y, Z, addX_in_aag(X, Y, Z)) 6.35/2.56 addX_in_aag(zero(X), b, one(X)) -> U17_aag(X, binaryZ_in_g(X)) 6.35/2.56 U17_aag(X, binaryZ_out_g(X)) -> addX_out_aag(zero(X), b, one(X)) 6.35/2.56 addX_in_aag(one(X), b, zero(Z)) -> U18_aag(X, Z, succ_in_ag(X, Z)) 6.35/2.56 U18_aag(X, Z, succ_out_ag(X, Z)) -> addX_out_aag(one(X), b, zero(Z)) 6.35/2.56 addX_in_aag(X, Y, Z) -> U19_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.56 addC_in_aag(one(X), zero(Y), zero(Z)) -> U25_aag(X, Y, Z, addY_in_aag(X, Y, Z)) 6.35/2.56 addY_in_aag(b, zero(Y), one(Y)) -> U20_aag(Y, binaryZ_in_g(Y)) 6.35/2.56 U20_aag(Y, binaryZ_out_g(Y)) -> addY_out_aag(b, zero(Y), one(Y)) 6.35/2.56 addY_in_aag(b, one(Y), zero(Z)) -> U21_aag(Y, Z, succ_in_ag(Y, Z)) 6.35/2.56 U21_aag(Y, Z, succ_out_ag(Y, Z)) -> addY_out_aag(b, one(Y), zero(Z)) 6.35/2.56 addY_in_aag(X, Y, Z) -> U22_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.56 addC_in_aag(one(X), one(Y), one(Z)) -> U26_aag(X, Y, Z, addc_in_aag(X, Y, Z)) 6.35/2.56 U26_aag(X, Y, Z, addc_out_aag(X, Y, Z)) -> addC_out_aag(one(X), one(Y), one(Z)) 6.35/2.56 U22_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addY_out_aag(X, Y, Z) 6.35/2.56 U25_aag(X, Y, Z, addY_out_aag(X, Y, Z)) -> addC_out_aag(one(X), zero(Y), zero(Z)) 6.35/2.56 U19_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addX_out_aag(X, Y, Z) 6.35/2.56 U24_aag(X, Y, Z, addX_out_aag(X, Y, Z)) -> addC_out_aag(zero(X), one(Y), zero(Z)) 6.35/2.56 U16_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addc_out_aag(X, Y, Z) 6.35/2.56 U13_aag(X, Y, Z, addc_out_aag(X, Y, Z)) -> addz_out_aag(one(X), one(Y), zero(Z)) 6.35/2.56 U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addy_out_aag(X, Y, Z) 6.35/2.56 U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) -> addz_out_aag(one(X), zero(Y), one(Z)) 6.35/2.56 U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addx_out_aag(X, Y, Z) 6.35/2.56 U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) -> addz_out_aag(zero(X), one(Y), one(Z)) 6.35/2.56 U10_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addz_out_aag(zero(X), zero(Y), zero(Z)) 6.35/2.56 U3_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> add_out_aag(X, Y, Z) 6.35/2.56 6.35/2.56 The argument filtering Pi contains the following mapping: 6.35/2.56 add_in_aag(x1, x2, x3) = add_in_aag(x3) 6.35/2.56 6.35/2.56 b = b 6.35/2.56 6.35/2.56 add_out_aag(x1, x2, x3) = add_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U1_aag(x1, x2) = U1_aag(x1, x2) 6.35/2.56 6.35/2.56 binaryZ_in_g(x1) = binaryZ_in_g(x1) 6.35/2.56 6.35/2.56 zero(x1) = zero(x1) 6.35/2.56 6.35/2.56 U29_g(x1, x2) = U29_g(x2) 6.35/2.56 6.35/2.56 one(x1) = one(x1) 6.35/2.56 6.35/2.56 U30_g(x1, x2) = U30_g(x2) 6.35/2.56 6.35/2.56 binary_in_g(x1) = binary_in_g(x1) 6.35/2.56 6.35/2.56 binary_out_g(x1) = binary_out_g 6.35/2.56 6.35/2.56 U27_g(x1, x2) = U27_g(x2) 6.35/2.56 6.35/2.56 binaryZ_out_g(x1) = binaryZ_out_g 6.35/2.56 6.35/2.56 U28_g(x1, x2) = U28_g(x2) 6.35/2.56 6.35/2.56 U2_aag(x1, x2) = U2_aag(x1, x2) 6.35/2.56 6.35/2.56 U3_aag(x1, x2, x3, x4) = U3_aag(x4) 6.35/2.56 6.35/2.56 addz_in_aag(x1, x2, x3) = addz_in_aag(x3) 6.35/2.56 6.35/2.56 U10_aag(x1, x2, x3, x4) = U10_aag(x4) 6.35/2.56 6.35/2.56 U11_aag(x1, x2, x3, x4) = U11_aag(x4) 6.35/2.56 6.35/2.56 addx_in_aag(x1, x2, x3) = addx_in_aag(x3) 6.35/2.56 6.35/2.56 U4_aag(x1, x2) = U4_aag(x1, x2) 6.35/2.56 6.35/2.56 addx_out_aag(x1, x2, x3) = addx_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U5_aag(x1, x2) = U5_aag(x1, x2) 6.35/2.56 6.35/2.56 U6_aag(x1, x2, x3, x4) = U6_aag(x4) 6.35/2.56 6.35/2.56 U12_aag(x1, x2, x3, x4) = U12_aag(x4) 6.35/2.56 6.35/2.56 addy_in_aag(x1, x2, x3) = addy_in_aag(x3) 6.35/2.56 6.35/2.56 U7_aag(x1, x2) = U7_aag(x1, x2) 6.35/2.56 6.35/2.56 addy_out_aag(x1, x2, x3) = addy_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U8_aag(x1, x2) = U8_aag(x1, x2) 6.35/2.56 6.35/2.56 U9_aag(x1, x2, x3, x4) = U9_aag(x4) 6.35/2.56 6.35/2.56 U13_aag(x1, x2, x3, x4) = U13_aag(x4) 6.35/2.56 6.35/2.56 addc_in_aag(x1, x2, x3) = addc_in_aag(x3) 6.35/2.56 6.35/2.56 addc_out_aag(x1, x2, x3) = addc_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U14_aag(x1, x2, x3) = U14_aag(x3) 6.35/2.56 6.35/2.56 succZ_in_ag(x1, x2) = succZ_in_ag(x2) 6.35/2.56 6.35/2.56 U33_ag(x1, x2) = U33_ag(x1, x2) 6.35/2.56 6.35/2.56 succZ_out_ag(x1, x2) = succZ_out_ag(x1) 6.35/2.56 6.35/2.56 U34_ag(x1, x2, x3) = U34_ag(x3) 6.35/2.56 6.35/2.56 succ_in_ag(x1, x2) = succ_in_ag(x2) 6.35/2.56 6.35/2.56 succ_out_ag(x1, x2) = succ_out_ag(x1) 6.35/2.56 6.35/2.56 U31_ag(x1, x2) = U31_ag(x1, x2) 6.35/2.56 6.35/2.56 U32_ag(x1, x2, x3) = U32_ag(x3) 6.35/2.56 6.35/2.56 U15_aag(x1, x2, x3) = U15_aag(x3) 6.35/2.56 6.35/2.56 U16_aag(x1, x2, x3, x4) = U16_aag(x4) 6.35/2.56 6.35/2.56 addC_in_aag(x1, x2, x3) = addC_in_aag(x3) 6.35/2.56 6.35/2.56 U23_aag(x1, x2, x3, x4) = U23_aag(x4) 6.35/2.56 6.35/2.56 addz_out_aag(x1, x2, x3) = addz_out_aag(x1, x2) 6.35/2.56 6.35/2.56 addC_out_aag(x1, x2, x3) = addC_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U24_aag(x1, x2, x3, x4) = U24_aag(x4) 6.35/2.56 6.35/2.56 addX_in_aag(x1, x2, x3) = addX_in_aag(x3) 6.35/2.56 6.35/2.56 U17_aag(x1, x2) = U17_aag(x1, x2) 6.35/2.56 6.35/2.56 addX_out_aag(x1, x2, x3) = addX_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U18_aag(x1, x2, x3) = U18_aag(x3) 6.35/2.56 6.35/2.56 U19_aag(x1, x2, x3, x4) = U19_aag(x4) 6.35/2.56 6.35/2.56 U25_aag(x1, x2, x3, x4) = U25_aag(x4) 6.35/2.56 6.35/2.56 addY_in_aag(x1, x2, x3) = addY_in_aag(x3) 6.35/2.56 6.35/2.56 U20_aag(x1, x2) = U20_aag(x1, x2) 6.35/2.56 6.35/2.56 addY_out_aag(x1, x2, x3) = addY_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U21_aag(x1, x2, x3) = U21_aag(x3) 6.35/2.56 6.35/2.56 U22_aag(x1, x2, x3, x4) = U22_aag(x4) 6.35/2.56 6.35/2.56 U26_aag(x1, x2, x3, x4) = U26_aag(x4) 6.35/2.56 6.35/2.56 SUCC_IN_AG(x1, x2) = SUCC_IN_AG(x2) 6.35/2.56 6.35/2.56 6.35/2.56 We have to consider all (P,R,Pi)-chains 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (15) UsableRulesProof (EQUIVALENT) 6.35/2.56 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (16) 6.35/2.56 Obligation: 6.35/2.56 Pi DP problem: 6.35/2.56 The TRS P consists of the following rules: 6.35/2.56 6.35/2.56 SUCC_IN_AG(one(X), zero(Z)) -> SUCC_IN_AG(X, Z) 6.35/2.56 6.35/2.56 R is empty. 6.35/2.56 The argument filtering Pi contains the following mapping: 6.35/2.56 zero(x1) = zero(x1) 6.35/2.56 6.35/2.56 one(x1) = one(x1) 6.35/2.56 6.35/2.56 SUCC_IN_AG(x1, x2) = SUCC_IN_AG(x2) 6.35/2.56 6.35/2.56 6.35/2.56 We have to consider all (P,R,Pi)-chains 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (17) PiDPToQDPProof (SOUND) 6.35/2.56 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (18) 6.35/2.56 Obligation: 6.35/2.56 Q DP problem: 6.35/2.56 The TRS P consists of the following rules: 6.35/2.56 6.35/2.56 SUCC_IN_AG(zero(Z)) -> SUCC_IN_AG(Z) 6.35/2.56 6.35/2.56 R is empty. 6.35/2.56 Q is empty. 6.35/2.56 We have to consider all (P,Q,R)-chains. 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (19) QDPSizeChangeProof (EQUIVALENT) 6.35/2.56 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. 6.35/2.56 6.35/2.56 From the DPs we obtained the following set of size-change graphs: 6.35/2.56 *SUCC_IN_AG(zero(Z)) -> SUCC_IN_AG(Z) 6.35/2.56 The graph contains the following edges 1 > 1 6.35/2.56 6.35/2.56 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (20) 6.35/2.56 YES 6.35/2.56 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (21) 6.35/2.56 Obligation: 6.35/2.56 Pi DP problem: 6.35/2.56 The TRS P consists of the following rules: 6.35/2.56 6.35/2.56 ADDX_IN_AAG(X, Y, Z) -> ADDZ_IN_AAG(X, Y, Z) 6.35/2.56 ADDZ_IN_AAG(zero(X), zero(Y), zero(Z)) -> ADDZ_IN_AAG(X, Y, Z) 6.35/2.56 ADDZ_IN_AAG(zero(X), one(Y), one(Z)) -> ADDX_IN_AAG(X, Y, Z) 6.35/2.56 ADDZ_IN_AAG(one(X), zero(Y), one(Z)) -> ADDY_IN_AAG(X, Y, Z) 6.35/2.56 ADDY_IN_AAG(X, Y, Z) -> ADDZ_IN_AAG(X, Y, Z) 6.35/2.56 ADDZ_IN_AAG(one(X), one(Y), zero(Z)) -> ADDC_IN_AAG(X, Y, Z) 6.35/2.56 ADDC_IN_AAG(X, Y, Z) -> ADDC_IN_AAG^1(X, Y, Z) 6.35/2.56 ADDC_IN_AAG^1(zero(X), zero(Y), one(Z)) -> ADDZ_IN_AAG(X, Y, Z) 6.35/2.56 ADDC_IN_AAG^1(zero(X), one(Y), zero(Z)) -> ADDX_IN_AAG^1(X, Y, Z) 6.35/2.56 ADDX_IN_AAG^1(X, Y, Z) -> ADDC_IN_AAG^1(X, Y, Z) 6.35/2.56 ADDC_IN_AAG^1(one(X), zero(Y), zero(Z)) -> ADDY_IN_AAG^1(X, Y, Z) 6.35/2.56 ADDY_IN_AAG^1(X, Y, Z) -> ADDC_IN_AAG^1(X, Y, Z) 6.35/2.56 ADDC_IN_AAG^1(one(X), one(Y), one(Z)) -> ADDC_IN_AAG(X, Y, Z) 6.35/2.56 6.35/2.56 The TRS R consists of the following rules: 6.35/2.56 6.35/2.56 add_in_aag(b, b, b) -> add_out_aag(b, b, b) 6.35/2.56 add_in_aag(X, b, X) -> U1_aag(X, binaryZ_in_g(X)) 6.35/2.56 binaryZ_in_g(zero(X)) -> U29_g(X, binaryZ_in_g(X)) 6.35/2.56 binaryZ_in_g(one(X)) -> U30_g(X, binary_in_g(X)) 6.35/2.56 binary_in_g(b) -> binary_out_g(b) 6.35/2.56 binary_in_g(zero(X)) -> U27_g(X, binaryZ_in_g(X)) 6.35/2.56 U27_g(X, binaryZ_out_g(X)) -> binary_out_g(zero(X)) 6.35/2.56 binary_in_g(one(X)) -> U28_g(X, binary_in_g(X)) 6.35/2.56 U28_g(X, binary_out_g(X)) -> binary_out_g(one(X)) 6.35/2.56 U30_g(X, binary_out_g(X)) -> binaryZ_out_g(one(X)) 6.35/2.56 U29_g(X, binaryZ_out_g(X)) -> binaryZ_out_g(zero(X)) 6.35/2.56 U1_aag(X, binaryZ_out_g(X)) -> add_out_aag(X, b, X) 6.35/2.56 add_in_aag(b, Y, Y) -> U2_aag(Y, binaryZ_in_g(Y)) 6.35/2.56 U2_aag(Y, binaryZ_out_g(Y)) -> add_out_aag(b, Y, Y) 6.35/2.56 add_in_aag(X, Y, Z) -> U3_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.56 addz_in_aag(zero(X), zero(Y), zero(Z)) -> U10_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.56 addz_in_aag(zero(X), one(Y), one(Z)) -> U11_aag(X, Y, Z, addx_in_aag(X, Y, Z)) 6.35/2.56 addx_in_aag(one(X), b, one(X)) -> U4_aag(X, binary_in_g(X)) 6.35/2.56 U4_aag(X, binary_out_g(X)) -> addx_out_aag(one(X), b, one(X)) 6.35/2.56 addx_in_aag(zero(X), b, zero(X)) -> U5_aag(X, binaryZ_in_g(X)) 6.35/2.56 U5_aag(X, binaryZ_out_g(X)) -> addx_out_aag(zero(X), b, zero(X)) 6.35/2.56 addx_in_aag(X, Y, Z) -> U6_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.56 addz_in_aag(one(X), zero(Y), one(Z)) -> U12_aag(X, Y, Z, addy_in_aag(X, Y, Z)) 6.35/2.56 addy_in_aag(b, one(Y), one(Y)) -> U7_aag(Y, binary_in_g(Y)) 6.35/2.56 U7_aag(Y, binary_out_g(Y)) -> addy_out_aag(b, one(Y), one(Y)) 6.35/2.56 addy_in_aag(b, zero(Y), zero(Y)) -> U8_aag(Y, binaryZ_in_g(Y)) 6.35/2.56 U8_aag(Y, binaryZ_out_g(Y)) -> addy_out_aag(b, zero(Y), zero(Y)) 6.35/2.56 addy_in_aag(X, Y, Z) -> U9_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.56 addz_in_aag(one(X), one(Y), zero(Z)) -> U13_aag(X, Y, Z, addc_in_aag(X, Y, Z)) 6.35/2.56 addc_in_aag(b, b, one(b)) -> addc_out_aag(b, b, one(b)) 6.35/2.56 addc_in_aag(X, b, Z) -> U14_aag(X, Z, succZ_in_ag(X, Z)) 6.35/2.56 succZ_in_ag(zero(X), one(X)) -> U33_ag(X, binaryZ_in_g(X)) 6.35/2.56 U33_ag(X, binaryZ_out_g(X)) -> succZ_out_ag(zero(X), one(X)) 6.35/2.56 succZ_in_ag(one(X), zero(Z)) -> U34_ag(X, Z, succ_in_ag(X, Z)) 6.35/2.56 succ_in_ag(b, one(b)) -> succ_out_ag(b, one(b)) 6.35/2.56 succ_in_ag(zero(X), one(X)) -> U31_ag(X, binaryZ_in_g(X)) 6.35/2.56 U31_ag(X, binaryZ_out_g(X)) -> succ_out_ag(zero(X), one(X)) 6.35/2.56 succ_in_ag(one(X), zero(Z)) -> U32_ag(X, Z, succ_in_ag(X, Z)) 6.35/2.56 U32_ag(X, Z, succ_out_ag(X, Z)) -> succ_out_ag(one(X), zero(Z)) 6.35/2.56 U34_ag(X, Z, succ_out_ag(X, Z)) -> succZ_out_ag(one(X), zero(Z)) 6.35/2.56 U14_aag(X, Z, succZ_out_ag(X, Z)) -> addc_out_aag(X, b, Z) 6.35/2.56 addc_in_aag(b, Y, Z) -> U15_aag(Y, Z, succZ_in_ag(Y, Z)) 6.35/2.56 U15_aag(Y, Z, succZ_out_ag(Y, Z)) -> addc_out_aag(b, Y, Z) 6.35/2.56 addc_in_aag(X, Y, Z) -> U16_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.56 addC_in_aag(zero(X), zero(Y), one(Z)) -> U23_aag(X, Y, Z, addz_in_aag(X, Y, Z)) 6.35/2.56 U23_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addC_out_aag(zero(X), zero(Y), one(Z)) 6.35/2.56 addC_in_aag(zero(X), one(Y), zero(Z)) -> U24_aag(X, Y, Z, addX_in_aag(X, Y, Z)) 6.35/2.56 addX_in_aag(zero(X), b, one(X)) -> U17_aag(X, binaryZ_in_g(X)) 6.35/2.56 U17_aag(X, binaryZ_out_g(X)) -> addX_out_aag(zero(X), b, one(X)) 6.35/2.56 addX_in_aag(one(X), b, zero(Z)) -> U18_aag(X, Z, succ_in_ag(X, Z)) 6.35/2.56 U18_aag(X, Z, succ_out_ag(X, Z)) -> addX_out_aag(one(X), b, zero(Z)) 6.35/2.56 addX_in_aag(X, Y, Z) -> U19_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.56 addC_in_aag(one(X), zero(Y), zero(Z)) -> U25_aag(X, Y, Z, addY_in_aag(X, Y, Z)) 6.35/2.56 addY_in_aag(b, zero(Y), one(Y)) -> U20_aag(Y, binaryZ_in_g(Y)) 6.35/2.56 U20_aag(Y, binaryZ_out_g(Y)) -> addY_out_aag(b, zero(Y), one(Y)) 6.35/2.56 addY_in_aag(b, one(Y), zero(Z)) -> U21_aag(Y, Z, succ_in_ag(Y, Z)) 6.35/2.56 U21_aag(Y, Z, succ_out_ag(Y, Z)) -> addY_out_aag(b, one(Y), zero(Z)) 6.35/2.56 addY_in_aag(X, Y, Z) -> U22_aag(X, Y, Z, addC_in_aag(X, Y, Z)) 6.35/2.56 addC_in_aag(one(X), one(Y), one(Z)) -> U26_aag(X, Y, Z, addc_in_aag(X, Y, Z)) 6.35/2.56 U26_aag(X, Y, Z, addc_out_aag(X, Y, Z)) -> addC_out_aag(one(X), one(Y), one(Z)) 6.35/2.56 U22_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addY_out_aag(X, Y, Z) 6.35/2.56 U25_aag(X, Y, Z, addY_out_aag(X, Y, Z)) -> addC_out_aag(one(X), zero(Y), zero(Z)) 6.35/2.56 U19_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addX_out_aag(X, Y, Z) 6.35/2.56 U24_aag(X, Y, Z, addX_out_aag(X, Y, Z)) -> addC_out_aag(zero(X), one(Y), zero(Z)) 6.35/2.56 U16_aag(X, Y, Z, addC_out_aag(X, Y, Z)) -> addc_out_aag(X, Y, Z) 6.35/2.56 U13_aag(X, Y, Z, addc_out_aag(X, Y, Z)) -> addz_out_aag(one(X), one(Y), zero(Z)) 6.35/2.56 U9_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addy_out_aag(X, Y, Z) 6.35/2.56 U12_aag(X, Y, Z, addy_out_aag(X, Y, Z)) -> addz_out_aag(one(X), zero(Y), one(Z)) 6.35/2.56 U6_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addx_out_aag(X, Y, Z) 6.35/2.56 U11_aag(X, Y, Z, addx_out_aag(X, Y, Z)) -> addz_out_aag(zero(X), one(Y), one(Z)) 6.35/2.56 U10_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> addz_out_aag(zero(X), zero(Y), zero(Z)) 6.35/2.56 U3_aag(X, Y, Z, addz_out_aag(X, Y, Z)) -> add_out_aag(X, Y, Z) 6.35/2.56 6.35/2.56 The argument filtering Pi contains the following mapping: 6.35/2.56 add_in_aag(x1, x2, x3) = add_in_aag(x3) 6.35/2.56 6.35/2.56 b = b 6.35/2.56 6.35/2.56 add_out_aag(x1, x2, x3) = add_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U1_aag(x1, x2) = U1_aag(x1, x2) 6.35/2.56 6.35/2.56 binaryZ_in_g(x1) = binaryZ_in_g(x1) 6.35/2.56 6.35/2.56 zero(x1) = zero(x1) 6.35/2.56 6.35/2.56 U29_g(x1, x2) = U29_g(x2) 6.35/2.56 6.35/2.56 one(x1) = one(x1) 6.35/2.56 6.35/2.56 U30_g(x1, x2) = U30_g(x2) 6.35/2.56 6.35/2.56 binary_in_g(x1) = binary_in_g(x1) 6.35/2.56 6.35/2.56 binary_out_g(x1) = binary_out_g 6.35/2.56 6.35/2.56 U27_g(x1, x2) = U27_g(x2) 6.35/2.56 6.35/2.56 binaryZ_out_g(x1) = binaryZ_out_g 6.35/2.56 6.35/2.56 U28_g(x1, x2) = U28_g(x2) 6.35/2.56 6.35/2.56 U2_aag(x1, x2) = U2_aag(x1, x2) 6.35/2.56 6.35/2.56 U3_aag(x1, x2, x3, x4) = U3_aag(x4) 6.35/2.56 6.35/2.56 addz_in_aag(x1, x2, x3) = addz_in_aag(x3) 6.35/2.56 6.35/2.56 U10_aag(x1, x2, x3, x4) = U10_aag(x4) 6.35/2.56 6.35/2.56 U11_aag(x1, x2, x3, x4) = U11_aag(x4) 6.35/2.56 6.35/2.56 addx_in_aag(x1, x2, x3) = addx_in_aag(x3) 6.35/2.56 6.35/2.56 U4_aag(x1, x2) = U4_aag(x1, x2) 6.35/2.56 6.35/2.56 addx_out_aag(x1, x2, x3) = addx_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U5_aag(x1, x2) = U5_aag(x1, x2) 6.35/2.56 6.35/2.56 U6_aag(x1, x2, x3, x4) = U6_aag(x4) 6.35/2.56 6.35/2.56 U12_aag(x1, x2, x3, x4) = U12_aag(x4) 6.35/2.56 6.35/2.56 addy_in_aag(x1, x2, x3) = addy_in_aag(x3) 6.35/2.56 6.35/2.56 U7_aag(x1, x2) = U7_aag(x1, x2) 6.35/2.56 6.35/2.56 addy_out_aag(x1, x2, x3) = addy_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U8_aag(x1, x2) = U8_aag(x1, x2) 6.35/2.56 6.35/2.56 U9_aag(x1, x2, x3, x4) = U9_aag(x4) 6.35/2.56 6.35/2.56 U13_aag(x1, x2, x3, x4) = U13_aag(x4) 6.35/2.56 6.35/2.56 addc_in_aag(x1, x2, x3) = addc_in_aag(x3) 6.35/2.56 6.35/2.56 addc_out_aag(x1, x2, x3) = addc_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U14_aag(x1, x2, x3) = U14_aag(x3) 6.35/2.56 6.35/2.56 succZ_in_ag(x1, x2) = succZ_in_ag(x2) 6.35/2.56 6.35/2.56 U33_ag(x1, x2) = U33_ag(x1, x2) 6.35/2.56 6.35/2.56 succZ_out_ag(x1, x2) = succZ_out_ag(x1) 6.35/2.56 6.35/2.56 U34_ag(x1, x2, x3) = U34_ag(x3) 6.35/2.56 6.35/2.56 succ_in_ag(x1, x2) = succ_in_ag(x2) 6.35/2.56 6.35/2.56 succ_out_ag(x1, x2) = succ_out_ag(x1) 6.35/2.56 6.35/2.56 U31_ag(x1, x2) = U31_ag(x1, x2) 6.35/2.56 6.35/2.56 U32_ag(x1, x2, x3) = U32_ag(x3) 6.35/2.56 6.35/2.56 U15_aag(x1, x2, x3) = U15_aag(x3) 6.35/2.56 6.35/2.56 U16_aag(x1, x2, x3, x4) = U16_aag(x4) 6.35/2.56 6.35/2.56 addC_in_aag(x1, x2, x3) = addC_in_aag(x3) 6.35/2.56 6.35/2.56 U23_aag(x1, x2, x3, x4) = U23_aag(x4) 6.35/2.56 6.35/2.56 addz_out_aag(x1, x2, x3) = addz_out_aag(x1, x2) 6.35/2.56 6.35/2.56 addC_out_aag(x1, x2, x3) = addC_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U24_aag(x1, x2, x3, x4) = U24_aag(x4) 6.35/2.56 6.35/2.56 addX_in_aag(x1, x2, x3) = addX_in_aag(x3) 6.35/2.56 6.35/2.56 U17_aag(x1, x2) = U17_aag(x1, x2) 6.35/2.56 6.35/2.56 addX_out_aag(x1, x2, x3) = addX_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U18_aag(x1, x2, x3) = U18_aag(x3) 6.35/2.56 6.35/2.56 U19_aag(x1, x2, x3, x4) = U19_aag(x4) 6.35/2.56 6.35/2.56 U25_aag(x1, x2, x3, x4) = U25_aag(x4) 6.35/2.56 6.35/2.56 addY_in_aag(x1, x2, x3) = addY_in_aag(x3) 6.35/2.56 6.35/2.56 U20_aag(x1, x2) = U20_aag(x1, x2) 6.35/2.56 6.35/2.56 addY_out_aag(x1, x2, x3) = addY_out_aag(x1, x2) 6.35/2.56 6.35/2.56 U21_aag(x1, x2, x3) = U21_aag(x3) 6.35/2.56 6.35/2.56 U22_aag(x1, x2, x3, x4) = U22_aag(x4) 6.35/2.56 6.35/2.56 U26_aag(x1, x2, x3, x4) = U26_aag(x4) 6.35/2.56 6.35/2.56 ADDZ_IN_AAG(x1, x2, x3) = ADDZ_IN_AAG(x3) 6.35/2.56 6.35/2.56 ADDX_IN_AAG(x1, x2, x3) = ADDX_IN_AAG(x3) 6.35/2.56 6.35/2.56 ADDY_IN_AAG(x1, x2, x3) = ADDY_IN_AAG(x3) 6.35/2.56 6.35/2.56 ADDC_IN_AAG(x1, x2, x3) = ADDC_IN_AAG(x3) 6.35/2.56 6.35/2.56 ADDC_IN_AAG^1(x1, x2, x3) = ADDC_IN_AAG^1(x3) 6.35/2.56 6.35/2.56 ADDX_IN_AAG^1(x1, x2, x3) = ADDX_IN_AAG^1(x3) 6.35/2.56 6.35/2.56 ADDY_IN_AAG^1(x1, x2, x3) = ADDY_IN_AAG^1(x3) 6.35/2.56 6.35/2.56 6.35/2.56 We have to consider all (P,R,Pi)-chains 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (22) UsableRulesProof (EQUIVALENT) 6.35/2.56 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (23) 6.35/2.56 Obligation: 6.35/2.56 Pi DP problem: 6.35/2.56 The TRS P consists of the following rules: 6.35/2.56 6.35/2.56 ADDX_IN_AAG(X, Y, Z) -> ADDZ_IN_AAG(X, Y, Z) 6.35/2.56 ADDZ_IN_AAG(zero(X), zero(Y), zero(Z)) -> ADDZ_IN_AAG(X, Y, Z) 6.35/2.56 ADDZ_IN_AAG(zero(X), one(Y), one(Z)) -> ADDX_IN_AAG(X, Y, Z) 6.35/2.56 ADDZ_IN_AAG(one(X), zero(Y), one(Z)) -> ADDY_IN_AAG(X, Y, Z) 6.35/2.56 ADDY_IN_AAG(X, Y, Z) -> ADDZ_IN_AAG(X, Y, Z) 6.35/2.56 ADDZ_IN_AAG(one(X), one(Y), zero(Z)) -> ADDC_IN_AAG(X, Y, Z) 6.35/2.56 ADDC_IN_AAG(X, Y, Z) -> ADDC_IN_AAG^1(X, Y, Z) 6.35/2.56 ADDC_IN_AAG^1(zero(X), zero(Y), one(Z)) -> ADDZ_IN_AAG(X, Y, Z) 6.35/2.56 ADDC_IN_AAG^1(zero(X), one(Y), zero(Z)) -> ADDX_IN_AAG^1(X, Y, Z) 6.35/2.56 ADDX_IN_AAG^1(X, Y, Z) -> ADDC_IN_AAG^1(X, Y, Z) 6.35/2.56 ADDC_IN_AAG^1(one(X), zero(Y), zero(Z)) -> ADDY_IN_AAG^1(X, Y, Z) 6.35/2.56 ADDY_IN_AAG^1(X, Y, Z) -> ADDC_IN_AAG^1(X, Y, Z) 6.35/2.56 ADDC_IN_AAG^1(one(X), one(Y), one(Z)) -> ADDC_IN_AAG(X, Y, Z) 6.35/2.56 6.35/2.56 R is empty. 6.35/2.56 The argument filtering Pi contains the following mapping: 6.35/2.56 zero(x1) = zero(x1) 6.35/2.56 6.35/2.56 one(x1) = one(x1) 6.35/2.56 6.35/2.56 ADDZ_IN_AAG(x1, x2, x3) = ADDZ_IN_AAG(x3) 6.35/2.56 6.35/2.56 ADDX_IN_AAG(x1, x2, x3) = ADDX_IN_AAG(x3) 6.35/2.56 6.35/2.56 ADDY_IN_AAG(x1, x2, x3) = ADDY_IN_AAG(x3) 6.35/2.56 6.35/2.56 ADDC_IN_AAG(x1, x2, x3) = ADDC_IN_AAG(x3) 6.35/2.56 6.35/2.56 ADDC_IN_AAG^1(x1, x2, x3) = ADDC_IN_AAG^1(x3) 6.35/2.56 6.35/2.56 ADDX_IN_AAG^1(x1, x2, x3) = ADDX_IN_AAG^1(x3) 6.35/2.56 6.35/2.56 ADDY_IN_AAG^1(x1, x2, x3) = ADDY_IN_AAG^1(x3) 6.35/2.56 6.35/2.56 6.35/2.56 We have to consider all (P,R,Pi)-chains 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (24) PiDPToQDPProof (SOUND) 6.35/2.56 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (25) 6.35/2.56 Obligation: 6.35/2.56 Q DP problem: 6.35/2.56 The TRS P consists of the following rules: 6.35/2.56 6.35/2.56 ADDX_IN_AAG(Z) -> ADDZ_IN_AAG(Z) 6.35/2.56 ADDZ_IN_AAG(zero(Z)) -> ADDZ_IN_AAG(Z) 6.35/2.56 ADDZ_IN_AAG(one(Z)) -> ADDX_IN_AAG(Z) 6.35/2.56 ADDZ_IN_AAG(one(Z)) -> ADDY_IN_AAG(Z) 6.35/2.56 ADDY_IN_AAG(Z) -> ADDZ_IN_AAG(Z) 6.35/2.56 ADDZ_IN_AAG(zero(Z)) -> ADDC_IN_AAG(Z) 6.35/2.56 ADDC_IN_AAG(Z) -> ADDC_IN_AAG^1(Z) 6.35/2.56 ADDC_IN_AAG^1(one(Z)) -> ADDZ_IN_AAG(Z) 6.35/2.56 ADDC_IN_AAG^1(zero(Z)) -> ADDX_IN_AAG^1(Z) 6.35/2.56 ADDX_IN_AAG^1(Z) -> ADDC_IN_AAG^1(Z) 6.35/2.56 ADDC_IN_AAG^1(zero(Z)) -> ADDY_IN_AAG^1(Z) 6.35/2.56 ADDY_IN_AAG^1(Z) -> ADDC_IN_AAG^1(Z) 6.35/2.56 ADDC_IN_AAG^1(one(Z)) -> ADDC_IN_AAG(Z) 6.35/2.56 6.35/2.56 R is empty. 6.35/2.56 Q is empty. 6.35/2.56 We have to consider all (P,Q,R)-chains. 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (26) QDPSizeChangeProof (EQUIVALENT) 6.35/2.56 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. 6.35/2.56 6.35/2.56 From the DPs we obtained the following set of size-change graphs: 6.35/2.56 *ADDZ_IN_AAG(one(Z)) -> ADDX_IN_AAG(Z) 6.35/2.56 The graph contains the following edges 1 > 1 6.35/2.56 6.35/2.56 6.35/2.56 *ADDZ_IN_AAG(zero(Z)) -> ADDZ_IN_AAG(Z) 6.35/2.56 The graph contains the following edges 1 > 1 6.35/2.56 6.35/2.56 6.35/2.56 *ADDX_IN_AAG(Z) -> ADDZ_IN_AAG(Z) 6.35/2.56 The graph contains the following edges 1 >= 1 6.35/2.56 6.35/2.56 6.35/2.56 *ADDY_IN_AAG(Z) -> ADDZ_IN_AAG(Z) 6.35/2.56 The graph contains the following edges 1 >= 1 6.35/2.56 6.35/2.56 6.35/2.56 *ADDC_IN_AAG^1(one(Z)) -> ADDZ_IN_AAG(Z) 6.35/2.56 The graph contains the following edges 1 > 1 6.35/2.56 6.35/2.56 6.35/2.56 *ADDZ_IN_AAG(one(Z)) -> ADDY_IN_AAG(Z) 6.35/2.56 The graph contains the following edges 1 > 1 6.35/2.56 6.35/2.56 6.35/2.56 *ADDZ_IN_AAG(zero(Z)) -> ADDC_IN_AAG(Z) 6.35/2.56 The graph contains the following edges 1 > 1 6.35/2.56 6.35/2.56 6.35/2.56 *ADDC_IN_AAG(Z) -> ADDC_IN_AAG^1(Z) 6.35/2.56 The graph contains the following edges 1 >= 1 6.35/2.56 6.35/2.56 6.35/2.56 *ADDC_IN_AAG^1(one(Z)) -> ADDC_IN_AAG(Z) 6.35/2.56 The graph contains the following edges 1 > 1 6.35/2.56 6.35/2.56 6.35/2.56 *ADDX_IN_AAG^1(Z) -> ADDC_IN_AAG^1(Z) 6.35/2.56 The graph contains the following edges 1 >= 1 6.35/2.56 6.35/2.56 6.35/2.56 *ADDY_IN_AAG^1(Z) -> ADDC_IN_AAG^1(Z) 6.35/2.56 The graph contains the following edges 1 >= 1 6.35/2.56 6.35/2.56 6.35/2.56 *ADDC_IN_AAG^1(zero(Z)) -> ADDX_IN_AAG^1(Z) 6.35/2.56 The graph contains the following edges 1 > 1 6.35/2.56 6.35/2.56 6.35/2.56 *ADDC_IN_AAG^1(zero(Z)) -> ADDY_IN_AAG^1(Z) 6.35/2.56 The graph contains the following edges 1 > 1 6.35/2.56 6.35/2.56 6.35/2.56 ---------------------------------------- 6.35/2.56 6.35/2.56 (27) 6.35/2.56 YES 6.35/2.59 EOF