package dedukti
Install
Dune Dependency
Authors
Maintainers
Sources
sha512=97171b48dd96043d84587581d72edb442f63e7b5ac1695771aa1c3c9074739e15bc7d17678fedb7062acbf403a0bf323d97485c31b92376b80c63b5c2300ee3c
sha256=5e1b6a859dfa1eb2098947a99c7d11ee450f750d96da1720f4834e1505d1096c
doc/dedukti.kernel/Kernel/Term/index.html
Module Kernel.Term
Source
Lambda terms
Terms
type term = private
| Kind
(*Kind
*)| Type of Basic.loc
(*Type
*)| DB of Basic.loc * Basic.ident * int
(*deBruijn indices
*)| Const of Basic.loc * Basic.name
(*Global variable
*)| App of term * term * term list
(*f a1
*)a2 ; ... ; an
, f not an App| Lam of Basic.loc * Basic.ident * term option * term
(*Lambda abstraction
*)| Pi of Basic.loc * Basic.ident * term * term
(*Pi abstraction
*)
add_n_lambdas n t
returns the term t
with n
(extra) anonymous lambda abstraction. Doesn't shift free variables of t
.
Position in a term
subterm t p
returns the subterm of t
at position p
. Raises InvalidSubterm in case of invalid position in given term.
Type for comparison functions
compare_term id_comp
t
t'
compares both terms (up to alpha equivalence). * The order relation goes : * Kind < Type < Const < DB < App < Lam < Pi * Besides * Const m v < Const m' v' iif (m,v) < (m',v') * DB n < DB n' iif n < n' * App f a args < App f' a' args' iif (f,a,args) < (f',a',args') * Lam x ty t < Lam x' ty' t' iif t < t' * Pi x a b < Pi x' a' b' iif (a,b) < (a',b')
Contexts
General context: variables have abstract annotations
Partially annotated context: as generated at rule parsing
Arity annotated context: used for rewriting in untyped setting
(n
, t
) represents the term represented by t
* (whichever its representation) under n
lambda abstractions.