The Equation Composer's firmware was designed to be flexible and extensible. Internally, the code is object-oriented, consisting of “synth” objects and “module” objects. A synth contains modules that are patched together, not unlike a modular synth.
The term "Program" and "Synth" have the same meaning in the Equation Composer. When you turn the PRG knob of the equation composer, you are selecting which synth to use.
This brings us to our first mantra:
A "Synth" is a collection of "Modules" that have been patched together
If you browse through the source files, you'll see many Module[...] files and Synth[...] files. Not all of those files are used for the sounds that ship with the Equation Composer, but they exist for your own exploration. For a list of all available modules, see the Module Reference.
The main project file is EquationComposer.ino. EquationComposer.ino initializes the EquationComposer, sets up the synths, and serves as the core “brain” of everything. Anytime you add a new Synth, you'll need to modify EquationComposer.ino.