18,219 research outputs found
Monads, partial evaluations, and rewriting
Monads can be interpreted as encoding formal expressions, or formal
operations in the sense of universal algebra. We give a construction which
formalizes the idea of "evaluating an expression partially": for example, "2+3"
can be obtained as a partial evaluation of "2+2+1". This construction can be
given for any monad, and it is linked to the famous bar construction, of which
it gives an operational interpretation: the bar construction induces a
simplicial set, and its 1-cells are partial evaluations.
We study the properties of partial evaluations for general monads. We prove
that whenever the monad is weakly cartesian, partial evaluations can be
composed via the usual Kan filler property of simplicial sets, of which we give
an interpretation in terms of substitution of terms.
In terms of rewritings, partial evaluations give an abstract reduction system
which is reflexive, confluent, and transitive whenever the monad is weakly
cartesian.
For the case of probability monads, partial evaluations correspond to what
probabilists call conditional expectation of random variables.
This manuscript is part of a work in progress on a general rewriting
interpretation of the bar construction.Comment: Originally written for the ACT Adjoint School 2019. To appear in
Proceedings of MFPS 202
The Sigma-Semantics: A Comprehensive Semantics for Functional Programs
A comprehensive semantics for functional programs is presented, which generalizes the well-known call-by-value and call-by-name semantics. By permitting a separate choice between call-by value and call-by-name for every argument position of every function and parameterizing the semantics by this choice we abstract from the parameter-passing mechanism. Thus common and distinguishing features of all instances of the sigma-semantics, especially call-by-value and call-by-name semantics, are highlighted. Furthermore, a property can be validated for all instances of the sigma-semantics by a single proof. This is employed for proving the equivalence of the given denotational (fixed-point based) and two operational (reduction based) definitions of the sigma-semantics. We present and apply means for very simple proofs of equivalence with the denotational sigma-semantics for a large class of reduction-based sigma-semantics. Our basis are simple first-order constructor-based functional programs with patterns
The Sigma-Semantics: A Comprehensive Semantics for Functional Programs
A comprehensive semantics for functional programs is presented, which generalizes the well-known call-by-value and call-by-name semantics. By permitting a separate choice between call-by value and call-by-name for every argument position of every function and parameterizing the semantics by this choice we abstract from the parameter-passing mechanism. Thus common and distinguishing features of all instances of the sigma-semantics, especially call-by-value and call-by-name semantics, are highlighted. Furthermore, a property can be validated for all instances of the sigma-semantics by a single proof. This is employed for proving the equivalence of the given denotational (fixed-point based) and two operational (reduction based) definitions of the sigma-semantics. We present and apply means for very simple proofs of equivalence with the denotational sigma-semantics for a large class of reduction-based sigma-semantics. Our basis are simple first-order constructor-based functional programs with patterns
Dualizability of automatic algebras
We make a start on one of George McNulty's Dozen Easy Problems: "Which finite
automatic algebras are dualizable?" We give some necessary and some sufficient
conditions for dualizability. For example, we prove that a finite automatic
algebra is dualizable if its letters act as an abelian group of permutations on
its states. To illustrate the potential difficulty of the general problem, we
exhibit an infinite ascending chain of finite automatic algebras that are alternately dualizable and
non-dualizable
- …