Grand Unified Theory of Software:
(the 'grand unified' part is halfway jesting, but this is a nice generalization of the main requirements of programs.)
Proposition:
A program (software program), has at most two responsibilities: (1) State-management, and (2) Effects-propagation.