In functional programming, datatypes a la carte provide a convenient modular representation of recursive datatypes, based on their initial algebra semantics. Unfortunately it is highly challenging to implement this technique in proof assistants that are based on type theory, like Coq. The reason is that it involves type definitions, such as those of type-level fixpoint operators, that are not strictly positive. The known work-around of impredicative encodings is problematic, insofar as it impedes conventional inductive reasoning. Weak induction principles can be used instead, but they considerably complicate proofs. This paper proposes a novel and simpler technique to reason inductively about impredicative encodings, based on Mendler-style ...
Nested datatypes are families of datatypes that are indexed over all types such that the constructor...
This work is licensed under a Creative Commons Attribution 4.0 International License.Functional prog...
Monadic programming is an essential component in the toolbox of functional programmers. For the pure...
In functional programming, datatypes a la carte provide a convenient modular representation of recur...
Formalizing meta-theory, or proofs about programming languages, in a proof assistant has many well-k...
Formal reasoning in proof assistants, also known as mechanization, has high development costs. Build...
Formalizing meta-theory, or proofs about programming languages, in a proof assistant has many well-k...
Formalizing meta-theory, or proofs about programming languages, in a proof assistant has many well-k...
AbstractA definitional extension LNGMIt of the Calculus of Inductive Constructions (CIC), that under...
Research in dependent type theories [ML71a] has, in the past, concentrated on its use in the present...
Formal reasoning in proof assistants, also known as mechaniza-tion, has high development costs. Buil...
Martin L\uf6f Type Theory, having put computation at the center of logicalreasoning, has been shown ...
Formalizing meta-theory, or proofs about programming languages, in a proof assistant has many well-k...
AbstractThis is a survey article on the use of coalgebras in functional programming and type theory....
at the University of Strathclyde and asked to form the Mathematically Structured Programming researc...
Nested datatypes are families of datatypes that are indexed over all types such that the constructor...
This work is licensed under a Creative Commons Attribution 4.0 International License.Functional prog...
Monadic programming is an essential component in the toolbox of functional programmers. For the pure...
In functional programming, datatypes a la carte provide a convenient modular representation of recur...
Formalizing meta-theory, or proofs about programming languages, in a proof assistant has many well-k...
Formal reasoning in proof assistants, also known as mechanization, has high development costs. Build...
Formalizing meta-theory, or proofs about programming languages, in a proof assistant has many well-k...
Formalizing meta-theory, or proofs about programming languages, in a proof assistant has many well-k...
AbstractA definitional extension LNGMIt of the Calculus of Inductive Constructions (CIC), that under...
Research in dependent type theories [ML71a] has, in the past, concentrated on its use in the present...
Formal reasoning in proof assistants, also known as mechaniza-tion, has high development costs. Buil...
Martin L\uf6f Type Theory, having put computation at the center of logicalreasoning, has been shown ...
Formalizing meta-theory, or proofs about programming languages, in a proof assistant has many well-k...
AbstractThis is a survey article on the use of coalgebras in functional programming and type theory....
at the University of Strathclyde and asked to form the Mathematically Structured Programming researc...
Nested datatypes are families of datatypes that are indexed over all types such that the constructor...
This work is licensed under a Creative Commons Attribution 4.0 International License.Functional prog...
Monadic programming is an essential component in the toolbox of functional programmers. For the pure...