95,815 research outputs found
Explicit Substitutions for Contextual Type Theory
In this paper, we present an explicit substitution calculus which
distinguishes between ordinary bound variables and meta-variables. Its typing
discipline is derived from contextual modal type theory. We first present a
dependently typed lambda calculus with explicit substitutions for ordinary
variables and explicit meta-substitutions for meta-variables. We then present a
weak head normalization procedure which performs both substitutions lazily and
in a single pass thereby combining substitution walks for the two different
classes of variables. Finally, we describe a bidirectional type checking
algorithm which uses weak head normalization and prove soundness.Comment: In Proceedings LFMTP 2010, arXiv:1009.218
String rewriting for Double Coset Systems
In this paper we show how string rewriting methods can be applied to give a
new method of computing double cosets. Previous methods for double cosets were
enumerative and thus restricted to finite examples. Our rewriting methods do
not suffer this restriction and we present some examples of infinite double
coset systems which can now easily be solved using our approach. Even when both
enumerative and rewriting techniques are present, our rewriting methods will be
competitive because they i) do not require the preliminary calculation of
cosets; and ii) as with single coset problems, there are many examples for
which rewriting is more effective than enumeration.
Automata provide the means for identifying expressions for normal forms in
infinite situations and we show how they may be constructed in this setting.
Further, related results on logged string rewriting for monoid presentations
are exploited to show how witnesses for the computations can be provided and
how information about the subgroups and the relations between them can be
extracted. Finally, we discuss how the double coset problem is a special case
of the problem of computing induced actions of categories which demonstrates
that our rewriting methods are applicable to a much wider class of problems
than just the double coset problem.Comment: accepted for publication by the Journal of Symbolic Computatio
Koka: Programming with Row Polymorphic Effect Types
We propose a programming model where effects are treated in a disciplined
way, and where the potential side-effects of a function are apparent in its
type signature. The type and effect of expressions can also be inferred
automatically, and we describe a polymorphic type inference system based on
Hindley-Milner style inference. A novel feature is that we support polymorphic
effects through row-polymorphism using duplicate labels. Moreover, we show that
our effects are not just syntactic labels but have a deep semantic connection
to the program. For example, if an expression can be typed without an exn
effect, then it will never throw an unhandled exception. Similar to Haskell's
`runST` we show how we can safely encapsulate stateful operations. Through the
state effect, we can also safely combine state with let-polymorphism without
needing either imperative type variables or a syntactic value restriction.
Finally, our system is implemented fully in a new language called Koka and has
been used successfully on various small to medium-sized sample programs ranging
from a Markdown processor to a tier-splitted chat application. You can try out
Koka live at www.rise4fun.com/koka/tutorial.Comment: In Proceedings MSFP 2014, arXiv:1406.153
- …