package dedukti

  1. Overview
  2. Docs
An implementation of The Lambda-Pi Modulo Theory

Install

Dune Dependency

Authors

Maintainers

Sources

v2.7.tar.gz
sha512=97171b48dd96043d84587581d72edb442f63e7b5ac1695771aa1c3c9074739e15bc7d17678fedb7062acbf403a0bf323d97485c31b92376b80c63b5c2300ee3c
sha256=5e1b6a859dfa1eb2098947a99c7d11ee450f750d96da1720f4834e1505d1096c

doc/dedukti.kernel/Kernel/Subst/index.html

Module Kernel.SubstSource

Substitutions using DeBruijn indices.

Sourceexception UnshiftExn
Sourcetype substitution = Basic.loc -> Basic.ident -> int -> int -> Term.term

A substitution is a function mapping a variable (location, identifier and DB index) under a given number of lambda abstractions to a term. A substitution raises Not_found meaning that the variable is not subsituted.

Sourceval apply_subst : substitution -> int -> Term.term -> Term.term

apply_subst subst n t applies subst to t under n lambda abstractions.

  • Variables with DB index k < n are considered "locally bound" and are never substituted.
  • Variables with DB index k >= n may be substituted if k-n is mapped in sigma.
Sourceval shift : int -> Term.term -> Term.term

shift i t shifts every De Bruijn indices in t by i.

Sourceval unshift : int -> Term.term -> Term.term

unshift i t shifts every De Bruijn indices in t by -i. Raises UnshiftExn when t contains De Bruijn variables of indices k <i.

psubst_l l k t substitutes the first n De Bruijn variables (with n = length l) in t with the corresponding term in l. Unshifts n times the free variables with greater indices.

subst t u substitutes the first free De Bruijn variable with u in t. Unshifts the other free variables.

Sourceval subst_n : int -> Basic.ident -> Term.term -> Term.term

subst_n n y t substitutes the n-th free De Bruijn variable in t with a fresh variable named y becoming the first free variable in t. All others free variables are shifted by one preventing index collision.

Sourceval occurs : int -> Term.term -> bool

occurs n t returns true if t contains the variable n.

OCaml

Innovation. Community. Security.