Code:

f = function(a,b) abs(abs(a+b) - abs(a) - abs(b)) ## ||a+b| - |a| - |b||
f1 = function(a,b) abs(abs(a+b) - a - abs(b)) ## ||a+b| - a - |b||
f2 = function(a,b) abs(abs(a+b) - abs(a) - b) ## ||a+b| - |a| - b |
f3 = function(a,b) abs(abs(a+b) - a - b) ## ||a+b| - a - b |
g = function(a,b) abs(a+b - abs(a) - abs(b)) ## | a+b - |a| - |b||
g1 = function(a,b) abs(a+b - a - abs(b)) ## | a+b - a - |b||
g2 = function(a,b) abs(a+b - abs(a) - b) ## | a+b - |a| - b |
g3 = function(a,b) abs(a+b - a - b) ## | a+b - a - b |
h = function(a,b) abs(a+b) - abs(a) - abs(b) ## |a+b| - |a| - |b|
h1 = function(a,b) abs(a+b) - a - abs(b) ## |a+b| - a - |b|
h2 = function(a,b) abs(a+b) - abs(a) - b ## |a+b| - |a| - b
h3 = function(a,b) abs(a+b) - a - b ## |a+b| - a - b
j = function(a,b) a+b - abs(a) - abs(b) ## a+b - |a| - |b|
j1 = function(a,b) a+b - a - abs(b) ## a+b - a - |b|
j2 = function(a,b) a+b - abs(a) - b ## a+b - |a| - b
j3 = function(a,b) a+b - a - b ## a+b - a - b
P = function(a,b) {
c(f(a,b), f1(a,b), f2(a,b), f3(a,b),
g(a,b), g1(a,b), g2(a,b), g3(a,b),
h(a,b), h1(a,b), h2(a,b), h3(a,b),
j(a,b), j1(a,b), j2(a,b), j3(a,b))
} ## end P-print function
x <- data.frame(matrix(nrow = 25, ncol = 18))
i <- 1
for(a in -2:2) for(b in -2:2) {x[i, ] <- c(a, b, P(a,b)); i = i+1}
as.numeric( apply(x[-c(1:3)], 2, function(col) all(col == x[[3]])) )
## The output is 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Basically I defined a bunch of functions. See the commented portion to the right that explains them notationally. I believe I exhausted all the cases, no? It should be: