 A first consequence is that each LoA – expressing what function to accomplish – can be realized by a multiplicity of potential structural levels expressing how those functions are accomplished: an intended functionality can be realized by a specification in multiple ways; a computational problem expressed by a specification has solutions by a multiplicity of different algorithms, which can differ for some important properties but are all equally valid (see  §3);  an algorithm may be implemented in different programs, each written in a different high-level programming language, all expressing the same program if they implement the same algorithm (Angius and Primiero 2019); source code can be compiled in a multiplicity of machine languages, adopting different ISAs (Instruction Set Architectures); executable code can be installed and run on a multiplicity of machines (provided that these share the same ISA).