NAEV, or Nonlinear Automatic Equivalent Versioning is an abstraction and tool designed to allow for nonlinear versioning within software. The nonlinear versioning is then automatically verified to be functionally equivalent in the case of non-breaking updates.