255 research outputs found
Coherence for Skew-Monoidal Categories
I motivate a variation (due to K. Szlach\'{a}nyi) of monoidal categories
called skew-monoidal categories where the unital and associativity laws are not
required to be isomorphisms, only natural transformations. Coherence has to be
formulated differently than in the well-known monoidal case. In my (to my
knowledge new) version, it becomes a statement of uniqueness of normalizing
rewrites. I present a proof of this coherence theorem and also formalize it
fully in the dependently typed programming language Agda.Comment: In Proceedings MSFP 2014, arXiv:1406.153
Coinductive Big-Step Semantics for Concurrency
In a paper presented at SOS 2010, we developed a framework for big-step
semantics for interactive input-output in combination with divergence, based on
coinductive and mixed inductive-coinductive notions of resumptions, evaluation
and termination-sensitive weak bisimilarity. In contrast to standard
inductively defined big-step semantics, this framework handles divergence
properly; in particular, runs that produce some observable effects and then
diverge, are not "lost". Here we scale this approach for shared-variable
concurrency on a simple example language. We develop the metatheory of our
semantics in a constructive logic.Comment: In Proceedings PLACES 2013, arXiv:1312.221
Directed Containers as Categories
Directed containers make explicit the additional structure of those
containers whose set functor interpretation carries a comonad structure. The
data and laws of a directed container resemble those of a monoid, while the
data and laws of a directed container morphism those of a monoid morphism in
the reverse direction. With some reorganization, a directed container is the
same as a small category, but a directed container morphism is opcleavage-like.
We draw some conclusions for comonads from this observation, considering in
particular basic constructions and concepts like the opposite category and a
groupoid.Comment: In Proceedings MSFP 2016, arXiv:1604.0038
Variations on Noetherianness
In constructive mathematics, several nonequivalent notions of finiteness
exist. In this paper, we continue the study of Noetherian sets in the
dependently typed setting of the Agda programming language. We want to say that
a set is Noetherian, if, when we are shown elements from it one after another,
we will sooner or later have seen some element twice. This idea can be made
precise in a number of ways. We explore the properties and connections of some
of the possible encodings. In particular, we show that certain implementations
imply decidable equality while others do not, and we construct counterexamples
in the latter case. Additionally, we explore the relation between
Noetherianness and other notions of finiteness.Comment: In Proceedings MSFP 2016, arXiv:1604.0038
On streams that are finitely red
Mixing induction and coinduction, we study alternative definitions of streams
being finitely red. We organize our definitions into a hierarchy including also
some well-known alternatives in intuitionistic analysis. The hierarchy
collapses classically, but is intuitionistically of strictly decreasing
strength. We characterize the differences in strength in a precise way by weak
instances of the Law of Excluded Middle
Structured general corecursion and coinductive graphs [extended abstract]
Bove and Capretta's popular method for justifying function definitions by
general recursive equations is based on the observation that any structured
general recursion equation defines an inductive subset of the intended domain
(the "domain of definedness") for which the equation has a unique solution. To
accept the definition, it is hence enough to prove that this subset contains
the whole intended domain.
This approach works very well for "terminating" definitions. But it fails to
account for "productive" definitions, such as typical definitions of
stream-valued functions. We argue that such definitions can be treated in a
similar spirit, proceeding from a different unique solvability criterion. Any
structured recursive equation defines a coinductive relation between the
intended domain and intended codomain (the "coinductive graph"). This relation
in turn determines a subset of the intended domain and a quotient of the
intended codomain with the property that the equation is uniquely solved for
the subset and quotient. The equation is therefore guaranteed to have a unique
solution for the intended domain and intended codomain whenever the subset is
the full set and the quotient is by equality.Comment: In Proceedings FICS 2012, arXiv:1202.317
When is a container a comonad?
Abbott, Altenkirch, Ghani and others have taught us that many parameterized
datatypes (set functors) can be usefully analyzed via container representations
in terms of a set of shapes and a set of positions in each shape. This paper
builds on the observation that datatypes often carry additional structure that
containers alone do not account for. We introduce directed containers to
capture the common situation where every position in a data-structure
determines another data-structure, informally, the sub-data-structure rooted by
that position. Some natural examples are non-empty lists and node-labelled
trees, and data-structures with a designated position (zippers). While
containers denote set functors via a fully-faithful functor, directed
containers interpret fully-faithfully into comonads. But more is true: every
comonad whose underlying functor is a container is represented by a directed
container. In fact, directed containers are the same as containers that are
comonads. We also describe some constructions of directed containers. We have
formalized our development in the dependently typed programming language Agda
- …