Elpi

Overview

  • Introduction
  • Getting started

Syntax

  • Lexical conventions
  • Terms
  • Type declarations
  • Inference rules and queries
  • Constraint handling rules
  • File structure and attributes
  • Rule attributes

Semantics

  • Elpi = λProlog + CHR
  • Logic Programming
  • Constraints
  • The constraint store
  • Formal semantics

Language features

  • Unification and variables
  • Binders and HOAS
  • Control and cut
  • Spilling
  • Types and type checking
  • Determinacy checking
  • Argument indexing
  • Pitfalls

Examples

  • Simply-typed λ-calculus
  • Hindley-Milner type inference

Libraries

  • Built-in predicates
  • The standard library

Debugging & tooling

  • Debugging and tracing

Embedding and extending

  • Embedding and extending Elpi

Reference

  • Compatibility with Teyjus, Prolog and legacy Elpi
  • Bibliography

API

  • elpi
Elpi
  • Search


© Copyright 2022, Enrico Tassi.

Built with Sphinx using a theme provided by Read the Docs.