What is the Curry-Howard-Lambek correspondence, and what three structures does it connect?
Think about your answer, then reveal below.
Model answer: The Curry-Howard-Lambek correspondence is a three-way equivalence between: (1) types and terms of simply-typed lambda calculus, (2) propositions and proofs in intuitionistic propositional logic, and (3) objects and morphisms in cartesian closed categories. Under this correspondence, function types (A → B) correspond to exponential objects (B^A) and to logical implication (A ⊃ B); lambda abstraction corresponds to currying (the CCC adjunction); function application corresponds to the evaluation morphism; and products correspond to logical conjunction and the type-theoretic product.
The significance is that three apparently different disciplines — programming language theory, proof theory, and abstract algebra — are secretly the same subject, expressed in different notation. A program that type-checks is simultaneously a valid proof and a well-defined morphism in a CCC. This means insights transfer freely: type-theoretic constructions like dependent types correspond to more expressive categories (locally cartesian closed categories, toposes), and categorical constructions suggest new programming language features. The correspondence is the foundation of proof assistants like Coq and Agda, where writing a program and proving a theorem are literally the same activity.