Certification Problem

Input (TPDB TRS_Standard/Kaliszyk_19/arith)

The rewrite relation of the following TRS is considered.

There are 108 ruless (increase limit for explicit display).

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by NaTT @ termCOMP 2023)

1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
mult#(BIT1(m),BIT0(n)) plus#(BIT0(n),BIT0(BIT0(mult(m,n)))) (109)
minus#(BIT0(m),BIT0(n)) BIT0#(minus(m,n)) (110)
ODD#(NUMERAL(n)) ODD#(n) (111)
exp#(BIT1(m),BIT1(n)) mult#(BIT1(m),exp(BIT1(m),n)) (112)
PRE#(BIT0(n)) eq#(n,0) (113)
plus#(BIT0(m),BIT0(n)) BIT0#(plus(m,n)) (114)
PRE#(NUMERAL(n)) NUMERAL#(PRE(n)) (115)
exp#(NUMERAL(m),NUMERAL(n)) NUMERAL#(exp(m,n)) (116)
lt#(BIT1(m),BIT1(n)) lt#(m,n) (117)
SUC#(NUMERAL(n)) NUMERAL#(SUC(n)) (118)
ge#(0,BIT0(n)) ge#(0,n) (119)
plus#(NUMERAL(m),NUMERAL(n)) NUMERAL#(plus(m,n)) (120)
lt#(BIT1(m),BIT0(n)) lt#(m,n) (121)
exp#(BIT0(m),BIT0(n)) exp#(BIT0(m),n) (122)
gt#(BIT0(n),0) gt#(n,0) (123)
exp#(NUMERAL(m),NUMERAL(n)) exp#(m,n) (124)
mult#(BIT1(m),BIT1(n)) plus#(plus(BIT1(m),BIT0(n)),BIT0(BIT0(mult(m,n)))) (125)
exp#(BIT0(m),BIT1(n)) exp#(BIT0(m),n) (126)
ge#(NUMERAL(n),NUMERAL(m)) ge#(n,m) (127)
mult#(BIT0(m),BIT1(n)) plus#(BIT0(m),BIT0(BIT0(mult(m,n)))) (128)
le#(BIT0(m),BIT0(n)) le#(m,n) (129)
mult#(BIT1(m),BIT1(n)) mult#(m,n) (130)
minus#(BIT1(m),BIT1(n)) minus#(m,n) (131)
plus#(NUMERAL(m),NUMERAL(n)) plus#(m,n) (132)
exp#(0,BIT0(n)) mult#(exp(0,n),exp(0,n)) (133)
eq#(NUMERAL(m),NUMERAL(n)) eq#(m,n) (134)
mult#(BIT1(m),BIT1(n)) BIT0#(n) (135)
PRE#(NUMERAL(n)) PRE#(n) (136)
lt#(BIT0(m),BIT1(n)) le#(m,n) (137)
exp#(BIT0(m),BIT0(n)) mult#(exp(BIT0(m),n),exp(BIT0(m),n)) (138)
minus#(BIT0(m),BIT1(n)) BIT0#(minus(m,n)) (139)
exp#(BIT1(m),BIT0(n)) exp#(BIT1(m),n) (140)
le#(BIT0(m),BIT1(n)) le#(m,n) (141)
EVEN#(NUMERAL(n)) EVEN#(n) (142)
plus#(BIT0(m),BIT1(n)) plus#(m,n) (143)
mult#(BIT1(m),BIT1(n)) BIT0#(mult(m,n)) (144)
mult#(BIT0(m),BIT1(n)) BIT0#(BIT0(mult(m,n))) (145)
mult#(NUMERAL(m),NUMERAL(n)) mult#(m,n) (146)
SUC#(BIT1(n)) SUC#(n) (147)
exp#(BIT0(m),BIT1(n)) exp#(BIT0(m),n) (126)
SUC#(BIT1(n)) BIT0#(SUC(n)) (148)
mult#(BIT0(m),BIT0(n)) BIT0#(mult(m,n)) (149)
mult#(BIT0(m),BIT1(n)) mult#(m,n) (150)
lt#(NUMERAL(m),NUMERAL(n)) lt#(m,n) (151)
SUC#(NUMERAL(n)) SUC#(n) (152)
exp#(BIT0(m),BIT1(n)) mult#(BIT0(m),exp(BIT0(m),n)) (153)
exp#(BIT1(m),BIT0(n)) mult#(exp(BIT1(m),n),exp(BIT1(m),n)) (154)
exp#(BIT1(m),BIT1(n)) exp#(BIT1(m),n) (155)
ge#(BIT0(n),BIT1(m)) gt#(n,m) (156)
mult#(BIT1(m),BIT1(n)) BIT0#(BIT0(mult(m,n))) (157)
le#(BIT1(m),BIT1(n)) le#(m,n) (158)
mult#(BIT0(m),BIT0(n)) mult#(m,n) (159)
exp#(BIT1(m),BIT0(n)) exp#(BIT1(m),n) (140)
plus#(BIT1(m),BIT1(n)) BIT0#(SUC(plus(m,n))) (160)
exp#(BIT1(m),BIT1(n)) exp#(BIT1(m),n) (155)
minus#(BIT0(m),BIT1(n)) minus#(m,n) (161)
gt#(NUMERAL(n),NUMERAL(m)) gt#(n,m) (162)
le#(NUMERAL(m),NUMERAL(n)) le#(m,n) (163)
lt#(BIT0(m),BIT0(n)) lt#(m,n) (164)
ge#(BIT0(n),BIT0(m)) ge#(n,m) (165)
exp#(0,BIT0(n)) exp#(0,n) (166)
gt#(BIT1(n),BIT1(m)) gt#(n,m) (167)
gt#(BIT0(n),BIT0(m)) gt#(n,m) (168)
exp#(BIT0(m),BIT0(n)) exp#(BIT0(m),n) (122)
mult#(NUMERAL(m),NUMERAL(n)) NUMERAL#(mult(m,n)) (169)
plus#(BIT1(m),BIT1(n)) plus#(m,n) (170)
minus#(BIT1(m),BIT0(n)) minus#(m,n) (171)
PRE#(BIT1(n)) BIT0#(n) (172)
mult#(BIT1(m),BIT0(n)) mult#(m,n) (173)
gt#(BIT1(n),BIT0(m)) ge#(n,m) (174)
ge#(BIT1(n),BIT1(m)) ge#(n,m) (175)
exp#(BIT1(m),BIT1(n)) mult#(mult(BIT1(m),exp(BIT1(m),n)),exp(BIT1(m),n)) (176)
le#(BIT0(n),0) le#(n,0) (177)
eq#(BIT0(n),0) eq#(n,0) (178)
plus#(BIT0(m),BIT0(n)) plus#(m,n) (179)
minus#(BIT0(m),BIT0(n)) minus#(m,n) (180)
le#(BIT1(m),BIT0(n)) lt#(m,n) (181)
minus#(BIT1(m),BIT1(n)) BIT0#(minus(m,n)) (182)
gt#(BIT0(n),BIT1(m)) gt#(n,m) (183)
minus#(BIT1(m),BIT0(n)) le#(n,m) (184)
eq#(0,BIT0(n)) eq#(0,n) (185)
plus#(BIT1(m),BIT1(n)) SUC#(plus(m,n)) (186)
eq#(BIT0(m),BIT0(n)) eq#(m,n) (187)
plus#(BIT1(m),BIT0(n)) plus#(m,n) (188)
exp#(BIT0(m),BIT1(n)) mult#(mult(BIT0(m),exp(BIT0(m),n)),exp(BIT0(m),n)) (189)
PRE#(BIT0(n)) PRE#(n) (190)
eq#(BIT1(m),BIT1(n)) eq#(m,n) (191)
minus#(NUMERAL(m),NUMERAL(n)) minus#(m,n) (192)
mult#(BIT1(m),BIT0(n)) BIT0#(BIT0(mult(m,n))) (193)
mult#(BIT0(m),BIT1(n)) BIT0#(mult(m,n)) (194)
ge#(BIT1(n),BIT0(m)) ge#(n,m) (195)
mult#(BIT1(m),BIT1(n)) plus#(BIT1(m),BIT0(n)) (196)
exp#(0,BIT0(n)) exp#(0,n) (166)
minus#(NUMERAL(m),NUMERAL(n)) NUMERAL#(minus(m,n)) (197)
mult#(BIT1(m),BIT0(n)) BIT0#(mult(m,n)) (198)
mult#(BIT0(m),BIT0(n)) BIT0#(BIT0(mult(m,n))) (199)
minus#(BIT0(m),BIT1(n)) PRE#(BIT0(minus(m,n))) (200)
lt#(0,BIT0(n)) lt#(0,n) (201)

1.1 Dependency Graph Processor

The dependency pairs are split into 19 components.