Your formula manager program has some pretty impressive features o.o Definitely if you have questions, feel free to ask. There is a section for Assembly stuff, too, and I can help out there. For your formulas, I typically do something like this:

- Make L1 and L2 the size of the number of variables possible. For example, solving a triangle, you might offer 6 variables to modify (angles and side lengths).
- Each element of L1 corresponds to a variable
- Each element of L2 should be set to 0.
- Let the user select a variable to edit.
- When the user enters a value for a variable, set the corresponding element in L2 to 1. 1 means the variable was input, 2 means it wasn't.
- To delete a variable, set the element in L2 to 0 and erase the value for L1.

Now when you are filling in the rest of the variables, you know which ones are known (L2 will have a 1) and which are unknown (0). I unfortunately never finished this (I wanted to add many more systems like a kinematics solver):

That might be useful for you. Because I am assuming you are storing all of the formulas and info about them such as tags in a string, you can probably make a field that tells which variables are used by the function so that they can be replaced accordingly.

I am just babbling at this point. Enjoy your stay here!