  Almost all dependable systems use some form of redundancy in order to
increase fault-tolerance. Very popular are the $N$-Modular Redundant (NMR)
systems in which a majority voter chooses the voting output. However, elaborate
systems require fault-tolerant voters which further give additional information
besides the voting output, e.g., how many module outputs agree. Dynamically
defining which set of inputs should be considered for voting is also crucial.
Earlier we showed a practical implementation of programmable NMR voters that
self-report the voting outcome and do self-checks. Our voter design method uses
a binary matrix with specific properties that enable easy scaling of the design
regarding the number of voter inputs N. Thus, an automated construction of NMR
systems is possible, given the basic module and arbitrary redundancy $N$. In
this paper we present the mathematical aspects of the method, i.e., we analyze
the properties of the matrix that characterizes the method. We give the
characteristic polynomials of the properly and erroneously built matrices in
their explicit forms. We further give their eigenvalues and corresponding
eigenvectors, which reveal a lot of useful information about the system. At the
end, we give relations between the voter outputs and eigenpairs.
