Index of /~nad/listings/dependently-typed-syntax

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]Agda.Builtin.Bool.html 2025-05-12 09:10 3.1K 
[TXT]Agda.Builtin.Equalit..>2025-05-12 09:10 2.3K 
[TXT]Agda.Builtin.Equalit..>2025-05-12 09:10 2.6K 
[TXT]Agda.Builtin.Maybe.html2025-05-12 09:10 2.3K 
[TXT]Agda.Builtin.Nat.html 2025-05-12 09:10 23K 
[TXT]Agda.Builtin.Sigma.html2025-05-12 09:10 3.4K 
[TXT]Agda.Builtin.Strict...>2025-05-12 09:10 4.8K 
[TXT]Agda.Builtin.Unit.html 2025-05-12 09:10 1.7K 
[TXT]Agda.Primitive.html 2025-05-12 09:10 5.4K 
[TXT]Agda.css 2025-05-12 09:10 1.8K 
[TXT]Algebra.Bundles.Raw...>2025-05-12 09:10 66K 
[TXT]Algebra.Bundles.html 2025-05-12 09:10 282K 
[TXT]Algebra.Consequences..>2025-05-12 09:10 9.5K 
[TXT]Algebra.Consequences..>2025-05-12 09:10 48K 
[TXT]Algebra.Consequences..>2025-05-12 09:10 179K 
[TXT]Algebra.Construct.Na..>2025-05-12 09:10 17K 
[TXT]Algebra.Construct.Na..>2025-05-12 09:10 18K 
[TXT]Algebra.Construct.Na..>2025-05-12 09:10 56K 
[TXT]Algebra.Construct.Na..>2025-05-12 09:10 109K 
[TXT]Algebra.Core.html 2025-05-12 09:10 3.3K 
[TXT]Algebra.Definitions...>2025-05-12 09:10 19K 
[TXT]Algebra.Definitions...>2025-05-12 09:10 118K 
[TXT]Algebra.Lattice.Bund..>2025-05-12 09:10 7.4K 
[TXT]Algebra.Lattice.Bund..>2025-05-12 09:10 53K 
[TXT]Algebra.Lattice.Cons..>2025-05-12 09:10 4.8K 
[TXT]Algebra.Lattice.Cons..>2025-05-12 09:10 19K 
[TXT]Algebra.Lattice.Cons..>2025-05-12 09:10 6.5K 
[TXT]Algebra.Lattice.Prop..>2025-05-12 09:10 292K 
[TXT]Algebra.Lattice.Prop..>2025-05-12 09:10 6.2K 
[TXT]Algebra.Lattice.Prop..>2025-05-12 09:10 43K 
[TXT]Algebra.Lattice.Prop..>2025-05-12 09:10 11K 
[TXT]Algebra.Lattice.Stru..>2025-05-12 09:10 40K 
[TXT]Algebra.Morphism.Def..>2025-05-12 09:10 11K 
[TXT]Algebra.Morphism.Str..>2025-05-12 09:10 210K 
[TXT]Algebra.Morphism.html 2025-05-12 09:10 47K 
[TXT]Algebra.Properties.C..>2025-05-12 09:10 112K 
[TXT]Algebra.Properties.G..>2025-05-12 09:10 70K 
[TXT]Algebra.Properties.L..>2025-05-12 09:10 21K 
[TXT]Algebra.Properties.Q..>2025-05-12 09:10 17K 
[TXT]Algebra.Properties.S..>2025-05-12 09:10 8.2K 
[TXT]Algebra.Structures.B..>2025-05-12 09:10 65K 
[TXT]Algebra.Structures.html2025-05-12 09:10 233K 
[TXT]Algebra.html 2025-05-12 09:10 1.9K 
[TXT]Axiom.Extensionality..>2025-05-12 09:10 21K 
[TXT]Axiom.UniquenessOfId..>2025-05-12 09:10 3.0K 
[TXT]Axiom.UniquenessOfId..>2025-05-12 09:10 21K 
[TXT]Data.Bool.Base.html 2025-05-12 09:10 13K 
[TXT]Data.Bool.Properties..>2025-05-12 09:10 207K 
[TXT]Data.Empty.Polymorph..>2025-05-12 09:10 4.5K 
[TXT]Data.Empty.html 2025-05-12 09:10 5.0K 
[TXT]Data.Irrelevant.html 2025-05-12 09:10 12K 
[TXT]Data.Maybe.Base.html 2025-05-12 09:10 37K 
[TXT]Data.Maybe.Effectful..>2025-05-12 09:10 24K 
[TXT]Data.Maybe.Relation...>2025-05-12 09:10 56K 
[TXT]Data.Maybe.Relation...>2025-05-12 09:10 33K 
[TXT]Data.Maybe.html 2025-05-12 09:10 8.0K 
[TXT]Data.Nat.Base.html 2025-05-12 09:10 103K 
[TXT]Data.Nat.Properties...>2025-05-12 09:10 938K 
[TXT]Data.Nat.html 2025-05-12 09:10 5.9K 
[TXT]Data.Parity.Base.html 2025-05-12 09:10 19K 
[TXT]Data.Product.Base.html 2025-05-12 09:10 87K 
[TXT]Data.Product.html 2025-05-12 09:10 28K 
[TXT]Data.Sign.Base.html 2025-05-12 09:10 8.9K 
[TXT]Data.Sum.Base.html 2025-05-12 09:10 26K 
[TXT]Data.These.Base.html 2025-05-12 09:10 37K 
[TXT]Data.Unit.Base.html 2025-05-12 09:10 1.9K 
[TXT]Data.Unit.Polymorphi..>2025-05-12 09:10 3.6K 
[TXT]Data.Unit.Properties..>2025-05-12 09:10 18K 
[TXT]Data.Unit.html 2025-05-12 09:10 1.8K 
[TXT]Data.Universe.Indexe..>2025-05-12 09:10 6.8K 
[TXT]Data.Universe.html 2025-05-12 09:10 2.6K 
[TXT]Effect.Applicative.html2025-05-12 09:10 36K 
[TXT]Effect.Choice.html 2025-05-12 09:10 4.4K 
[TXT]Effect.Empty.html 2025-05-12 09:10 3.8K 
[TXT]Effect.Functor.html 2025-05-12 09:10 13K 
[TXT]Effect.Monad.html 2025-05-12 09:10 35K 
[TXT]Function.Base.html 2025-05-12 09:10 76K 
[TXT]Function.Bundles.html 2025-05-12 09:10 128K 
[TXT]Function.Consequence..>2025-05-12 09:10 12K 
[TXT]Function.Consequence..>2025-05-12 09:10 23K 
[TXT]Function.Consequence..>2025-05-12 09:10 35K 
[TXT]Function.Construct.C..>2025-05-12 09:10 119K 
[TXT]Function.Construct.I..>2025-05-12 09:10 46K 
[TXT]Function.Construct.S..>2025-05-12 09:10 72K 
[TXT]Function.Core.html 2025-05-12 09:10 5.0K 
[TXT]Function.Definitions..>2025-05-12 09:10 21K 
[TXT]Function.Dependent.B..>2025-05-12 09:10 9.3K 
[TXT]Function.Indexed.Rel..>2025-05-12 09:10 8.2K 
[TXT]Function.Metric.Bund..>2025-05-12 09:10 37K 
[TXT]Function.Metric.Core..>2025-05-12 09:10 2.8K 
[TXT]Function.Metric.Defi..>2025-05-12 09:10 35K 
[TXT]Function.Metric.Nat...>2025-05-12 09:10 29K 
[TXT]Function.Metric.Nat...>2025-05-12 09:10 2.8K 
[TXT]Function.Metric.Nat...>2025-05-12 09:10 18K 
[TXT]Function.Metric.Nat...>2025-05-12 09:10 19K 
[TXT]Function.Metric.Nat...>2025-05-12 09:10 1.8K 
[TXT]Function.Metric.Stru..>2025-05-12 09:10 22K 
[TXT]Function.Properties...>2025-05-12 09:10 25K 
[TXT]Function.Strict.html 2025-05-12 09:10 15K 
[TXT]Function.Structures...>2025-05-12 09:10 31K 
[TXT]Function.Structures...>2025-05-12 09:10 47K 
[TXT]Function.html 2025-05-12 09:10 2.2K 
[TXT]Induction.WellFounde..>2025-05-12 09:10 96K 
[TXT]Induction.html 2025-05-12 09:10 14K 
[TXT]Level.html 2025-05-12 09:10 5.6K 
[TXT]Relation.Binary.Bund..>2025-05-12 09:10 12K 
[TXT]Relation.Binary.Bund..>2025-05-12 09:10 98K 
[TXT]Relation.Binary.Cons..>2025-05-12 09:10 101K 
[TXT]Relation.Binary.Cons..>2025-05-12 09:10 50K 
[TXT]Relation.Binary.Cons..>2025-05-12 09:10 77K 
[TXT]Relation.Binary.Cons..>2025-05-12 09:10 80K 
[TXT]Relation.Binary.Cons..>2025-05-12 09:10 73K 
[TXT]Relation.Binary.Core..>2025-05-12 09:10 19K 
[TXT]Relation.Binary.Defi..>2025-05-12 09:10 98K 
[TXT]Relation.Binary.Inde..>2025-05-12 09:10 12K 
[TXT]Relation.Binary.Inde..>2025-05-12 09:10 17K 
[TXT]Relation.Binary.Inde..>2025-05-12 09:10 13K 
[TXT]Relation.Binary.Inde..>2025-05-12 09:10 11K 
[TXT]Relation.Binary.Inde..>2025-05-12 09:10 14K 
[TXT]Relation.Binary.Inde..>2025-05-12 09:10 2.1K 
[TXT]Relation.Binary.Latt..>2025-05-12 09:10 69K 
[TXT]Relation.Binary.Latt..>2025-05-12 09:10 13K 
[TXT]Relation.Binary.Latt..>2025-05-12 09:10 63K 
[TXT]Relation.Binary.Latt..>2025-05-12 09:10 1.7K 
[TXT]Relation.Binary.Morp..>2025-05-12 09:10 6.3K 
[TXT]Relation.Binary.Morp..>2025-05-12 09:10 38K 
[TXT]Relation.Binary.Prop..>2025-05-12 09:10 34K 
[TXT]Relation.Binary.Prop..>2025-05-12 09:10 11K 
[TXT]Relation.Binary.Prop..>2025-05-12 09:10 24K 
[TXT]Relation.Binary.Prop..>2025-05-12 09:10 18K 
[TXT]Relation.Binary.Prop..>2025-05-12 09:10 7.0K 
[TXT]Relation.Binary.Prop..>2025-05-12 09:10 37K 
[TXT]Relation.Binary.Prop..>2025-05-12 09:10 110K 
[TXT]Relation.Binary.Prop..>2025-05-12 09:10 4.8K 
[TXT]Relation.Binary.Prop..>2025-05-12 09:10 51K 
[TXT]Relation.Binary.Reas..>2025-05-12 09:10 32K 
[TXT]Relation.Binary.Reas..>2025-05-12 09:10 14K 
[TXT]Relation.Binary.Reas..>2025-05-12 09:10 54K 
[TXT]Relation.Binary.Reas..>2025-05-12 09:10 3.7K 
[TXT]Relation.Binary.Reas..>2025-05-12 09:10 5.4K 
[TXT]Relation.Binary.Reas..>2025-05-12 09:10 90K 
[TXT]Relation.Binary.Stru..>2025-05-12 09:10 10K 
[TXT]Relation.Binary.Stru..>2025-05-12 09:10 68K 
[TXT]Relation.Binary.html 2025-05-12 09:10 2.1K 
[TXT]Relation.Nullary.Dec..>2025-05-12 09:10 69K 
[TXT]Relation.Nullary.Dec..>2025-05-12 09:10 39K 
[TXT]Relation.Nullary.Neg..>2025-05-12 09:10 21K 
[TXT]Relation.Nullary.Neg..>2025-05-12 09:10 38K 
[TXT]Relation.Nullary.Rec..>2025-05-12 09:10 20K 
[TXT]Relation.Nullary.Ref..>2025-05-12 09:10 42K 
[TXT]Relation.Nullary.html 2025-05-12 09:10 6.3K 
[TXT]Relation.Unary.Predi..>2025-05-12 09:10 44K 
[TXT]Relation.Unary.html 2025-05-12 09:10 93K 
[TXT]deBruijn.Context.Bas..>2025-05-12 09:10 201K 
[TXT]deBruijn.Context.Ext..>2025-05-12 09:10 39K 
[TXT]deBruijn.Context.Ext..>2025-05-12 09:10 138K 
[TXT]deBruijn.Context.Ext..>2025-05-12 09:10 139K 
[TXT]deBruijn.Context.Ter..>2025-05-12 09:10 182K 
[TXT]deBruijn.Context.html 2025-05-12 09:10 4.2K 
[TXT]deBruijn.Substitutio..>2025-05-12 09:10 61K 
[TXT]deBruijn.Substitutio..>2025-05-12 09:10 147K 
[TXT]deBruijn.Substitutio..>2025-05-12 09:10 242K 
[TXT]deBruijn.Substitutio..>2025-05-12 09:10 23K 
[TXT]deBruijn.Substitutio..>2025-05-12 09:10 181K 
[TXT]deBruijn.Substitutio..>2025-05-12 09:10 168K 
[TXT]deBruijn.Substitutio..>2025-05-12 09:10 4.6K 
[TXT]deBruijn.Substitutio..>2025-05-12 09:10 171K 
[TXT]deBruijn.Substitutio..>2025-05-12 09:10 104K 
[TXT]deBruijn.Substitutio..>2025-05-12 09:10 270K 
[TXT]deBruijn.Substitutio..>2025-05-12 09:10 98K 
[TXT]deBruijn.Substitutio..>2025-05-12 09:10 155K 
[TXT]deBruijn.Substitutio..>2025-05-12 09:10 67K 
[TXT]deBruijn.Substitutio..>2025-05-12 09:10 239K 
[TXT]deBruijn.Substitutio..>2025-05-12 09:10 60K 

README
------------------------------------------------------------------------
-- A library for working with dependently typed syntax
-- Nils Anders Danielsson
------------------------------------------------------------------------

-- This library is leaning heavily on two of Conor McBride's papers:
--
-- * Type-Preserving Renaming and Substitution.
--
-- * Outrageous but Meaningful Coincidences: Dependent type-safe
--   syntax and evaluation.

-- This module gives a brief overview of the modules in the library.

module README where

------------------------------------------------------------------------
-- The library

-- Contexts, variables, context morphisms, context extensions, etc.

import deBruijn.Context

-- Parallel substitutions (defined using an inductive family).

import deBruijn.Substitution.Data.Basics

-- A map function for the substitutions.

import deBruijn.Substitution.Data.Map

-- Some simple substitution combinators. (Given a term type which
-- supports weakening and transformation of variables to terms various
-- substitutions are defined and various lemmas proved.)

import deBruijn.Substitution.Data.Simple

-- Given an operation which applies a substitution to a term,
-- satisfying some properties, more operations and lemmas are
-- defined/proved.
--
-- (This module reexports various other modules.)

import deBruijn.Substitution.Data.Application

-- A module which repackages (and reexports) the development under
-- deBruijn.Substitution.Data.

import deBruijn.Substitution.Data

-- Some modules mirroring the development under
-- deBruijn.Substitution.Data, but using substitutions defined as
-- functions rather than data.
--
-- The functional version of substitutions is in some respects easier
-- to work with than the one based on data, but in other respects more
-- awkward. I maintain both developments so that they can be compared.

import deBruijn.Substitution.Function.Basics
import deBruijn.Substitution.Function.Map
import deBruijn.Substitution.Function.Simple

-- The two definitions of substitutions are isomorphic (assuming
-- extensionality).

import deBruijn.Substitution.Isomorphic

------------------------------------------------------------------------
-- An example showing how the library can be used

-- A well-typed representation of a dependently typed language.

import README.DependentlyTyped.Term

-- Normal and neutral terms.

import README.DependentlyTyped.NormalForm

-- Instantiation of deBruijn.Substitution.Data for terms.

import README.DependentlyTyped.Term.Substitution

-- Instantiation of deBruijn.Substitution.Data for normal and neutral
-- terms.

import README.DependentlyTyped.NormalForm.Substitution

-- Normalisation by evaluation.

import README.DependentlyTyped.NBE

-- Various equality checkers (some complete, all sound).

import README.DependentlyTyped.Equality-checker

-- Raw terms.

import README.DependentlyTyped.Raw-term

-- A type-checker (sound).

import README.DependentlyTyped.Type-checker

-- A definability result: A "closed value" is the semantics of a
-- closed term if and only if it satisfies all "Kripke predicates".

import README.DependentlyTyped.Definability

-- An observation: There is a term without a corresponding syntactic
-- type (given some assumptions).

import README.DependentlyTyped.Term-without-type

-- Another observation: If the "Outrageous but Meaningful
-- Coincidences" approach is used to formalise a language, then you
-- can end up with an extensional type theory (with equality
-- reflection).

import README.DependentlyTyped.Extensional-type-theory

-- Inductively defined beta-eta-equality.

import README.DependentlyTyped.Beta-Eta

-- TODO: Add an untyped example.