> A static type system is a mechanism whereby an algorithm determines if a program exhibits a property, P, and if the property is not found to hold, then the program is rejected.
Doesn't this definition encompass dynamically typed languages as well? e.g. P is syntactic validity?