Abstract :
We present a logic for algebraic effects, based on the algebraic representation of computational effects by operations and equations. We begin with the a-calculus, a minimal calculus which separates values, effects, and computations and thereby canonises the order of evaluation. This is extended to obtain the logic, which is a classical first-order multi-sorted logic with higher-order value and computation types, as in Levy´s call-by-push-value, a principle of induction over computations, a free algebra principle, and predicate fixed points. This logic embraces Moggi´s computational lambda-calculus, and also, via definable modalities, Hennessy-Milner logic, and evaluation logic, though Hoare logic presents difficulties.
Keywords :
algebra; lambda calculus; Hennessy-Milner logic; Hoare logic; a-calculus; algebraic representation; computational lambda-calculus; definable modalities; evaluation logic; first-order multi-sorted logic; minimal calculus; Algebra; Calculus; Computer languages; Computer science; Concurrent computing; Equations; Informatics; Laboratories; Logic functions; Logic programming; algebraic operations; call-by-push-value; computational effects; computational lambda-calculus; program logics;