YES Problem: del(.(x,.(y,z))) -> f(=(x,y),x,y,z) f(true(),x,y,z) -> del(.(y,z)) f(false(),x,y,z) -> .(x,del(.(y,z))) =(nil(),nil()) -> true() =(.(x,y),nil()) -> false() =(nil(),.(y,z)) -> false() =(.(x,y),.(u(),v())) -> and(=(x,u()),=(y,v())) Proof: Matrix Interpretation Processor: dim=2 interpretation: [1 0] [1 0] [0] [and](x0, x1) = [1 0]x0 + [0 0]x1 + [1], [0] [v] = [0], [3] [u] = [0], [0] [nil] = [0], [2] [false] = [2], [1] [true] = [1], [1 0] [2 0] [3 0] [3] [f](x0, x1, x2, x3) = x0 + [0 0]x1 + [3 0]x2 + [3 0]x3 + [2], [1 0] [1 0] [1] [=](x0, x1) = [2 0]x0 + [0 0]x1 + [3], [2 1] [2] [del](x0) = [3 0]x0 + [0], [1 0] [1 0] [1] [.](x0, x1) = [0 0]x0 + [1 0]x1 + [0] orientation: [2 0] [3 0] [3 0] [7] [2 0] [3 0] [3 0] [4] del(.(x,.(y,z))) = [3 0]x + [3 0]y + [3 0]z + [6] >= [2 0]x + [3 0]y + [3 0]z + [5] = f(=(x,y),x,y,z) [1 0] [2 0] [3 0] [4] [2 0] [3 0] [4] f(true(),x,y,z) = [0 0]x + [3 0]y + [3 0]z + [3] >= [3 0]y + [3 0]z + [3] = del(.(y,z)) [1 0] [2 0] [3 0] [5] [1 0] [2 0] [3 0] [5] f(false(),x,y,z) = [0 0]x + [3 0]y + [3 0]z + [4] >= [0 0]x + [2 0]y + [3 0]z + [4] = .(x,del(.(y,z))) [1] [1] =(nil(),nil()) = [3] >= [1] = true() [1 0] [1 0] [2] [2] =(.(x,y),nil()) = [2 0]x + [2 0]y + [5] >= [2] = false() [1 0] [1 0] [2] [2] =(nil(),.(y,z)) = [0 0]y + [0 0]z + [3] >= [2] = false() [1 0] [1 0] [6] [1 0] [1 0] [5] =(.(x,y),.(u(),v())) = [2 0]x + [2 0]y + [5] >= [1 0]x + [0 0]y + [5] = and(=(x,u()),=(y,v())) problem: f(true(),x,y,z) -> del(.(y,z)) f(false(),x,y,z) -> .(x,del(.(y,z))) =(nil(),nil()) -> true() =(.(x,y),nil()) -> false() =(nil(),.(y,z)) -> false() Matrix Interpretation Processor: dim=3 interpretation: [0] [nil] = [1] [0], [0] [false] = [0] [0], [0] [true] = [0] [0], [1 0 0] [1 0 0] [1 0 0] [1 0 0] [1] [f](x0, x1, x2, x3) = [0 0 0]x0 + [0 0 0]x1 + [0 0 0]x2 + [0 0 0]x3 + [0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [1], [1 1 1] [1 0 0] [=](x0, x1) = [0 0 0]x0 + [0 0 0]x1 [0 0 0] [0 0 0] , [1 0 0] [del](x0) = [0 0 0]x0 [0 0 1] , [1 0 0] [1 0 0] [0] [.](x0, x1) = [0 0 0]x0 + [0 0 0]x1 + [0] [0 0 0] [0 0 0] [1] orientation: [1 0 0] [1 0 0] [1 0 0] [1] [1 0 0] [1 0 0] [0] f(true(),x,y,z) = [0 0 0]x + [0 0 0]y + [0 0 0]z + [0] >= [0 0 0]y + [0 0 0]z + [0] = del(.(y,z)) [0 0 0] [0 0 0] [0 0 0] [1] [0 0 0] [0 0 0] [1] [1 0 0] [1 0 0] [1 0 0] [1] [1 0 0] [1 0 0] [1 0 0] [0] f(false(),x,y,z) = [0 0 0]x + [0 0 0]y + [0 0 0]z + [0] >= [0 0 0]x + [0 0 0]y + [0 0 0]z + [0] = .(x,del(.(y,z))) [0 0 0] [0 0 0] [0 0 0] [1] [0 0 0] [0 0 0] [0 0 0] [1] [1] [0] =(nil(),nil()) = [0] >= [0] = true() [0] [0] [1 0 0] [1 0 0] [1] [0] =(.(x,y),nil()) = [0 0 0]x + [0 0 0]y + [0] >= [0] = false() [0 0 0] [0 0 0] [0] [0] [1 0 0] [1 0 0] [1] [0] =(nil(),.(y,z)) = [0 0 0]y + [0 0 0]z + [0] >= [0] = false() [0 0 0] [0 0 0] [0] [0] problem: Qed