package dedukti
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
sha512=97171b48dd96043d84587581d72edb442f63e7b5ac1695771aa1c3c9074739e15bc7d17678fedb7062acbf403a0bf323d97485c31b92376b80c63b5c2300ee3c
    
    
  sha256=5e1b6a859dfa1eb2098947a99c7d11ee450f750d96da1720f4834e1505d1096c
    
    
  doc/dedukti.kernel/Kernel/Term/index.html
Module Kernel.TermSource
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.