Proofs and types
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Notions of computation and monads
Information and Computation
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
Substitution: a formal methods case study using monads and transformations
TAPSOFT '93 Selected papers of the colloquium on Formal approaches of software engineering
Extending the type checker of Standard ML by polymorphic recursion
Theoretical Computer Science - Special issue: Gentzen
A Logic for Parametric Polymorphism
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
A Formalization of the Strong Normalization Proof for System F in LEGO
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
Logical Relations and Inductive/Coinductive Types
Proceedings of the 12th International Workshop on Computer Science Logic
MPC '98 Proceedings of the Mathematics of Program Construction
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
Semantical Analysis of Higher-Order Abstract Syntax
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
Abstract Syntax and Variable Binding
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
Extensional Equality in Intensional Type Theory
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
de Bruijn notation as a nested datatype
Journal of Functional Programming
Monotone Inductive and Coinductive Constructors of Rank 2
CSL '01 Proceedings of the 15th International Workshop on Computer Science Logic
Recursion on Nested Datatypes in Dependent Type Theory
CiE '08 Proceedings of the 4th conference on Computability in Europe: Logic and Theory of Algorithms
MPC '08 Proceedings of the 9th international conference on Mathematics of Program Construction
Some Domain Theory and Denotational Semantics in Coq
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Outrageous but meaningful coincidences: dependent type-safe syntax and evaluation
Proceedings of the 6th ACM SIGPLAN workshop on Generic programming
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
A fresh look at programming with names and binders
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Hereditary substitutions for simple types, formalized
Proceedings of the third ACM SIGPLAN workshop on Mathematically structured functional programming
CiE'10 Proceedings of the Programs, proofs, process and 6th international conference on Computability in Europe
Accelerating Haskell array codes with multicore GPUs
Proceedings of the sixth workshop on Declarative aspects of multicore programming
Map fusion for nested datatypes in intensional type theory
Science of Computer Programming
Modelling Parallel Quantum Computing Using Transactional Memory
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
2-Dimensional Directed Type Theory
Electronic Notes in Theoretical Computer Science (ENTCS)
Polarized subtyping for sized types
CSR'06 Proceedings of the First international computer science conference on Theory and Applications
Formalized metatheory with terms represented by an indexed family of types
TYPES'04 Proceedings of the 2004 international conference on Types for Proofs and Programs
Exploring the regular tree types
TYPES'04 Proceedings of the 2004 international conference on Types for Proofs and Programs
Epigram: practical programming with dependent types
AFP'04 Proceedings of the 5th international conference on Advanced Functional Programming
Towards generic programming with sized types
MPC'06 Proceedings of the 8th international conference on Mathematics of Program Construction
Monads need not be endofunctors
FOSSACS'10 Proceedings of the 13th international conference on Foundations of Software Science and Computational Structures
Implementing a normalizer using sized heterogeneous types
MSFP'06 Proceedings of the 2006 international conference on Mathematically Structured Functional Programming
GMETA: a generic formal metatheory framework for first-order representations
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Strongly Typed Term Representations in Coq
Journal of Automated Reasoning
Subtyping by folding an inductive relation into a coinductive one
TFP'11 Proceedings of the 12th international conference on Trends in Functional Programming
Proceedings of the 8th ACM SIGPLAN workshop on Generic programming
Abstract syntax graphs for domain specific languages
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
New equations for neutral terms: a sound and complete decision procedure, formalized
Proceedings of the 2013 ACM SIGPLAN workshop on Dependently-typed programming
Names for free: polymorphic views of names and binders
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Hi-index | 0.00 |
We present a definition of untyped λ-terms using a heterogeneous datatype, i.e. an inductively defined operator. This operator can be extended to a Kleisli triple, which is a concise way to verify the substitution laws for λ-calculus. We also observe that repetitions in the definition of the monad as well as in the proofs can be avoided by using well-founded recursion and induction instead of structural induction. We extend the construction to the simply typed λ-calculus using dependent types, and show that this is an instance of a generalization of Kleisli triples. The proofs for the untyped case have been checked using the LEGO system.