YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty Termination of the given CSR could be proven: (0) CSR (1) CSRRRRProof [EQUIVALENT, 42 ms] (2) CSR (3) CSRRRRProof [EQUIVALENT, 0 ms] (4) CSR (5) CSRRRRProof [EQUIVALENT, 0 ms] (6) CSR (7) CSRRRRProof [EQUIVALENT, 0 ms] (8) CSR (9) CSRRRRProof [EQUIVALENT, 0 ms] (10) CSR (11) CSRRRRProof [EQUIVALENT, 0 ms] (12) CSR (13) RisEmptyProof [EQUIVALENT, 3 ms] (14) YES ---------------------------------------- (0) Obligation: Context-sensitive rewrite system: The TRS R consists of the following rules: incr(nil) -> nil incr(cons(X, L)) -> cons(s(X), incr(L)) adx(nil) -> nil adx(cons(X, L)) -> incr(cons(X, adx(L))) nats -> adx(zeros) zeros -> cons(0, zeros) head(cons(X, L)) -> X tail(cons(X, L)) -> L The replacement map contains the following entries: incr: {1} nil: empty set cons: {1} s: {1} adx: {1} nats: empty set zeros: empty set 0: empty set head: {1} tail: {1} ---------------------------------------- (1) CSRRRRProof (EQUIVALENT) The following CSR is given: Context-sensitive rewrite system: The TRS R consists of the following rules: incr(nil) -> nil incr(cons(X, L)) -> cons(s(X), incr(L)) adx(nil) -> nil adx(cons(X, L)) -> incr(cons(X, adx(L))) nats -> adx(zeros) zeros -> cons(0, zeros) head(cons(X, L)) -> X tail(cons(X, L)) -> L The replacement map contains the following entries: incr: {1} nil: empty set cons: {1} s: {1} adx: {1} nats: empty set zeros: empty set 0: empty set head: {1} tail: {1} Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(adx(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 + x_2 POL(head(x_1)) = 1 + x_1 POL(incr(x_1)) = x_1 POL(nats) = 1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(tail(x_1)) = x_1 POL(zeros) = 1 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: head(cons(X, L)) -> X ---------------------------------------- (2) Obligation: Context-sensitive rewrite system: The TRS R consists of the following rules: incr(nil) -> nil incr(cons(X, L)) -> cons(s(X), incr(L)) adx(nil) -> nil adx(cons(X, L)) -> incr(cons(X, adx(L))) nats -> adx(zeros) zeros -> cons(0, zeros) tail(cons(X, L)) -> L The replacement map contains the following entries: incr: {1} nil: empty set cons: {1} s: {1} adx: {1} nats: empty set zeros: empty set 0: empty set tail: {1} ---------------------------------------- (3) CSRRRRProof (EQUIVALENT) The following CSR is given: Context-sensitive rewrite system: The TRS R consists of the following rules: incr(nil) -> nil incr(cons(X, L)) -> cons(s(X), incr(L)) adx(nil) -> nil adx(cons(X, L)) -> incr(cons(X, adx(L))) nats -> adx(zeros) zeros -> cons(0, zeros) tail(cons(X, L)) -> L The replacement map contains the following entries: incr: {1} nil: empty set cons: {1} s: {1} adx: {1} nats: empty set zeros: empty set 0: empty set tail: {1} Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(adx(x_1)) = 1 + x_1 POL(cons(x_1, x_2)) = x_1 + x_2 POL(incr(x_1)) = x_1 POL(nats) = 1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(tail(x_1)) = x_1 POL(zeros) = 0 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: adx(nil) -> nil ---------------------------------------- (4) Obligation: Context-sensitive rewrite system: The TRS R consists of the following rules: incr(nil) -> nil incr(cons(X, L)) -> cons(s(X), incr(L)) adx(cons(X, L)) -> incr(cons(X, adx(L))) nats -> adx(zeros) zeros -> cons(0, zeros) tail(cons(X, L)) -> L The replacement map contains the following entries: incr: {1} nil: empty set cons: {1} s: {1} adx: {1} nats: empty set zeros: empty set 0: empty set tail: {1} ---------------------------------------- (5) CSRRRRProof (EQUIVALENT) The following CSR is given: Context-sensitive rewrite system: The TRS R consists of the following rules: incr(nil) -> nil incr(cons(X, L)) -> cons(s(X), incr(L)) adx(cons(X, L)) -> incr(cons(X, adx(L))) nats -> adx(zeros) zeros -> cons(0, zeros) tail(cons(X, L)) -> L The replacement map contains the following entries: incr: {1} nil: empty set cons: {1} s: {1} adx: {1} nats: empty set zeros: empty set 0: empty set tail: {1} Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(adx(x_1)) = 1 + x_1 POL(cons(x_1, x_2)) = x_1 + x_2 POL(incr(x_1)) = x_1 POL(nats) = 1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(tail(x_1)) = 1 + x_1 POL(zeros) = 0 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: tail(cons(X, L)) -> L ---------------------------------------- (6) Obligation: Context-sensitive rewrite system: The TRS R consists of the following rules: incr(nil) -> nil incr(cons(X, L)) -> cons(s(X), incr(L)) adx(cons(X, L)) -> incr(cons(X, adx(L))) nats -> adx(zeros) zeros -> cons(0, zeros) The replacement map contains the following entries: incr: {1} nil: empty set cons: {1} s: {1} adx: {1} nats: empty set zeros: empty set 0: empty set ---------------------------------------- (7) CSRRRRProof (EQUIVALENT) The following CSR is given: Context-sensitive rewrite system: The TRS R consists of the following rules: incr(nil) -> nil incr(cons(X, L)) -> cons(s(X), incr(L)) adx(cons(X, L)) -> incr(cons(X, adx(L))) nats -> adx(zeros) zeros -> cons(0, zeros) The replacement map contains the following entries: incr: {1} nil: empty set cons: {1} s: {1} adx: {1} nats: empty set zeros: empty set 0: empty set Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(adx(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 POL(incr(x_1)) = x_1 POL(nats) = 1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(zeros) = 1 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: zeros -> cons(0, zeros) ---------------------------------------- (8) Obligation: Context-sensitive rewrite system: The TRS R consists of the following rules: incr(nil) -> nil incr(cons(X, L)) -> cons(s(X), incr(L)) adx(cons(X, L)) -> incr(cons(X, adx(L))) nats -> adx(zeros) The replacement map contains the following entries: incr: {1} nil: empty set cons: {1} s: {1} adx: {1} nats: empty set zeros: empty set ---------------------------------------- (9) CSRRRRProof (EQUIVALENT) The following CSR is given: Context-sensitive rewrite system: The TRS R consists of the following rules: incr(nil) -> nil incr(cons(X, L)) -> cons(s(X), incr(L)) adx(cons(X, L)) -> incr(cons(X, adx(L))) nats -> adx(zeros) The replacement map contains the following entries: incr: {1} nil: empty set cons: {1} s: {1} adx: {1} nats: empty set zeros: empty set Used ordering: Polynomial interpretation [POLO]: POL(adx(x_1)) = 2 + 2*x_1 POL(cons(x_1, x_2)) = 1 + x_1 POL(incr(x_1)) = 1 + 2*x_1 POL(nats) = 2 POL(nil) = 0 POL(s(x_1)) = 2*x_1 POL(zeros) = 0 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: incr(nil) -> nil incr(cons(X, L)) -> cons(s(X), incr(L)) adx(cons(X, L)) -> incr(cons(X, adx(L))) ---------------------------------------- (10) Obligation: Context-sensitive rewrite system: The TRS R consists of the following rules: nats -> adx(zeros) The replacement map contains the following entries: adx: {1} nats: empty set zeros: empty set ---------------------------------------- (11) CSRRRRProof (EQUIVALENT) The following CSR is given: Context-sensitive rewrite system: The TRS R consists of the following rules: nats -> adx(zeros) The replacement map contains the following entries: adx: {1} nats: empty set zeros: empty set Used ordering: Polynomial interpretation [POLO]: POL(adx(x_1)) = x_1 POL(nats) = 1 POL(zeros) = 0 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: nats -> adx(zeros) ---------------------------------------- (12) Obligation: Context-sensitive rewrite system: R is empty. ---------------------------------------- (13) RisEmptyProof (EQUIVALENT) The CSR R is empty. Hence, termination is trivially proven. ---------------------------------------- (14) YES