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