This document discusses contracts as they relate to object equality and ordering comparisons in programming. It provides examples of how equality and ordering contracts can be expressed for Java's Object.equals and Comparable interfaces. The contracts define requirements like reflexivity, symmetry, transitivity, consistency and handling of null values. Expressing these contracts as pre/postconditions has limitations and loses some clarity. Contracts are an important part of interfaces as they define substitutability.