- at least some new entities in some generations differ from their parent(s) in at least one characteristic that affects their ability to reproduce
- these characteristic(s) are inherited
So any system that satisfies the above conditions can evolve. Note that these entities are not required to be considered alive by any definition. Which is why evolution applies from humans to algorithms used in sophisticated database software like PostgreSQL.
Obviously populations that have frequent generations and where there is a huge variation in the new entities, evolve the fastest - this has been observed, for example compare the rate of evolution of primates (such as humans) to that of bacteria.
Now evidence has been found that complicated chemicals called prions (as implicated in Mad Cow Disease) can also evolve:
"This means that this pattern of Darwinian evolution appears to be universally active.
"In viruses, mutation is linked to changes in nucleic acid sequence that leads to resistance.
"Now, this adaptability has moved one level down- to prions and protein folding - and it's clear that you do not need nucleic acid (DNA or RNA) for the process of evolution."