package dedukti
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha512=97171b48dd96043d84587581d72edb442f63e7b5ac1695771aa1c3c9074739e15bc7d17678fedb7062acbf403a0bf323d97485c31b92376b80c63b5c2300ee3c
sha256=5e1b6a859dfa1eb2098947a99c7d11ee450f750d96da1720f4834e1505d1096c
doc/dedukti.kernel/Kernel/Signature/index.html
Module Kernel.SignatureSource
Global Environment
type signature_error = | UnmarshalBadVersionNumber of Basic.loc * file| UnmarshalSysError of Basic.loc * file * string| UnmarshalUnknown of Basic.loc * file| SymbolNotFound of Basic.loc * Basic.name| AlreadyDefinedSymbol of Basic.loc * Basic.name| CannotMakeRuleInfos of Rule.rule_error| CannotBuildDtree of Dtree.dtree_error| CannotAddRewriteRules of Basic.loc * Basic.name| ConfluenceErrorImport of Basic.loc * Basic.mident * Confluence.confluence_error| ConfluenceErrorRules of Basic.loc * Rule.rule_infos list * Confluence.confluence_error| GuardNotSatisfied of Basic.loc * Term.term * Term.term| CannotExportModule of Basic.mident * exn| PrivateSymbol of Basic.loc * Basic.name| ExpectedACUSymbol of Basic.loc * Basic.name
Wrapper exception for errors occuring while handling a signature.
type staticity = | Static| Definable of Term.algebra| Injective(*Is the symbol allowed to have rewrite rules or not ? And if it has, can it be considered injective by the type-checker ?
*)
A collection of well-typed symbols and rewrite rules.
make file creates a new signature corresponding to the file file.
get_name sg returns the name of the signature sg.
export sg oc saves the current environment in oc file.
import sg sg_ext imports the signature sg_ext into the signature sg.
is_static sg l cst is true when cst is a static symbol.
is_injective sg l cst is true when cst is either static or declared as injective.
get_type sg l md id returns the type of the constant md.id inside the environement sg.
get_staticity sg l md id returns the staticity of the symbol md.id
get_algebra sg l md id returns the algebra of the symbol md.id.
get_neutral sg l md id returns the neutral element of the ACU symbol md.id.
is_AC sg l na returns true when na is declared as AC symbol
import sg md the module md in the signature sg.
get_dtree sg filter l cst returns the decision/matching tree associated with cst inside the environment sg.
get_rules sg lc cst returns a list of rules that defines the symbol.
val add_external_declaration :
t ->
Basic.loc ->
Basic.name ->
scope ->
staticity ->
Term.term ->
unitadd_external_declaration sg l cst sc st ty declares the symbol id of type ty, scope sc and staticity st in the environment sg.
val add_declaration :
t ->
Basic.loc ->
Basic.ident ->
scope ->
staticity ->
Term.term ->
unitadd_declaration sg l id sc st ty declares the symbol id of type ty and staticity st in the environment sg. If sc is Private then the symbol cannot be used in other modules
add_rules sg rule_lst adds a list of rule to a symbol in the environement sg. All rules must be on the same symbol.
type rw_infos = {stat : staticity;(*Whether a symbol is definable
*)ty : Term.term;(*The type of a symbol
*)scope : scope;(*The scope of the symbol (
*)Public/Private)rules : Rule.rule_infos list;(*The stack pile of rules associated to a symbol. They are imported in the signature in the order by they are declared within the file
*)decision_tree : Dtree.t option;(*The decision tree computed for the set of rules declared above
*)
}fold_symbols f sg t folds the function f on all symbol_infos in the signature starting from t.
iter_symbols f sg iters the function f on all symbol_infos in the signature.