Goal: Understanding Contracts
Consider the Java Iterator interface. For each method, identify all preconditions and postconditions. For each precondition, identify a specific input that violates the precondition. For each postcondition, identify an input specific to that postcondition.
Consider the (very simple) problem of finding a (possibly non-existant) common element in two collections.