Algorithmic Software Verification
Software is everywhere, and yet, extremely unreliable.
One key to reliability is the design of cost-effective techniques whereby developers can formally specify essential properties of their code, and, machines can rigorously verify that the properties hold, or demonstrate corner cases where they fa