Abstract: Contracts are a proven tool in software development. They provide specifications for operations that may be statically verified or dynamically validated by contract mon...
Existing contract checkers for data structures force programmers to choose between poor alternatives. Contracts are either built into the functions that construct the data structur...
Program errors are hard to detect and are costly both to programmers who spend significant efforts in debugging, and for systems that are guarded by runtime checks. Static verific...