Calculate the sign function of a matrix Z by using the Green's function?

I want to calculate the Sign function of a matrix Z by using the Green’s matrix function G[t].The above steps will help understanding the problem:
1]Solve G’[t]=ZG[t]+?? Where ? is the Dirac function,I the identity matrix,Z the constant matrix and G[t] which i want.
2] We take the limits limit t->0+G[t]=G[+0] and t->0-G[t]=G[-0]
3]the SignZ=-(G[+0] +G[-0] ).
I have already do these steps but one property for SignZ is that (signZ)^2=I. Any opinion ?
With Best Regards Dimitrios

Several comments

  1. It seems that you are not using Mathematica version 11. Now the
    result is returned in terms of the HeavisideTheta function and the
    values returned are undecidable, e.g.
    -1+2.0 HeavisideTheta[0.] etc (you cannot determine if this is positive or negative as 0 < HeavisideTheta[0] < 1 -
  2. You need to use Chop to remove numerical round off errors
  3. Use DSolveValue to get the result as a list of answers rather than a list of rules (that you remove anyway).
  4. You might work with exact values (so, no need for Chop) if you set Amat with exact integers. The Limit function can handle the Root objects correctly
  5. As for the desired property for Zsgn, you can define that in case where Zsgn is a symbol (or more accurately, when Zsgn is a symbolic function head) rather than a variable bounded to some value
    I attach here a notebook with changes for comments 1,3,4 (no need for Chop in comment 2 when using comment 4).
    yehuda