Suppressing a linear system of equations Suppose that I have a large system of linear equations, mostly of the form$$A+B+C=D$$where each letter, representing a variable, has coefficient one. Each equation can have any number of variables.
Now, in this system, certain variables are "suppressed", and certain ones are "unsuppressed". A unsuppressed variable is one whose value is set as a constant, while suppressed variables can hold any value that satisfies all of the equations.
For example, in the above equation, if $A$ and $D$ are suppressed, but $B,C$ are unsuppressed, with values of $B=2$ and $C=3$, the equation will become $$A+5=D$$The issue is, with certain variables set as unsuppressed, other variables can become "solvable", i.e., have a unique solution. When this happens, the suppressed variable is essentially an unsuppressed variable, which is not a desirable outcome.
So, my goal is to find the minimal set of unsuppressed variables, that if I make them suppressed, there would be no suppressed variables with unique solutions.
Progress so Far
I've been able to compute the right nullspace of the coefficient matrix representation of the system of equations, which allows me to find the variables with unique solutions. I also calculate the Moore Penrose pseudoinverse of the coefficient matrix to determine which equations are used to "solve" a given suppressed variable.
Any thoughts? References to linear algebra texts that could help me? 
Example
In the following system of equations
\begin{align}
A+B+C+D=5\\A+B+C+D+E=7
\end{align}
It's obvious that the system as a whole does not have any unique solutions. However, variable $E$ definitely does (i.e., $E=2$). This is a pretty silly example, but demonstrates why simply finding the rank of the system is not sufficient.
 A: Let me rephrase the problem statement as I'm understanding it, in order to avoid unnecessary ambiguity:
We are looking for an algorithm that is given input consisting of three parts:


*

*A set of $n$ variables named $X_i$ with $1\leq i\leq n$ (variables represent numbers of some kind; e.g. real numbers).

*A set of $m$ linear relations of the form $\sum\limits_{i=1}^n c_{j,i}X_i = B_j$, where $1\leq j\leq m$ and $B_j$ is a number and $c_{j,i}\in\{0,1\}$ (i.e. every variable can either appear with coefficient $1$ or not appear at all).

*A set of $n$ conditions, which, for each $1\leq i\leq n$ specify that variable $X_i$ is either unrestricted ("suppressed" in the original problem statement), or give it a fixed value $D_i$ (the "unsuppressed" ones). These conditions can be equivalently represented as a system of equations of the form $X_k=D_k$ where $k$ ranges over some subset of all variables.


We'll call a set of conditions good if combining this set of conditions with the set of relations results in a system of linear equations in which the value of no variable can be determined uniquely, apart from those appearing in the conditions already.
The algorithm should output the smallest (in terms of cardinality) subset of the set of  conditions to be removed, so that the set of remaining conditions is good. If no such subset exists (i.e. if the set of relations determines some variable uniquely already), the algorithm should point this fact out too.
As it turns out, even the quite restricted form of relations used as input to this algorithm is already strong enough to express some difficult problems. In particular, consider the set cover problem, which is known to be NP-complete. In this problem, we are given a system $\mathbb{S}$ of sets $\mathbb{S}=\{S_1,S_2,\ldots,S_t\}$, union $U$ of which consists of $m$ elements ($U=\{e_1,e_2,\ldots,e_m\}$. We are looking for the smallest (again, in terms of cardinality) subsystem of this system whose union is still $U$.
Now, let's take this input to the Set-Cover problem and transform it as follows:


*

*We will have $(m+t)$ variables, named $E_i$ with $\leq i\leq m$ (they will correspond to elements of $U$) and $P_j$ with $1\leq j\leq t$ (which will correspond to sets $S_j$). We'll let the variables range over integers, but that particular choice is not really much unimportant.

*For element $e_i\in U$, we will create one relation of the form $$E_i+\sum_{e_i\in S_j}P_j=0$$

*For each set $S_j$, we will add one condition of the form $P_j=0$ (the variables $E_i$ not get any conditions associated with them).


Clearly, if we combine all the relations and conditions, all $E_i$ will be uniquely determined to be equal to zero. We can also make a simple observation: In order for $E_i$ not to be uniquely determined, at least one of $P_j$ with $e_i\in S_j$ must be removed from the set of conditions. On the other hand, since each $E_i$ only appear in a single relation, this is actually also sufficient!
In the original set-cover language, this translates to "for each element $e_i\in U$, at least one $S_j$ containing it must be selected" which is precisely the definition of a set cover! Finding the minimal set of conditions-to-be-removed is therefore the same as finding the minimal set-cover and thus also solving an NP-complete problem (our transformation of inputs is polynomial in size).
In other words, we may need to either restrict the relations/conditions even further (so that they would be insufficient to represent the inputs to set-cover) or to allow imperfect solutions for the problem (e.g. possibly removing twice as many conditions as was strictly necessary)... or accept that the problem may not have an efficient solution (of course, heuristics can still lead to solutions quite quickly, in particular in "practical" cases).
