The relative rewrite relation R/S is considered where R is the following TRS
*(@x,@y) | → | #mult(@x,@y) | (1) |
+(@x,@y) | → | #add(@x,@y) | (2) |
computeLine(@line,@m,@acc) | → | computeLine#1(@line,@acc,@m) | (3) |
computeLine#1(::(@x,@xs),@acc,@m) | → | computeLine#2(@m,@acc,@x,@xs) | (4) |
computeLine#1(nil,@acc,@m) | → | @acc | (5) |
computeLine#2(::(@l,@ls),@acc,@x,@xs) | → | computeLine(@xs,@ls,lineMult(@x,@l,@acc)) | (6) |
computeLine#2(nil,@acc,@x,@xs) | → | nil | (7) |
lineMult(@n,@l1,@l2) | → | lineMult#1(@l1,@l2,@n) | (8) |
lineMult#1(::(@x,@xs),@l2,@n) | → | lineMult#2(@l2,@n,@x,@xs) | (9) |
lineMult#1(nil,@l2,@n) | → | nil | (10) |
lineMult#2(::(@y,@ys),@n,@x,@xs) | → | ::(+(*(@x,@n),@y),lineMult(@n,@xs,@ys)) | (11) |
lineMult#2(nil,@n,@x,@xs) | → | ::(*(@x,@n),lineMult(@n,@xs,nil)) | (12) |
matrixMult(@m1,@m2) | → | matrixMult#1(@m1,@m2) | (13) |
matrixMult#1(::(@l,@ls),@m2) | → | ::(computeLine(@l,@m2,nil),matrixMult(@ls,@m2)) | (14) |
matrixMult#1(nil,@m2) | → | nil | (15) |
and S is the following TRS.
#add(#0,@y) | → | @y | (16) |
#add(#neg(#s(#0)),@y) | → | #pred(@y) | (17) |
#add(#neg(#s(#s(@x))),@y) | → | #pred(#add(#pos(#s(@x)),@y)) | (18) |
#add(#pos(#s(#0)),@y) | → | #succ(@y) | (19) |
#add(#pos(#s(#s(@x))),@y) | → | #succ(#add(#pos(#s(@x)),@y)) | (20) |
#mult(#0,#0) | → | #0 | (21) |
#mult(#0,#neg(@y)) | → | #0 | (22) |
#mult(#0,#pos(@y)) | → | #0 | (23) |
#mult(#neg(@x),#0) | → | #0 | (24) |
#mult(#neg(@x),#neg(@y)) | → | #pos(#natmult(@x,@y)) | (25) |
#mult(#neg(@x),#pos(@y)) | → | #neg(#natmult(@x,@y)) | (26) |
#mult(#pos(@x),#0) | → | #0 | (27) |
#mult(#pos(@x),#neg(@y)) | → | #neg(#natmult(@x,@y)) | (28) |
#mult(#pos(@x),#pos(@y)) | → | #pos(#natmult(@x,@y)) | (29) |
#natmult(#0,@y) | → | #0 | (30) |
#natmult(#s(@x),@y) | → | #add(#pos(@y),#natmult(@x,@y)) | (31) |
#pred(#0) | → | #neg(#s(#0)) | (32) |
#pred(#neg(#s(@x))) | → | #neg(#s(#s(@x))) | (33) |
#pred(#pos(#s(#0))) | → | #0 | (34) |
#pred(#pos(#s(#s(@x)))) | → | #pos(#s(@x)) | (35) |
#succ(#0) | → | #pos(#s(#0)) | (36) |
#succ(#neg(#s(#0))) | → | #0 | (37) |
#succ(#neg(#s(#s(@x)))) | → | #neg(#s(@x)) | (38) |
#succ(#pos(#s(@x))) | → | #pos(#s(#s(@x))) | (39) |
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
#add#(#0,z0) |
#add#(#neg(#s(#0)),z0) |
#add#(#neg(#s(#s(z0))),z1) |
#add#(#pos(#s(#0)),z0) |
#add#(#pos(#s(#s(z0))),z1) |
#mult#(#0,#0) |
#mult#(#0,#neg(z0)) |
#mult#(#0,#pos(z0)) |
#mult#(#neg(z0),#0) |
#mult#(#neg(z0),#neg(z1)) |
#mult#(#neg(z0),#pos(z1)) |
#mult#(#pos(z0),#0) |
#mult#(#pos(z0),#neg(z1)) |
#mult#(#pos(z0),#pos(z1)) |
#natmult#(#0,z0) |
#natmult#(#s(z0),z1) |
#pred#(#0) |
#pred#(#neg(#s(z0))) |
#pred#(#pos(#s(#0))) |
#pred#(#pos(#s(#s(z0)))) |
#succ#(#0) |
#succ#(#neg(#s(#0))) |
#succ#(#neg(#s(#s(z0)))) |
#succ#(#pos(#s(z0))) |
*#(z0,z1) |
+#(z0,z1) |
computeLine#(z0,z1,z2) |
computeLine#1#(::(z0,z1),z2,z3) |
computeLine#1#(nil,z0,z1) |
computeLine#2#(::(z0,z1),z2,z3,z4) |
computeLine#2#(nil,z0,z1,z2) |
lineMult#(z0,z1,z2) |
lineMult#1#(::(z0,z1),z2,z3) |
lineMult#1#(nil,z0,z1) |
lineMult#2#(::(z0,z1),z2,z3,z4) |
lineMult#2#(nil,z0,z1,z2) |
matrixMult#(z0,z1) |
matrixMult#1#(::(z0,z1),z2) |
matrixMult#1#(nil,z0) |
computeLine(z0,z1,z2) | → | computeLine#1(z0,z2,z1) | (44) |
computeLine#1(::(z0,z1),z2,z3) | → | computeLine#2(z3,z2,z0,z1) | (46) |
computeLine#1(nil,z0,z1) | → | z0 | (48) |
computeLine#2(::(z0,z1),z2,z3,z4) | → | computeLine(z4,z1,lineMult(z3,z0,z2)) | (50) |
computeLine#2(nil,z0,z1,z2) | → | nil | (52) |
matrixMult(z0,z1) | → | matrixMult#1(z0,z1) | (64) |
matrixMult#1(::(z0,z1),z2) | → | ::(computeLine(z0,z2,nil),matrixMult(z1,z2)) | (66) |
matrixMult#1(nil,z0) | → | nil | (68) |
matrixMult#(z0,z1) | → | c36(matrixMult#1#(z0,z1)) | (65) |
matrixMult#1#(::(z0,z1),z2) | → | c37(computeLine#(z0,z2,nil),matrixMult#(z1,z2)) | (67) |
matrixMult#1#(nil,z0) | → | c38 | (69) |
[c] | = | 0 |
[c1(x1)] | = | 1 · x1 + 0 |
[c2(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c3(x1)] | = | 1 · x1 + 0 |
[c4(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c5] | = | 0 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8] | = | 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[c10(x1)] | = | 1 · x1 + 0 |
[c11] | = | 0 |
[c12(x1)] | = | 1 · x1 + 0 |
[c13(x1)] | = | 1 · x1 + 0 |
[c14] | = | 0 |
[c15(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c16] | = | 0 |
[c17] | = | 0 |
[c18] | = | 0 |
[c19] | = | 0 |
[c20] | = | 0 |
[c21] | = | 0 |
[c22] | = | 0 |
[c23] | = | 0 |
[c24(x1)] | = | 1 · x1 + 0 |
[c25(x1)] | = | 1 · x1 + 0 |
[c26(x1)] | = | 1 · x1 + 0 |
[c27(x1)] | = | 1 · x1 + 0 |
[c28] | = | 0 |
[c29(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c30] | = | 0 |
[c31(x1)] | = | 1 · x1 + 0 |
[c32(x1)] | = | 1 · x1 + 0 |
[c33] | = | 0 |
[c34(x1, x2, x3)] | = | 1 · x1 + 0 + 1 · x2 + 1 · x3 |
[c35(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c36(x1)] | = | 1 · x1 + 0 |
[c37(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c38] | = | 0 |
[#add(x1, x2)] | = | 2 |
[#succ(x1)] | = | 2 |
[#natmult(x1, x2)] | = | 3 · x1 + 0 |
[lineMult(x1, x2, x3)] | = | 3 + 3 · x1 + 3 · x2 + 3 · x3 |
[lineMult#1(x1, x2, x3)] | = | 3 + 3 · x1 + 3 · x2 + 3 · x3 |
[lineMult#2(x1,...,x4)] | = | 3 + 3 · x1 + 3 · x2 + 3 · x3 + 3 · x4 |
[+(x1, x2)] | = | 3 + 3 · x1 + 3 · x2 |
[*(x1, x2)] | = | 0 |
[#mult(x1, x2)] | = | 3 + 3 · x1 + 3 · x2 |
[#pred(x1)] | = | 3 |
[#add#(x1, x2)] | = | 0 |
[#mult#(x1, x2)] | = | 0 |
[#natmult#(x1, x2)] | = | 0 |
[#pred#(x1)] | = | 0 |
[#succ#(x1)] | = | 0 |
[*#(x1, x2)] | = | 0 |
[+#(x1, x2)] | = | 0 |
[computeLine#(x1, x2, x3)] | = | 0 |
[computeLine#1#(x1, x2, x3)] | = | 0 |
[computeLine#2#(x1,...,x4)] | = | 0 |
[lineMult#(x1, x2, x3)] | = | 0 |
[lineMult#1#(x1, x2, x3)] | = | 0 |
[lineMult#2#(x1,...,x4)] | = | 0 |
[matrixMult#(x1, x2)] | = | 3 + 2 · x1 + 3 · x2 |
[matrixMult#1#(x1, x2)] | = | 2 · x1 + 0 + 3 · x2 |
[#0] | = | 0 |
[#neg(x1)] | = | 0 |
[#pos(x1)] | = | 0 |
[#s(x1)] | = | 0 |
[::(x1, x2)] | = | 2 + 1 · x2 |
[nil] | = | 2 |
#add#(#0,z0) | → | c | (71) |
#add#(#neg(#s(#0)),z0) | → | c1(#pred#(z0)) | (73) |
#add#(#neg(#s(#s(z0))),z1) | → | c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (75) |
#add#(#pos(#s(#0)),z0) | → | c3(#succ#(z0)) | (77) |
#add#(#pos(#s(#s(z0))),z1) | → | c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (79) |
#mult#(#0,#0) | → | c5 | (80) |
#mult#(#0,#neg(z0)) | → | c6 | (82) |
#mult#(#0,#pos(z0)) | → | c7 | (84) |
#mult#(#neg(z0),#0) | → | c8 | (86) |
#mult#(#neg(z0),#neg(z1)) | → | c9(#natmult#(z0,z1)) | (88) |
#mult#(#neg(z0),#pos(z1)) | → | c10(#natmult#(z0,z1)) | (90) |
#mult#(#pos(z0),#0) | → | c11 | (92) |
#mult#(#pos(z0),#neg(z1)) | → | c12(#natmult#(z0,z1)) | (94) |
#mult#(#pos(z0),#pos(z1)) | → | c13(#natmult#(z0,z1)) | (96) |
#natmult#(#0,z0) | → | c14 | (98) |
#natmult#(#s(z0),z1) | → | c15(#add#(#pos(z1),#natmult(z0,z1)),#natmult#(z0,z1)) | (100) |
#pred#(#0) | → | c16 | (101) |
#pred#(#neg(#s(z0))) | → | c17 | (103) |
#pred#(#pos(#s(#0))) | → | c18 | (104) |
#pred#(#pos(#s(#s(z0)))) | → | c19 | (106) |
#succ#(#0) | → | c20 | (107) |
#succ#(#neg(#s(#0))) | → | c21 | (108) |
#succ#(#neg(#s(#s(z0)))) | → | c22 | (110) |
#succ#(#pos(#s(z0))) | → | c23 | (112) |
*#(z0,z1) | → | c24(#mult#(z0,z1)) | (41) |
+#(z0,z1) | → | c25(#add#(z0,z1)) | (43) |
computeLine#(z0,z1,z2) | → | c26(computeLine#1#(z0,z2,z1)) | (45) |
computeLine#1#(::(z0,z1),z2,z3) | → | c27(computeLine#2#(z3,z2,z0,z1)) | (47) |
computeLine#1#(nil,z0,z1) | → | c28 | (49) |
computeLine#2#(::(z0,z1),z2,z3,z4) | → | c29(computeLine#(z4,z1,lineMult(z3,z0,z2)),lineMult#(z3,z0,z2)) | (51) |
computeLine#2#(nil,z0,z1,z2) | → | c30 | (53) |
lineMult#(z0,z1,z2) | → | c31(lineMult#1#(z1,z2,z0)) | (55) |
lineMult#1#(::(z0,z1),z2,z3) | → | c32(lineMult#2#(z2,z3,z0,z1)) | (57) |
lineMult#1#(nil,z0,z1) | → | c33 | (59) |
lineMult#2#(::(z0,z1),z2,z3,z4) | → | c34(+#(*(z3,z2),z0),*#(z3,z2),lineMult#(z2,z4,z1)) | (61) |
lineMult#2#(nil,z0,z1,z2) | → | c35(*#(z1,z0),lineMult#(z0,z2,nil)) | (63) |
matrixMult#(z0,z1) | → | c36(matrixMult#1#(z0,z1)) | (65) |
matrixMult#1#(::(z0,z1),z2) | → | c37(computeLine#(z0,z2,nil),matrixMult#(z1,z2)) | (67) |
matrixMult#1#(nil,z0) | → | c38 | (69) |
computeLine#2#(::(z0,z1),z2,z3,z4) | → | c29(computeLine#(z4,z1,lineMult(z3,z0,z2)),lineMult#(z3,z0,z2)) | (51) |
computeLine#2#(nil,z0,z1,z2) | → | c30 | (53) |
[c] | = | 0 |
[c1(x1)] | = | 1 · x1 + 0 |
[c2(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c3(x1)] | = | 1 · x1 + 0 |
[c4(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c5] | = | 0 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8] | = | 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[c10(x1)] | = | 1 · x1 + 0 |
[c11] | = | 0 |
[c12(x1)] | = | 1 · x1 + 0 |
[c13(x1)] | = | 1 · x1 + 0 |
[c14] | = | 0 |
[c15(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c16] | = | 0 |
[c17] | = | 0 |
[c18] | = | 0 |
[c19] | = | 0 |
[c20] | = | 0 |
[c21] | = | 0 |
[c22] | = | 0 |
[c23] | = | 0 |
[c24(x1)] | = | 1 · x1 + 0 |
[c25(x1)] | = | 1 · x1 + 0 |
[c26(x1)] | = | 1 · x1 + 0 |
[c27(x1)] | = | 1 · x1 + 0 |
[c28] | = | 0 |
[c29(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c30] | = | 0 |
[c31(x1)] | = | 1 · x1 + 0 |
[c32(x1)] | = | 1 · x1 + 0 |
[c33] | = | 0 |
[c34(x1, x2, x3)] | = | 1 · x1 + 0 + 1 · x2 + 1 · x3 |
[c35(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c36(x1)] | = | 1 · x1 + 0 |
[c37(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c38] | = | 0 |
[#add(x1, x2)] | = | 0 |
[#succ(x1)] | = | 1 + 1 · x1 |
[#natmult(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[lineMult(x1, x2, x3)] | = | 1 + 1 · x1 + 1 · x2 + 1 · x3 |
[lineMult#1(x1, x2, x3)] | = | 1 + 1 · x1 + 1 · x2 + 1 · x3 |
[lineMult#2(x1,...,x4)] | = | 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x4 |
[+(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[*(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[#mult(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[#pred(x1)] | = | 1 + 1 · x1 |
[#add#(x1, x2)] | = | 0 |
[#mult#(x1, x2)] | = | 0 |
[#natmult#(x1, x2)] | = | 0 |
[#pred#(x1)] | = | 0 |
[#succ#(x1)] | = | 0 |
[*#(x1, x2)] | = | 0 |
[+#(x1, x2)] | = | 0 |
[computeLine#(x1, x2, x3)] | = | 1 · x1 + 0 |
[computeLine#1#(x1, x2, x3)] | = | 1 · x1 + 0 |
[computeLine#2#(x1,...,x4)] | = | 1 + 1 · x3 + 1 · x4 |
[lineMult#(x1, x2, x3)] | = | 1 · x1 + 0 |
[lineMult#1#(x1, x2, x3)] | = | 1 · x3 + 0 |
[lineMult#2#(x1,...,x4)] | = | 1 · x2 + 0 |
[matrixMult#(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[matrixMult#1#(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[#0] | = | 0 |
[#neg(x1)] | = | 0 |
[#pos(x1)] | = | 0 |
[#s(x1)] | = | 0 |
[::(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[nil] | = | 0 |
#add#(#0,z0) | → | c | (71) |
#add#(#neg(#s(#0)),z0) | → | c1(#pred#(z0)) | (73) |
#add#(#neg(#s(#s(z0))),z1) | → | c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (75) |
#add#(#pos(#s(#0)),z0) | → | c3(#succ#(z0)) | (77) |
#add#(#pos(#s(#s(z0))),z1) | → | c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (79) |
#mult#(#0,#0) | → | c5 | (80) |
#mult#(#0,#neg(z0)) | → | c6 | (82) |
#mult#(#0,#pos(z0)) | → | c7 | (84) |
#mult#(#neg(z0),#0) | → | c8 | (86) |
#mult#(#neg(z0),#neg(z1)) | → | c9(#natmult#(z0,z1)) | (88) |
#mult#(#neg(z0),#pos(z1)) | → | c10(#natmult#(z0,z1)) | (90) |
#mult#(#pos(z0),#0) | → | c11 | (92) |
#mult#(#pos(z0),#neg(z1)) | → | c12(#natmult#(z0,z1)) | (94) |
#mult#(#pos(z0),#pos(z1)) | → | c13(#natmult#(z0,z1)) | (96) |
#natmult#(#0,z0) | → | c14 | (98) |
#natmult#(#s(z0),z1) | → | c15(#add#(#pos(z1),#natmult(z0,z1)),#natmult#(z0,z1)) | (100) |
#pred#(#0) | → | c16 | (101) |
#pred#(#neg(#s(z0))) | → | c17 | (103) |
#pred#(#pos(#s(#0))) | → | c18 | (104) |
#pred#(#pos(#s(#s(z0)))) | → | c19 | (106) |
#succ#(#0) | → | c20 | (107) |
#succ#(#neg(#s(#0))) | → | c21 | (108) |
#succ#(#neg(#s(#s(z0)))) | → | c22 | (110) |
#succ#(#pos(#s(z0))) | → | c23 | (112) |
*#(z0,z1) | → | c24(#mult#(z0,z1)) | (41) |
+#(z0,z1) | → | c25(#add#(z0,z1)) | (43) |
computeLine#(z0,z1,z2) | → | c26(computeLine#1#(z0,z2,z1)) | (45) |
computeLine#1#(::(z0,z1),z2,z3) | → | c27(computeLine#2#(z3,z2,z0,z1)) | (47) |
computeLine#1#(nil,z0,z1) | → | c28 | (49) |
computeLine#2#(::(z0,z1),z2,z3,z4) | → | c29(computeLine#(z4,z1,lineMult(z3,z0,z2)),lineMult#(z3,z0,z2)) | (51) |
computeLine#2#(nil,z0,z1,z2) | → | c30 | (53) |
lineMult#(z0,z1,z2) | → | c31(lineMult#1#(z1,z2,z0)) | (55) |
lineMult#1#(::(z0,z1),z2,z3) | → | c32(lineMult#2#(z2,z3,z0,z1)) | (57) |
lineMult#1#(nil,z0,z1) | → | c33 | (59) |
lineMult#2#(::(z0,z1),z2,z3,z4) | → | c34(+#(*(z3,z2),z0),*#(z3,z2),lineMult#(z2,z4,z1)) | (61) |
lineMult#2#(nil,z0,z1,z2) | → | c35(*#(z1,z0),lineMult#(z0,z2,nil)) | (63) |
matrixMult#(z0,z1) | → | c36(matrixMult#1#(z0,z1)) | (65) |
matrixMult#1#(::(z0,z1),z2) | → | c37(computeLine#(z0,z2,nil),matrixMult#(z1,z2)) | (67) |
matrixMult#1#(nil,z0) | → | c38 | (69) |
computeLine#1#(::(z0,z1),z2,z3) | → | c27(computeLine#2#(z3,z2,z0,z1)) | (47) |
[c] | = | 0 |
[c1(x1)] | = | 1 · x1 + 0 |
[c2(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c3(x1)] | = | 1 · x1 + 0 |
[c4(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c5] | = | 0 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8] | = | 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[c10(x1)] | = | 1 · x1 + 0 |
[c11] | = | 0 |
[c12(x1)] | = | 1 · x1 + 0 |
[c13(x1)] | = | 1 · x1 + 0 |
[c14] | = | 0 |
[c15(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c16] | = | 0 |
[c17] | = | 0 |
[c18] | = | 0 |
[c19] | = | 0 |
[c20] | = | 0 |
[c21] | = | 0 |
[c22] | = | 0 |
[c23] | = | 0 |
[c24(x1)] | = | 1 · x1 + 0 |
[c25(x1)] | = | 1 · x1 + 0 |
[c26(x1)] | = | 1 · x1 + 0 |
[c27(x1)] | = | 1 · x1 + 0 |
[c28] | = | 0 |
[c29(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c30] | = | 0 |
[c31(x1)] | = | 1 · x1 + 0 |
[c32(x1)] | = | 1 · x1 + 0 |
[c33] | = | 0 |
[c34(x1, x2, x3)] | = | 1 · x1 + 0 + 1 · x2 + 1 · x3 |
[c35(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c36(x1)] | = | 1 · x1 + 0 |
[c37(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c38] | = | 0 |
[#add(x1, x2)] | = | 1 + 1 · x2 |
[#succ(x1)] | = | 0 |
[#natmult(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[lineMult(x1, x2, x3)] | = | 1 + 1 · x1 + 1 · x2 + 1 · x3 |
[lineMult#1(x1, x2, x3)] | = | 1 + 1 · x1 + 1 · x2 + 1 · x3 |
[lineMult#2(x1,...,x4)] | = | 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x4 |
[+(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[*(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[#mult(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[#pred(x1)] | = | 1 + 1 · x1 |
[#add#(x1, x2)] | = | 0 |
[#mult#(x1, x2)] | = | 0 |
[#natmult#(x1, x2)] | = | 0 |
[#pred#(x1)] | = | 0 |
[#succ#(x1)] | = | 0 |
[*#(x1, x2)] | = | 0 |
[+#(x1, x2)] | = | 0 |
[computeLine#(x1, x2, x3)] | = | 1 · x1 + 0 |
[computeLine#1#(x1, x2, x3)] | = | 1 · x1 + 0 |
[computeLine#2#(x1,...,x4)] | = | 1 · x3 + 0 + 1 · x4 |
[lineMult#(x1, x2, x3)] | = | 1 · x1 + 0 |
[lineMult#1#(x1, x2, x3)] | = | 1 · x3 + 0 |
[lineMult#2#(x1,...,x4)] | = | 1 · x2 + 0 |
[matrixMult#(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[matrixMult#1#(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[#0] | = | 0 |
[#neg(x1)] | = | 0 |
[#pos(x1)] | = | 0 |
[#s(x1)] | = | 0 |
[::(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[nil] | = | 0 |
#add#(#0,z0) | → | c | (71) |
#add#(#neg(#s(#0)),z0) | → | c1(#pred#(z0)) | (73) |
#add#(#neg(#s(#s(z0))),z1) | → | c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (75) |
#add#(#pos(#s(#0)),z0) | → | c3(#succ#(z0)) | (77) |
#add#(#pos(#s(#s(z0))),z1) | → | c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (79) |
#mult#(#0,#0) | → | c5 | (80) |
#mult#(#0,#neg(z0)) | → | c6 | (82) |
#mult#(#0,#pos(z0)) | → | c7 | (84) |
#mult#(#neg(z0),#0) | → | c8 | (86) |
#mult#(#neg(z0),#neg(z1)) | → | c9(#natmult#(z0,z1)) | (88) |
#mult#(#neg(z0),#pos(z1)) | → | c10(#natmult#(z0,z1)) | (90) |
#mult#(#pos(z0),#0) | → | c11 | (92) |
#mult#(#pos(z0),#neg(z1)) | → | c12(#natmult#(z0,z1)) | (94) |
#mult#(#pos(z0),#pos(z1)) | → | c13(#natmult#(z0,z1)) | (96) |
#natmult#(#0,z0) | → | c14 | (98) |
#natmult#(#s(z0),z1) | → | c15(#add#(#pos(z1),#natmult(z0,z1)),#natmult#(z0,z1)) | (100) |
#pred#(#0) | → | c16 | (101) |
#pred#(#neg(#s(z0))) | → | c17 | (103) |
#pred#(#pos(#s(#0))) | → | c18 | (104) |
#pred#(#pos(#s(#s(z0)))) | → | c19 | (106) |
#succ#(#0) | → | c20 | (107) |
#succ#(#neg(#s(#0))) | → | c21 | (108) |
#succ#(#neg(#s(#s(z0)))) | → | c22 | (110) |
#succ#(#pos(#s(z0))) | → | c23 | (112) |
*#(z0,z1) | → | c24(#mult#(z0,z1)) | (41) |
+#(z0,z1) | → | c25(#add#(z0,z1)) | (43) |
computeLine#(z0,z1,z2) | → | c26(computeLine#1#(z0,z2,z1)) | (45) |
computeLine#1#(::(z0,z1),z2,z3) | → | c27(computeLine#2#(z3,z2,z0,z1)) | (47) |
computeLine#1#(nil,z0,z1) | → | c28 | (49) |
computeLine#2#(::(z0,z1),z2,z3,z4) | → | c29(computeLine#(z4,z1,lineMult(z3,z0,z2)),lineMult#(z3,z0,z2)) | (51) |
computeLine#2#(nil,z0,z1,z2) | → | c30 | (53) |
lineMult#(z0,z1,z2) | → | c31(lineMult#1#(z1,z2,z0)) | (55) |
lineMult#1#(::(z0,z1),z2,z3) | → | c32(lineMult#2#(z2,z3,z0,z1)) | (57) |
lineMult#1#(nil,z0,z1) | → | c33 | (59) |
lineMult#2#(::(z0,z1),z2,z3,z4) | → | c34(+#(*(z3,z2),z0),*#(z3,z2),lineMult#(z2,z4,z1)) | (61) |
lineMult#2#(nil,z0,z1,z2) | → | c35(*#(z1,z0),lineMult#(z0,z2,nil)) | (63) |
matrixMult#(z0,z1) | → | c36(matrixMult#1#(z0,z1)) | (65) |
matrixMult#1#(::(z0,z1),z2) | → | c37(computeLine#(z0,z2,nil),matrixMult#(z1,z2)) | (67) |
matrixMult#1#(nil,z0) | → | c38 | (69) |
computeLine#1#(nil,z0,z1) | → | c28 | (49) |
[c] | = | 0 |
[c1(x1)] | = | 1 · x1 + 0 |
[c2(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c3(x1)] | = | 1 · x1 + 0 |
[c4(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c5] | = | 0 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8] | = | 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[c10(x1)] | = | 1 · x1 + 0 |
[c11] | = | 0 |
[c12(x1)] | = | 1 · x1 + 0 |
[c13(x1)] | = | 1 · x1 + 0 |
[c14] | = | 0 |
[c15(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c16] | = | 0 |
[c17] | = | 0 |
[c18] | = | 0 |
[c19] | = | 0 |
[c20] | = | 0 |
[c21] | = | 0 |
[c22] | = | 0 |
[c23] | = | 0 |
[c24(x1)] | = | 1 · x1 + 0 |
[c25(x1)] | = | 1 · x1 + 0 |
[c26(x1)] | = | 1 · x1 + 0 |
[c27(x1)] | = | 1 · x1 + 0 |
[c28] | = | 0 |
[c29(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c30] | = | 0 |
[c31(x1)] | = | 1 · x1 + 0 |
[c32(x1)] | = | 1 · x1 + 0 |
[c33] | = | 0 |
[c34(x1, x2, x3)] | = | 1 · x1 + 0 + 1 · x2 + 1 · x3 |
[c35(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c36(x1)] | = | 1 · x1 + 0 |
[c37(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c38] | = | 0 |
[#add(x1, x2)] | = | 1 · x2 + 0 |
[#succ(x1)] | = | 1 + 1 · x1 |
[#natmult(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[lineMult(x1, x2, x3)] | = | 1 + 1 · x1 + 1 · x2 + 1 · x3 |
[lineMult#1(x1, x2, x3)] | = | 1 + 1 · x1 + 1 · x2 + 1 · x3 |
[lineMult#2(x1,...,x4)] | = | 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x4 |
[+(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[*(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[#mult(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[#pred(x1)] | = | 1 + 1 · x1 |
[#add#(x1, x2)] | = | 0 |
[#mult#(x1, x2)] | = | 0 |
[#natmult#(x1, x2)] | = | 0 |
[#pred#(x1)] | = | 0 |
[#succ#(x1)] | = | 0 |
[*#(x1, x2)] | = | 0 |
[+#(x1, x2)] | = | 0 |
[computeLine#(x1, x2, x3)] | = | 1 · x1 + 0 |
[computeLine#1#(x1, x2, x3)] | = | 1 · x1 + 0 |
[computeLine#2#(x1,...,x4)] | = | 1 · x3 + 0 + 1 · x4 |
[lineMult#(x1, x2, x3)] | = | 1 · x1 + 0 |
[lineMult#1#(x1, x2, x3)] | = | 1 · x3 + 0 |
[lineMult#2#(x1,...,x4)] | = | 1 · x2 + 0 |
[matrixMult#(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[matrixMult#1#(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[#0] | = | 0 |
[#neg(x1)] | = | 0 |
[#pos(x1)] | = | 0 |
[#s(x1)] | = | 0 |
[::(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[nil] | = | 1 |
#add#(#0,z0) | → | c | (71) |
#add#(#neg(#s(#0)),z0) | → | c1(#pred#(z0)) | (73) |
#add#(#neg(#s(#s(z0))),z1) | → | c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (75) |
#add#(#pos(#s(#0)),z0) | → | c3(#succ#(z0)) | (77) |
#add#(#pos(#s(#s(z0))),z1) | → | c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (79) |
#mult#(#0,#0) | → | c5 | (80) |
#mult#(#0,#neg(z0)) | → | c6 | (82) |
#mult#(#0,#pos(z0)) | → | c7 | (84) |
#mult#(#neg(z0),#0) | → | c8 | (86) |
#mult#(#neg(z0),#neg(z1)) | → | c9(#natmult#(z0,z1)) | (88) |
#mult#(#neg(z0),#pos(z1)) | → | c10(#natmult#(z0,z1)) | (90) |
#mult#(#pos(z0),#0) | → | c11 | (92) |
#mult#(#pos(z0),#neg(z1)) | → | c12(#natmult#(z0,z1)) | (94) |
#mult#(#pos(z0),#pos(z1)) | → | c13(#natmult#(z0,z1)) | (96) |
#natmult#(#0,z0) | → | c14 | (98) |
#natmult#(#s(z0),z1) | → | c15(#add#(#pos(z1),#natmult(z0,z1)),#natmult#(z0,z1)) | (100) |
#pred#(#0) | → | c16 | (101) |
#pred#(#neg(#s(z0))) | → | c17 | (103) |
#pred#(#pos(#s(#0))) | → | c18 | (104) |
#pred#(#pos(#s(#s(z0)))) | → | c19 | (106) |
#succ#(#0) | → | c20 | (107) |
#succ#(#neg(#s(#0))) | → | c21 | (108) |
#succ#(#neg(#s(#s(z0)))) | → | c22 | (110) |
#succ#(#pos(#s(z0))) | → | c23 | (112) |
*#(z0,z1) | → | c24(#mult#(z0,z1)) | (41) |
+#(z0,z1) | → | c25(#add#(z0,z1)) | (43) |
computeLine#(z0,z1,z2) | → | c26(computeLine#1#(z0,z2,z1)) | (45) |
computeLine#1#(::(z0,z1),z2,z3) | → | c27(computeLine#2#(z3,z2,z0,z1)) | (47) |
computeLine#1#(nil,z0,z1) | → | c28 | (49) |
computeLine#2#(::(z0,z1),z2,z3,z4) | → | c29(computeLine#(z4,z1,lineMult(z3,z0,z2)),lineMult#(z3,z0,z2)) | (51) |
computeLine#2#(nil,z0,z1,z2) | → | c30 | (53) |
lineMult#(z0,z1,z2) | → | c31(lineMult#1#(z1,z2,z0)) | (55) |
lineMult#1#(::(z0,z1),z2,z3) | → | c32(lineMult#2#(z2,z3,z0,z1)) | (57) |
lineMult#1#(nil,z0,z1) | → | c33 | (59) |
lineMult#2#(::(z0,z1),z2,z3,z4) | → | c34(+#(*(z3,z2),z0),*#(z3,z2),lineMult#(z2,z4,z1)) | (61) |
lineMult#2#(nil,z0,z1,z2) | → | c35(*#(z1,z0),lineMult#(z0,z2,nil)) | (63) |
matrixMult#(z0,z1) | → | c36(matrixMult#1#(z0,z1)) | (65) |
matrixMult#1#(::(z0,z1),z2) | → | c37(computeLine#(z0,z2,nil),matrixMult#(z1,z2)) | (67) |
matrixMult#1#(nil,z0) | → | c38 | (69) |
computeLine#(z0,z1,z2) | → | c26(computeLine#1#(z0,z2,z1)) | (45) |
[c] | = | 0 |
[c1(x1)] | = | 1 · x1 + 0 |
[c2(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c3(x1)] | = | 1 · x1 + 0 |
[c4(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c5] | = | 0 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8] | = | 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[c10(x1)] | = | 1 · x1 + 0 |
[c11] | = | 0 |
[c12(x1)] | = | 1 · x1 + 0 |
[c13(x1)] | = | 1 · x1 + 0 |
[c14] | = | 0 |
[c15(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c16] | = | 0 |
[c17] | = | 0 |
[c18] | = | 0 |
[c19] | = | 0 |
[c20] | = | 0 |
[c21] | = | 0 |
[c22] | = | 0 |
[c23] | = | 0 |
[c24(x1)] | = | 1 · x1 + 0 |
[c25(x1)] | = | 1 · x1 + 0 |
[c26(x1)] | = | 1 · x1 + 0 |
[c27(x1)] | = | 1 · x1 + 0 |
[c28] | = | 0 |
[c29(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c30] | = | 0 |
[c31(x1)] | = | 1 · x1 + 0 |
[c32(x1)] | = | 1 · x1 + 0 |
[c33] | = | 0 |
[c34(x1, x2, x3)] | = | 1 · x1 + 0 + 1 · x2 + 1 · x3 |
[c35(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c36(x1)] | = | 1 · x1 + 0 |
[c37(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c38] | = | 0 |
[#add(x1, x2)] | = | 0 |
[#succ(x1)] | = | 1 + 1 · x1 |
[#natmult(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[lineMult(x1, x2, x3)] | = | 1 + 1 · x1 + 1 · x2 + 1 · x3 |
[lineMult#1(x1, x2, x3)] | = | 1 + 1 · x1 + 1 · x2 + 1 · x3 |
[lineMult#2(x1,...,x4)] | = | 1 + 1 · x1 + 1 · x2 + 1 · x3 + 1 · x4 |
[+(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[*(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[#mult(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[#pred(x1)] | = | 1 + 1 · x1 |
[#add#(x1, x2)] | = | 0 |
[#mult#(x1, x2)] | = | 0 |
[#natmult#(x1, x2)] | = | 0 |
[#pred#(x1)] | = | 0 |
[#succ#(x1)] | = | 0 |
[*#(x1, x2)] | = | 0 |
[+#(x1, x2)] | = | 0 |
[computeLine#(x1, x2, x3)] | = | 1 + 1 · x1 |
[computeLine#1#(x1, x2, x3)] | = | 1 · x1 + 0 |
[computeLine#2#(x1,...,x4)] | = | 1 + 1 · x3 + 1 · x4 |
[lineMult#(x1, x2, x3)] | = | 1 · x1 + 0 |
[lineMult#1#(x1, x2, x3)] | = | 1 · x3 + 0 |
[lineMult#2#(x1,...,x4)] | = | 1 · x2 + 0 |
[matrixMult#(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[matrixMult#1#(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[#0] | = | 0 |
[#neg(x1)] | = | 0 |
[#pos(x1)] | = | 0 |
[#s(x1)] | = | 0 |
[::(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[nil] | = | 0 |
#add#(#0,z0) | → | c | (71) |
#add#(#neg(#s(#0)),z0) | → | c1(#pred#(z0)) | (73) |
#add#(#neg(#s(#s(z0))),z1) | → | c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (75) |
#add#(#pos(#s(#0)),z0) | → | c3(#succ#(z0)) | (77) |
#add#(#pos(#s(#s(z0))),z1) | → | c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (79) |
#mult#(#0,#0) | → | c5 | (80) |
#mult#(#0,#neg(z0)) | → | c6 | (82) |
#mult#(#0,#pos(z0)) | → | c7 | (84) |
#mult#(#neg(z0),#0) | → | c8 | (86) |
#mult#(#neg(z0),#neg(z1)) | → | c9(#natmult#(z0,z1)) | (88) |
#mult#(#neg(z0),#pos(z1)) | → | c10(#natmult#(z0,z1)) | (90) |
#mult#(#pos(z0),#0) | → | c11 | (92) |
#mult#(#pos(z0),#neg(z1)) | → | c12(#natmult#(z0,z1)) | (94) |
#mult#(#pos(z0),#pos(z1)) | → | c13(#natmult#(z0,z1)) | (96) |
#natmult#(#0,z0) | → | c14 | (98) |
#natmult#(#s(z0),z1) | → | c15(#add#(#pos(z1),#natmult(z0,z1)),#natmult#(z0,z1)) | (100) |
#pred#(#0) | → | c16 | (101) |
#pred#(#neg(#s(z0))) | → | c17 | (103) |
#pred#(#pos(#s(#0))) | → | c18 | (104) |
#pred#(#pos(#s(#s(z0)))) | → | c19 | (106) |
#succ#(#0) | → | c20 | (107) |
#succ#(#neg(#s(#0))) | → | c21 | (108) |
#succ#(#neg(#s(#s(z0)))) | → | c22 | (110) |
#succ#(#pos(#s(z0))) | → | c23 | (112) |
*#(z0,z1) | → | c24(#mult#(z0,z1)) | (41) |
+#(z0,z1) | → | c25(#add#(z0,z1)) | (43) |
computeLine#(z0,z1,z2) | → | c26(computeLine#1#(z0,z2,z1)) | (45) |
computeLine#1#(::(z0,z1),z2,z3) | → | c27(computeLine#2#(z3,z2,z0,z1)) | (47) |
computeLine#1#(nil,z0,z1) | → | c28 | (49) |
computeLine#2#(::(z0,z1),z2,z3,z4) | → | c29(computeLine#(z4,z1,lineMult(z3,z0,z2)),lineMult#(z3,z0,z2)) | (51) |
computeLine#2#(nil,z0,z1,z2) | → | c30 | (53) |
lineMult#(z0,z1,z2) | → | c31(lineMult#1#(z1,z2,z0)) | (55) |
lineMult#1#(::(z0,z1),z2,z3) | → | c32(lineMult#2#(z2,z3,z0,z1)) | (57) |
lineMult#1#(nil,z0,z1) | → | c33 | (59) |
lineMult#2#(::(z0,z1),z2,z3,z4) | → | c34(+#(*(z3,z2),z0),*#(z3,z2),lineMult#(z2,z4,z1)) | (61) |
lineMult#2#(nil,z0,z1,z2) | → | c35(*#(z1,z0),lineMult#(z0,z2,nil)) | (63) |
matrixMult#(z0,z1) | → | c36(matrixMult#1#(z0,z1)) | (65) |
matrixMult#1#(::(z0,z1),z2) | → | c37(computeLine#(z0,z2,nil),matrixMult#(z1,z2)) | (67) |
matrixMult#1#(nil,z0) | → | c38 | (69) |
lineMult#1#(nil,z0,z1) | → | c33 | (59) |
[c] | = | 0 |
[c1(x1)] | = | 1 · x1 + 0 |
[c2(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c3(x1)] | = | 1 · x1 + 0 |
[c4(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c5] | = | 0 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8] | = | 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[c10(x1)] | = | 1 · x1 + 0 |
[c11] | = | 0 |
[c12(x1)] | = | 1 · x1 + 0 |
[c13(x1)] | = | 1 · x1 + 0 |
[c14] | = | 0 |
[c15(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c16] | = | 0 |
[c17] | = | 0 |
[c18] | = | 0 |
[c19] | = | 0 |
[c20] | = | 0 |
[c21] | = | 0 |
[c22] | = | 0 |
[c23] | = | 0 |
[c24(x1)] | = | 1 · x1 + 0 |
[c25(x1)] | = | 1 · x1 + 0 |
[c26(x1)] | = | 1 · x1 + 0 |
[c27(x1)] | = | 1 · x1 + 0 |
[c28] | = | 0 |
[c29(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c30] | = | 0 |
[c31(x1)] | = | 1 · x1 + 0 |
[c32(x1)] | = | 1 · x1 + 0 |
[c33] | = | 0 |
[c34(x1, x2, x3)] | = | 1 · x1 + 0 + 1 · x2 + 1 · x3 |
[c35(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c36(x1)] | = | 1 · x1 + 0 |
[c37(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c38] | = | 0 |
[#add(x1, x2)] | = | 0 |
[#succ(x1)] | = | 3 |
[#natmult(x1, x2)] | = | 3 · x1 + 0 |
[lineMult(x1, x2, x3)] | = | 3 + 3 · x1 + 3 · x2 + 2 · x3 |
[lineMult#1(x1, x2, x3)] | = | 3 + 3 · x1 + 3 · x2 + 3 · x3 |
[lineMult#2(x1,...,x4)] | = | 3 + 3 · x1 + 3 · x2 + 3 · x3 + 3 · x4 |
[+(x1, x2)] | = | 3 + 3 · x1 + 3 · x2 |
[*(x1, x2)] | = | 0 |
[#mult(x1, x2)] | = | 3 + 3 · x1 + 3 · x2 |
[#pred(x1)] | = | 3 |
[#add#(x1, x2)] | = | 0 |
[#mult#(x1, x2)] | = | 0 |
[#natmult#(x1, x2)] | = | 0 |
[#pred#(x1)] | = | 0 |
[#succ#(x1)] | = | 0 |
[*#(x1, x2)] | = | 0 |
[+#(x1, x2)] | = | 0 |
[computeLine#(x1, x2, x3)] | = | 2 · x1 + 0 |
[computeLine#1#(x1, x2, x3)] | = | 2 · x1 + 0 |
[computeLine#2#(x1,...,x4)] | = | 2 + 2 · x4 |
[lineMult#(x1, x2, x3)] | = | 1 |
[lineMult#1#(x1, x2, x3)] | = | 1 |
[lineMult#2#(x1,...,x4)] | = | 1 |
[matrixMult#(x1, x2)] | = | 2 + 2 · x1 + 3 · x2 |
[matrixMult#1#(x1, x2)] | = | 2 · x1 + 0 + 3 · x2 |
[#0] | = | 0 |
[#neg(x1)] | = | 0 |
[#pos(x1)] | = | 0 |
[#s(x1)] | = | 0 |
[::(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[nil] | = | 0 |
#add#(#0,z0) | → | c | (71) |
#add#(#neg(#s(#0)),z0) | → | c1(#pred#(z0)) | (73) |
#add#(#neg(#s(#s(z0))),z1) | → | c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (75) |
#add#(#pos(#s(#0)),z0) | → | c3(#succ#(z0)) | (77) |
#add#(#pos(#s(#s(z0))),z1) | → | c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (79) |
#mult#(#0,#0) | → | c5 | (80) |
#mult#(#0,#neg(z0)) | → | c6 | (82) |
#mult#(#0,#pos(z0)) | → | c7 | (84) |
#mult#(#neg(z0),#0) | → | c8 | (86) |
#mult#(#neg(z0),#neg(z1)) | → | c9(#natmult#(z0,z1)) | (88) |
#mult#(#neg(z0),#pos(z1)) | → | c10(#natmult#(z0,z1)) | (90) |
#mult#(#pos(z0),#0) | → | c11 | (92) |
#mult#(#pos(z0),#neg(z1)) | → | c12(#natmult#(z0,z1)) | (94) |
#mult#(#pos(z0),#pos(z1)) | → | c13(#natmult#(z0,z1)) | (96) |
#natmult#(#0,z0) | → | c14 | (98) |
#natmult#(#s(z0),z1) | → | c15(#add#(#pos(z1),#natmult(z0,z1)),#natmult#(z0,z1)) | (100) |
#pred#(#0) | → | c16 | (101) |
#pred#(#neg(#s(z0))) | → | c17 | (103) |
#pred#(#pos(#s(#0))) | → | c18 | (104) |
#pred#(#pos(#s(#s(z0)))) | → | c19 | (106) |
#succ#(#0) | → | c20 | (107) |
#succ#(#neg(#s(#0))) | → | c21 | (108) |
#succ#(#neg(#s(#s(z0)))) | → | c22 | (110) |
#succ#(#pos(#s(z0))) | → | c23 | (112) |
*#(z0,z1) | → | c24(#mult#(z0,z1)) | (41) |
+#(z0,z1) | → | c25(#add#(z0,z1)) | (43) |
computeLine#(z0,z1,z2) | → | c26(computeLine#1#(z0,z2,z1)) | (45) |
computeLine#1#(::(z0,z1),z2,z3) | → | c27(computeLine#2#(z3,z2,z0,z1)) | (47) |
computeLine#1#(nil,z0,z1) | → | c28 | (49) |
computeLine#2#(::(z0,z1),z2,z3,z4) | → | c29(computeLine#(z4,z1,lineMult(z3,z0,z2)),lineMult#(z3,z0,z2)) | (51) |
computeLine#2#(nil,z0,z1,z2) | → | c30 | (53) |
lineMult#(z0,z1,z2) | → | c31(lineMult#1#(z1,z2,z0)) | (55) |
lineMult#1#(::(z0,z1),z2,z3) | → | c32(lineMult#2#(z2,z3,z0,z1)) | (57) |
lineMult#1#(nil,z0,z1) | → | c33 | (59) |
lineMult#2#(::(z0,z1),z2,z3,z4) | → | c34(+#(*(z3,z2),z0),*#(z3,z2),lineMult#(z2,z4,z1)) | (61) |
lineMult#2#(nil,z0,z1,z2) | → | c35(*#(z1,z0),lineMult#(z0,z2,nil)) | (63) |
matrixMult#(z0,z1) | → | c36(matrixMult#1#(z0,z1)) | (65) |
matrixMult#1#(::(z0,z1),z2) | → | c37(computeLine#(z0,z2,nil),matrixMult#(z1,z2)) | (67) |
matrixMult#1#(nil,z0) | → | c38 | (69) |
lineMult#1#(::(z0,z1),z2,z3) | → | c32(lineMult#2#(z2,z3,z0,z1)) | (57) |
[c] | = | 0 |
[c1(x1)] | = | 1 · x1 + 0 |
[c2(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c3(x1)] | = | 1 · x1 + 0 |
[c4(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c5] | = | 0 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8] | = | 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[c10(x1)] | = | 1 · x1 + 0 |
[c11] | = | 0 |
[c12(x1)] | = | 1 · x1 + 0 |
[c13(x1)] | = | 1 · x1 + 0 |
[c14] | = | 0 |
[c15(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c16] | = | 0 |
[c17] | = | 0 |
[c18] | = | 0 |
[c19] | = | 0 |
[c20] | = | 0 |
[c21] | = | 0 |
[c22] | = | 0 |
[c23] | = | 0 |
[c24(x1)] | = | 1 · x1 + 0 |
[c25(x1)] | = | 1 · x1 + 0 |
[c26(x1)] | = | 1 · x1 + 0 |
[c27(x1)] | = | 1 · x1 + 0 |
[c28] | = | 0 |
[c29(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c30] | = | 0 |
[c31(x1)] | = | 1 · x1 + 0 |
[c32(x1)] | = | 1 · x1 + 0 |
[c33] | = | 0 |
[c34(x1, x2, x3)] | = | 1 · x1 + 0 + 1 · x2 + 1 · x3 |
[c35(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c36(x1)] | = | 1 · x1 + 0 |
[c37(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c38] | = | 0 |
[#add(x1, x2)] | = | 0 |
[#succ(x1)] | = | 1 |
[#natmult(x1, x2)] | = | 0 |
[lineMult(x1, x2, x3)] | = | 0 |
[lineMult#1(x1, x2, x3)] | = | 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2 |
[lineMult#2(x1,...,x4)] | = | 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2 |
[+(x1, x2)] | = | 2 + 1 · x1 + 2 · x2 + 1 · x2 · x2 + 1 · x1 · x2 + 2 · x1 · x1 |
[*(x1, x2)] | = | 0 |
[#mult(x1, x2)] | = | 1 |
[#pred(x1)] | = | 1 |
[#add#(x1, x2)] | = | 0 |
[#mult#(x1, x2)] | = | 0 |
[#natmult#(x1, x2)] | = | 0 |
[#pred#(x1)] | = | 0 |
[#succ#(x1)] | = | 0 |
[*#(x1, x2)] | = | 0 |
[+#(x1, x2)] | = | 0 |
[computeLine#(x1, x2, x3)] | = | 1 · x2 · x1 + 0 |
[computeLine#1#(x1, x2, x3)] | = | 1 · x1 · x3 + 0 |
[computeLine#2#(x1,...,x4)] | = | 1 · x1 + 0 + 1 · x1 · x4 |
[lineMult#(x1, x2, x3)] | = | 1 · x2 + 0 |
[lineMult#1#(x1, x2, x3)] | = | 1 · x1 + 0 |
[lineMult#2#(x1,...,x4)] | = | 1 · x4 + 0 |
[matrixMult#(x1, x2)] | = | 2 · x2 · x2 + 0 + 1 · x1 · x2 |
[matrixMult#1#(x1, x2)] | = | 2 · x2 · x2 + 0 + 1 · x1 · x2 |
[#0] | = | 0 |
[#neg(x1)] | = | 0 |
[#pos(x1)] | = | 0 |
[#s(x1)] | = | 0 |
[::(x1, x2)] | = | 2 + 1 · x1 + 1 · x2 |
[nil] | = | 0 |
#add#(#0,z0) | → | c | (71) |
#add#(#neg(#s(#0)),z0) | → | c1(#pred#(z0)) | (73) |
#add#(#neg(#s(#s(z0))),z1) | → | c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (75) |
#add#(#pos(#s(#0)),z0) | → | c3(#succ#(z0)) | (77) |
#add#(#pos(#s(#s(z0))),z1) | → | c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (79) |
#mult#(#0,#0) | → | c5 | (80) |
#mult#(#0,#neg(z0)) | → | c6 | (82) |
#mult#(#0,#pos(z0)) | → | c7 | (84) |
#mult#(#neg(z0),#0) | → | c8 | (86) |
#mult#(#neg(z0),#neg(z1)) | → | c9(#natmult#(z0,z1)) | (88) |
#mult#(#neg(z0),#pos(z1)) | → | c10(#natmult#(z0,z1)) | (90) |
#mult#(#pos(z0),#0) | → | c11 | (92) |
#mult#(#pos(z0),#neg(z1)) | → | c12(#natmult#(z0,z1)) | (94) |
#mult#(#pos(z0),#pos(z1)) | → | c13(#natmult#(z0,z1)) | (96) |
#natmult#(#0,z0) | → | c14 | (98) |
#natmult#(#s(z0),z1) | → | c15(#add#(#pos(z1),#natmult(z0,z1)),#natmult#(z0,z1)) | (100) |
#pred#(#0) | → | c16 | (101) |
#pred#(#neg(#s(z0))) | → | c17 | (103) |
#pred#(#pos(#s(#0))) | → | c18 | (104) |
#pred#(#pos(#s(#s(z0)))) | → | c19 | (106) |
#succ#(#0) | → | c20 | (107) |
#succ#(#neg(#s(#0))) | → | c21 | (108) |
#succ#(#neg(#s(#s(z0)))) | → | c22 | (110) |
#succ#(#pos(#s(z0))) | → | c23 | (112) |
*#(z0,z1) | → | c24(#mult#(z0,z1)) | (41) |
+#(z0,z1) | → | c25(#add#(z0,z1)) | (43) |
computeLine#(z0,z1,z2) | → | c26(computeLine#1#(z0,z2,z1)) | (45) |
computeLine#1#(::(z0,z1),z2,z3) | → | c27(computeLine#2#(z3,z2,z0,z1)) | (47) |
computeLine#1#(nil,z0,z1) | → | c28 | (49) |
computeLine#2#(::(z0,z1),z2,z3,z4) | → | c29(computeLine#(z4,z1,lineMult(z3,z0,z2)),lineMult#(z3,z0,z2)) | (51) |
computeLine#2#(nil,z0,z1,z2) | → | c30 | (53) |
lineMult#(z0,z1,z2) | → | c31(lineMult#1#(z1,z2,z0)) | (55) |
lineMult#1#(::(z0,z1),z2,z3) | → | c32(lineMult#2#(z2,z3,z0,z1)) | (57) |
lineMult#1#(nil,z0,z1) | → | c33 | (59) |
lineMult#2#(::(z0,z1),z2,z3,z4) | → | c34(+#(*(z3,z2),z0),*#(z3,z2),lineMult#(z2,z4,z1)) | (61) |
lineMult#2#(nil,z0,z1,z2) | → | c35(*#(z1,z0),lineMult#(z0,z2,nil)) | (63) |
matrixMult#(z0,z1) | → | c36(matrixMult#1#(z0,z1)) | (65) |
matrixMult#1#(::(z0,z1),z2) | → | c37(computeLine#(z0,z2,nil),matrixMult#(z1,z2)) | (67) |
matrixMult#1#(nil,z0) | → | c38 | (69) |
+#(z0,z1) | → | c25(#add#(z0,z1)) | (43) |
lineMult#2#(::(z0,z1),z2,z3,z4) | → | c34(+#(*(z3,z2),z0),*#(z3,z2),lineMult#(z2,z4,z1)) | (61) |
lineMult#2#(nil,z0,z1,z2) | → | c35(*#(z1,z0),lineMult#(z0,z2,nil)) | (63) |
[c] | = | 0 |
[c1(x1)] | = | 1 · x1 + 0 |
[c2(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c3(x1)] | = | 1 · x1 + 0 |
[c4(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c5] | = | 0 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8] | = | 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[c10(x1)] | = | 1 · x1 + 0 |
[c11] | = | 0 |
[c12(x1)] | = | 1 · x1 + 0 |
[c13(x1)] | = | 1 · x1 + 0 |
[c14] | = | 0 |
[c15(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c16] | = | 0 |
[c17] | = | 0 |
[c18] | = | 0 |
[c19] | = | 0 |
[c20] | = | 0 |
[c21] | = | 0 |
[c22] | = | 0 |
[c23] | = | 0 |
[c24(x1)] | = | 1 · x1 + 0 |
[c25(x1)] | = | 1 · x1 + 0 |
[c26(x1)] | = | 1 · x1 + 0 |
[c27(x1)] | = | 1 · x1 + 0 |
[c28] | = | 0 |
[c29(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c30] | = | 0 |
[c31(x1)] | = | 1 · x1 + 0 |
[c32(x1)] | = | 1 · x1 + 0 |
[c33] | = | 0 |
[c34(x1, x2, x3)] | = | 1 · x1 + 0 + 1 · x2 + 1 · x3 |
[c35(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c36(x1)] | = | 1 · x1 + 0 |
[c37(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c38] | = | 0 |
[#add(x1, x2)] | = | 0 |
[#succ(x1)] | = | 1 |
[#natmult(x1, x2)] | = | 0 |
[lineMult(x1, x2, x3)] | = | 0 |
[lineMult#1(x1, x2, x3)] | = | 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2 |
[lineMult#2(x1,...,x4)] | = | 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2 |
[+(x1, x2)] | = | 2 + 1 · x1 + 2 · x2 + 2 · x2 · x2 + 2 · x1 · x2 + 2 · x1 · x1 |
[*(x1, x2)] | = | 0 |
[#mult(x1, x2)] | = | 1 |
[#pred(x1)] | = | 1 |
[#add#(x1, x2)] | = | 0 |
[#mult#(x1, x2)] | = | 0 |
[#natmult#(x1, x2)] | = | 0 |
[#pred#(x1)] | = | 0 |
[#succ#(x1)] | = | 0 |
[*#(x1, x2)] | = | 0 |
[+#(x1, x2)] | = | 1 |
[computeLine#(x1, x2, x3)] | = | 2 · x2 · x1 + 0 |
[computeLine#1#(x1, x2, x3)] | = | 2 · x1 · x3 + 0 |
[computeLine#2#(x1,...,x4)] | = | 2 · x1 + 0 + 2 · x1 · x4 |
[lineMult#(x1, x2, x3)] | = | 2 · x2 + 0 |
[lineMult#1#(x1, x2, x3)] | = | 2 · x1 + 0 |
[lineMult#2#(x1,...,x4)] | = | 2 + 2 · x4 |
[matrixMult#(x1, x2)] | = | 2 · x2 · x2 + 0 + 2 · x1 · x2 |
[matrixMult#1#(x1, x2)] | = | 2 · x2 · x2 + 0 + 2 · x1 · x2 |
[#0] | = | 0 |
[#neg(x1)] | = | 0 |
[#pos(x1)] | = | 0 |
[#s(x1)] | = | 0 |
[::(x1, x2)] | = | 2 + 1 · x1 + 1 · x2 |
[nil] | = | 0 |
#add#(#0,z0) | → | c | (71) |
#add#(#neg(#s(#0)),z0) | → | c1(#pred#(z0)) | (73) |
#add#(#neg(#s(#s(z0))),z1) | → | c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (75) |
#add#(#pos(#s(#0)),z0) | → | c3(#succ#(z0)) | (77) |
#add#(#pos(#s(#s(z0))),z1) | → | c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (79) |
#mult#(#0,#0) | → | c5 | (80) |
#mult#(#0,#neg(z0)) | → | c6 | (82) |
#mult#(#0,#pos(z0)) | → | c7 | (84) |
#mult#(#neg(z0),#0) | → | c8 | (86) |
#mult#(#neg(z0),#neg(z1)) | → | c9(#natmult#(z0,z1)) | (88) |
#mult#(#neg(z0),#pos(z1)) | → | c10(#natmult#(z0,z1)) | (90) |
#mult#(#pos(z0),#0) | → | c11 | (92) |
#mult#(#pos(z0),#neg(z1)) | → | c12(#natmult#(z0,z1)) | (94) |
#mult#(#pos(z0),#pos(z1)) | → | c13(#natmult#(z0,z1)) | (96) |
#natmult#(#0,z0) | → | c14 | (98) |
#natmult#(#s(z0),z1) | → | c15(#add#(#pos(z1),#natmult(z0,z1)),#natmult#(z0,z1)) | (100) |
#pred#(#0) | → | c16 | (101) |
#pred#(#neg(#s(z0))) | → | c17 | (103) |
#pred#(#pos(#s(#0))) | → | c18 | (104) |
#pred#(#pos(#s(#s(z0)))) | → | c19 | (106) |
#succ#(#0) | → | c20 | (107) |
#succ#(#neg(#s(#0))) | → | c21 | (108) |
#succ#(#neg(#s(#s(z0)))) | → | c22 | (110) |
#succ#(#pos(#s(z0))) | → | c23 | (112) |
*#(z0,z1) | → | c24(#mult#(z0,z1)) | (41) |
+#(z0,z1) | → | c25(#add#(z0,z1)) | (43) |
computeLine#(z0,z1,z2) | → | c26(computeLine#1#(z0,z2,z1)) | (45) |
computeLine#1#(::(z0,z1),z2,z3) | → | c27(computeLine#2#(z3,z2,z0,z1)) | (47) |
computeLine#1#(nil,z0,z1) | → | c28 | (49) |
computeLine#2#(::(z0,z1),z2,z3,z4) | → | c29(computeLine#(z4,z1,lineMult(z3,z0,z2)),lineMult#(z3,z0,z2)) | (51) |
computeLine#2#(nil,z0,z1,z2) | → | c30 | (53) |
lineMult#(z0,z1,z2) | → | c31(lineMult#1#(z1,z2,z0)) | (55) |
lineMult#1#(::(z0,z1),z2,z3) | → | c32(lineMult#2#(z2,z3,z0,z1)) | (57) |
lineMult#1#(nil,z0,z1) | → | c33 | (59) |
lineMult#2#(::(z0,z1),z2,z3,z4) | → | c34(+#(*(z3,z2),z0),*#(z3,z2),lineMult#(z2,z4,z1)) | (61) |
lineMult#2#(nil,z0,z1,z2) | → | c35(*#(z1,z0),lineMult#(z0,z2,nil)) | (63) |
matrixMult#(z0,z1) | → | c36(matrixMult#1#(z0,z1)) | (65) |
matrixMult#1#(::(z0,z1),z2) | → | c37(computeLine#(z0,z2,nil),matrixMult#(z1,z2)) | (67) |
matrixMult#1#(nil,z0) | → | c38 | (69) |
lineMult#(z0,z1,z2) | → | c31(lineMult#1#(z1,z2,z0)) | (55) |
[c] | = | 0 |
[c1(x1)] | = | 1 · x1 + 0 |
[c2(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c3(x1)] | = | 1 · x1 + 0 |
[c4(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c5] | = | 0 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8] | = | 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[c10(x1)] | = | 1 · x1 + 0 |
[c11] | = | 0 |
[c12(x1)] | = | 1 · x1 + 0 |
[c13(x1)] | = | 1 · x1 + 0 |
[c14] | = | 0 |
[c15(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c16] | = | 0 |
[c17] | = | 0 |
[c18] | = | 0 |
[c19] | = | 0 |
[c20] | = | 0 |
[c21] | = | 0 |
[c22] | = | 0 |
[c23] | = | 0 |
[c24(x1)] | = | 1 · x1 + 0 |
[c25(x1)] | = | 1 · x1 + 0 |
[c26(x1)] | = | 1 · x1 + 0 |
[c27(x1)] | = | 1 · x1 + 0 |
[c28] | = | 0 |
[c29(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c30] | = | 0 |
[c31(x1)] | = | 1 · x1 + 0 |
[c32(x1)] | = | 1 · x1 + 0 |
[c33] | = | 0 |
[c34(x1, x2, x3)] | = | 1 · x1 + 0 + 1 · x2 + 1 · x3 |
[c35(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c36(x1)] | = | 1 · x1 + 0 |
[c37(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c38] | = | 0 |
[#add(x1, x2)] | = | 0 |
[#succ(x1)] | = | 1 |
[#natmult(x1, x2)] | = | 1 |
[lineMult(x1, x2, x3)] | = | 0 |
[lineMult#1(x1, x2, x3)] | = | 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2 |
[lineMult#2(x1,...,x4)] | = | 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2 |
[+(x1, x2)] | = | 2 + 2 · x1 + 2 · x2 + 2 · x2 · x2 + 2 · x1 · x2 + 2 · x1 · x1 |
[*(x1, x2)] | = | 2 · x2 + 0 + 2 · x2 · x2 |
[#mult(x1, x2)] | = | 2 · x2 + 0 + 2 · x2 · x2 |
[#pred(x1)] | = | 1 |
[#add#(x1, x2)] | = | 0 |
[#mult#(x1, x2)] | = | 0 |
[#natmult#(x1, x2)] | = | 0 |
[#pred#(x1)] | = | 0 |
[#succ#(x1)] | = | 0 |
[*#(x1, x2)] | = | 0 |
[+#(x1, x2)] | = | 0 |
[computeLine#(x1, x2, x3)] | = | 2 + 1 · x1 + 2 · x2 · x1 |
[computeLine#1#(x1, x2, x3)] | = | 2 · x1 · x3 + 0 |
[computeLine#2#(x1,...,x4)] | = | 2 · x1 + 0 + 2 · x1 · x4 |
[lineMult#(x1, x2, x3)] | = | 1 + 1 · x2 |
[lineMult#1#(x1, x2, x3)] | = | 1 · x1 + 0 |
[lineMult#2#(x1,...,x4)] | = | 1 + 1 · x4 |
[matrixMult#(x1, x2)] | = | 2 + 2 · x1 + 1 · x2 · x2 + 2 · x1 · x2 + 2 · x1 · x1 |
[matrixMult#1#(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 · x2 + 2 · x1 · x2 + 2 · x1 · x1 |
[#0] | = | 0 |
[#neg(x1)] | = | 1 |
[#pos(x1)] | = | 1 + 1 · x1 |
[#s(x1)] | = | 0 |
[::(x1, x2)] | = | 2 + 1 · x1 + 1 · x2 |
[nil] | = | 0 |
#add#(#0,z0) | → | c | (71) |
#add#(#neg(#s(#0)),z0) | → | c1(#pred#(z0)) | (73) |
#add#(#neg(#s(#s(z0))),z1) | → | c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (75) |
#add#(#pos(#s(#0)),z0) | → | c3(#succ#(z0)) | (77) |
#add#(#pos(#s(#s(z0))),z1) | → | c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (79) |
#mult#(#0,#0) | → | c5 | (80) |
#mult#(#0,#neg(z0)) | → | c6 | (82) |
#mult#(#0,#pos(z0)) | → | c7 | (84) |
#mult#(#neg(z0),#0) | → | c8 | (86) |
#mult#(#neg(z0),#neg(z1)) | → | c9(#natmult#(z0,z1)) | (88) |
#mult#(#neg(z0),#pos(z1)) | → | c10(#natmult#(z0,z1)) | (90) |
#mult#(#pos(z0),#0) | → | c11 | (92) |
#mult#(#pos(z0),#neg(z1)) | → | c12(#natmult#(z0,z1)) | (94) |
#mult#(#pos(z0),#pos(z1)) | → | c13(#natmult#(z0,z1)) | (96) |
#natmult#(#0,z0) | → | c14 | (98) |
#natmult#(#s(z0),z1) | → | c15(#add#(#pos(z1),#natmult(z0,z1)),#natmult#(z0,z1)) | (100) |
#pred#(#0) | → | c16 | (101) |
#pred#(#neg(#s(z0))) | → | c17 | (103) |
#pred#(#pos(#s(#0))) | → | c18 | (104) |
#pred#(#pos(#s(#s(z0)))) | → | c19 | (106) |
#succ#(#0) | → | c20 | (107) |
#succ#(#neg(#s(#0))) | → | c21 | (108) |
#succ#(#neg(#s(#s(z0)))) | → | c22 | (110) |
#succ#(#pos(#s(z0))) | → | c23 | (112) |
*#(z0,z1) | → | c24(#mult#(z0,z1)) | (41) |
+#(z0,z1) | → | c25(#add#(z0,z1)) | (43) |
computeLine#(z0,z1,z2) | → | c26(computeLine#1#(z0,z2,z1)) | (45) |
computeLine#1#(::(z0,z1),z2,z3) | → | c27(computeLine#2#(z3,z2,z0,z1)) | (47) |
computeLine#1#(nil,z0,z1) | → | c28 | (49) |
computeLine#2#(::(z0,z1),z2,z3,z4) | → | c29(computeLine#(z4,z1,lineMult(z3,z0,z2)),lineMult#(z3,z0,z2)) | (51) |
computeLine#2#(nil,z0,z1,z2) | → | c30 | (53) |
lineMult#(z0,z1,z2) | → | c31(lineMult#1#(z1,z2,z0)) | (55) |
lineMult#1#(::(z0,z1),z2,z3) | → | c32(lineMult#2#(z2,z3,z0,z1)) | (57) |
lineMult#1#(nil,z0,z1) | → | c33 | (59) |
lineMult#2#(::(z0,z1),z2,z3,z4) | → | c34(+#(*(z3,z2),z0),*#(z3,z2),lineMult#(z2,z4,z1)) | (61) |
lineMult#2#(nil,z0,z1,z2) | → | c35(*#(z1,z0),lineMult#(z0,z2,nil)) | (63) |
matrixMult#(z0,z1) | → | c36(matrixMult#1#(z0,z1)) | (65) |
matrixMult#1#(::(z0,z1),z2) | → | c37(computeLine#(z0,z2,nil),matrixMult#(z1,z2)) | (67) |
matrixMult#1#(nil,z0) | → | c38 | (69) |
*#(z0,z1) | → | c24(#mult#(z0,z1)) | (41) |
[c] | = | 0 |
[c1(x1)] | = | 1 · x1 + 0 |
[c2(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c3(x1)] | = | 1 · x1 + 0 |
[c4(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c5] | = | 0 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8] | = | 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[c10(x1)] | = | 1 · x1 + 0 |
[c11] | = | 0 |
[c12(x1)] | = | 1 · x1 + 0 |
[c13(x1)] | = | 1 · x1 + 0 |
[c14] | = | 0 |
[c15(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c16] | = | 0 |
[c17] | = | 0 |
[c18] | = | 0 |
[c19] | = | 0 |
[c20] | = | 0 |
[c21] | = | 0 |
[c22] | = | 0 |
[c23] | = | 0 |
[c24(x1)] | = | 1 · x1 + 0 |
[c25(x1)] | = | 1 · x1 + 0 |
[c26(x1)] | = | 1 · x1 + 0 |
[c27(x1)] | = | 1 · x1 + 0 |
[c28] | = | 0 |
[c29(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c30] | = | 0 |
[c31(x1)] | = | 1 · x1 + 0 |
[c32(x1)] | = | 1 · x1 + 0 |
[c33] | = | 0 |
[c34(x1, x2, x3)] | = | 1 · x1 + 0 + 1 · x2 + 1 · x3 |
[c35(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c36(x1)] | = | 1 · x1 + 0 |
[c37(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c38] | = | 0 |
[#add(x1, x2)] | = | 0 |
[#succ(x1)] | = | 1 |
[#natmult(x1, x2)] | = | 0 |
[lineMult(x1, x2, x3)] | = | 0 |
[lineMult#1(x1, x2, x3)] | = | 1 + 1 · x2 + 1 · x3 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2 |
[lineMult#2(x1,...,x4)] | = | 1 + 1 · x2 + 1 · x3 + 1 · x4 + 1 · x4 · x4 + 1 · x3 · x4 + 1 · x2 · x4 + 1 · x3 · x3 + 1 · x2 · x3 + 1 · x2 · x2 |
[+(x1, x2)] | = | 1 + 2 · x1 + 1 · x2 + 2 · x2 · x2 + 2 · x1 · x2 + 2 · x1 · x1 |
[*(x1, x2)] | = | 0 |
[#mult(x1, x2)] | = | 1 |
[#pred(x1)] | = | 1 |
[#add#(x1, x2)] | = | 0 |
[#mult#(x1, x2)] | = | 1 |
[#natmult#(x1, x2)] | = | 1 |
[#pred#(x1)] | = | 0 |
[#succ#(x1)] | = | 0 |
[*#(x1, x2)] | = | 2 |
[+#(x1, x2)] | = | 0 |
[computeLine#(x1, x2, x3)] | = | 2 · x2 + 0 |
[computeLine#1#(x1, x2, x3)] | = | 2 · x3 + 0 |
[computeLine#2#(x1,...,x4)] | = | 2 · x1 + 0 |
[lineMult#(x1, x2, x3)] | = | 1 · x2 + 0 |
[lineMult#1#(x1, x2, x3)] | = | 1 · x1 + 0 |
[lineMult#2#(x1,...,x4)] | = | 2 + 1 · x4 |
[matrixMult#(x1, x2)] | = | 2 + 1 · x1 + 2 · x2 · x2 + 1 · x1 · x2 |
[matrixMult#1#(x1, x2)] | = | 2 + 1 · x1 + 2 · x2 · x2 + 1 · x1 · x2 |
[#0] | = | 0 |
[#neg(x1)] | = | 0 |
[#pos(x1)] | = | 0 |
[#s(x1)] | = | 0 |
[::(x1, x2)] | = | 2 + 1 · x1 + 1 · x2 |
[nil] | = | 0 |
#add#(#0,z0) | → | c | (71) |
#add#(#neg(#s(#0)),z0) | → | c1(#pred#(z0)) | (73) |
#add#(#neg(#s(#s(z0))),z1) | → | c2(#pred#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (75) |
#add#(#pos(#s(#0)),z0) | → | c3(#succ#(z0)) | (77) |
#add#(#pos(#s(#s(z0))),z1) | → | c4(#succ#(#add(#pos(#s(z0)),z1)),#add#(#pos(#s(z0)),z1)) | (79) |
#mult#(#0,#0) | → | c5 | (80) |
#mult#(#0,#neg(z0)) | → | c6 | (82) |
#mult#(#0,#pos(z0)) | → | c7 | (84) |
#mult#(#neg(z0),#0) | → | c8 | (86) |
#mult#(#neg(z0),#neg(z1)) | → | c9(#natmult#(z0,z1)) | (88) |
#mult#(#neg(z0),#pos(z1)) | → | c10(#natmult#(z0,z1)) | (90) |
#mult#(#pos(z0),#0) | → | c11 | (92) |
#mult#(#pos(z0),#neg(z1)) | → | c12(#natmult#(z0,z1)) | (94) |
#mult#(#pos(z0),#pos(z1)) | → | c13(#natmult#(z0,z1)) | (96) |
#natmult#(#0,z0) | → | c14 | (98) |
#natmult#(#s(z0),z1) | → | c15(#add#(#pos(z1),#natmult(z0,z1)),#natmult#(z0,z1)) | (100) |
#pred#(#0) | → | c16 | (101) |
#pred#(#neg(#s(z0))) | → | c17 | (103) |
#pred#(#pos(#s(#0))) | → | c18 | (104) |
#pred#(#pos(#s(#s(z0)))) | → | c19 | (106) |
#succ#(#0) | → | c20 | (107) |
#succ#(#neg(#s(#0))) | → | c21 | (108) |
#succ#(#neg(#s(#s(z0)))) | → | c22 | (110) |
#succ#(#pos(#s(z0))) | → | c23 | (112) |
*#(z0,z1) | → | c24(#mult#(z0,z1)) | (41) |
+#(z0,z1) | → | c25(#add#(z0,z1)) | (43) |
computeLine#(z0,z1,z2) | → | c26(computeLine#1#(z0,z2,z1)) | (45) |
computeLine#1#(::(z0,z1),z2,z3) | → | c27(computeLine#2#(z3,z2,z0,z1)) | (47) |
computeLine#1#(nil,z0,z1) | → | c28 | (49) |
computeLine#2#(::(z0,z1),z2,z3,z4) | → | c29(computeLine#(z4,z1,lineMult(z3,z0,z2)),lineMult#(z3,z0,z2)) | (51) |
computeLine#2#(nil,z0,z1,z2) | → | c30 | (53) |
lineMult#(z0,z1,z2) | → | c31(lineMult#1#(z1,z2,z0)) | (55) |
lineMult#1#(::(z0,z1),z2,z3) | → | c32(lineMult#2#(z2,z3,z0,z1)) | (57) |
lineMult#1#(nil,z0,z1) | → | c33 | (59) |
lineMult#2#(::(z0,z1),z2,z3,z4) | → | c34(+#(*(z3,z2),z0),*#(z3,z2),lineMult#(z2,z4,z1)) | (61) |
lineMult#2#(nil,z0,z1,z2) | → | c35(*#(z1,z0),lineMult#(z0,z2,nil)) | (63) |
matrixMult#(z0,z1) | → | c36(matrixMult#1#(z0,z1)) | (65) |
matrixMult#1#(::(z0,z1),z2) | → | c37(computeLine#(z0,z2,nil),matrixMult#(z1,z2)) | (67) |
matrixMult#1#(nil,z0) | → | c38 | (69) |
There are no rules in the TRS R. Hence, R/S has complexity O(1).