[1] An invariant is a condition that always holds true at certain points in the program.
It is mainly used[2] for debugging programs in late development, or checking modifications to existing code.
Daikon can detect properties in C, C++, Java, Perl, and IOA programs, as well as spreadsheet files or other data sources.
Daikon is easy to extend and is free software.
This programming-tool-related article is a stub.