Type systems provide a kind of weak logic.
Env + x:alpha |- E : beta ____________________________________________ Env |- (\x. E) : beta
The main idea is that we ascribe types to
Env |- F: alpha->beta Env |- E:alpha ____________________________________________ Env |- (F E) : beta
(rho + x:alpha,C) |- E : beta ____________________________________________ (rho, C) Env |- (\x. E) : beta
Env |- F: alpha->beta Env |- E:alpha ____________________________________________ Env |- (F E) : beta