3 research outputs found
Syntax and Typing for Cedille Core
This document specifies a core version of the type theory implemented in the
Cedille tool. Cedille is a language for dependently typed programming and
computer-checked proof. Cedille can elaborate source programs down to Cedille
Core, which can be checked in a straightforward way by a small checker (a
reference implementation included with Cedille is under 1000 lines of Haskell).
Other tools could also target Cedille Core as an expressive backend type
theory. The document describes syntax and typing rules for Cedille Core
A Weakly Initial Algebra for Higher-Order Abstract Syntax in Cedille
Cedille is a relatively recent tool based on a Curry-style pure type theory,
without a primitive datatype system. Using novel techniques based on dependent
intersection types, inductive datatypes with their induction principles are
derived. One benefit of this approach is that it allows exploration of new or
advanced forms of inductive datatypes. This paper reports work in progress on
one such form, namely higher-order abstract syntax (HOAS). We consider the
nature of HOAS in the setting of pure type theory, comparing with the
traditional concept of environment models for lambda calculus. We see an
alternative, based on what we term Kripke function-spaces, for which we can
derive a weakly initial algebra in Cedille. Several examples are given using
the encoding.Comment: In Proceedings LFMTP 2019, arXiv:1910.0871
Monotone recursive types and recursive data representations in Cedille
Guided by Tarksi's fixpoint theorem in order theory, we show how to derive
monotone recursive types with constant-time roll and unroll operations within
Cedille, an impredicative, constructive, and logically consistent pure type
theory. As applications, we use monotone recursive types to generically derive
two recursive representations of data in the lambda calculus, the Parigot and
Scott encoding, together with constant-time destructors, a recursion scheme,
and the standard induction principle