Functional Programming 1 Sound and Complete Models of Contracts