package lambdapi
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=d01e5f13db2eaba6e4fe330667149e0059d4886c651ff9d6b672db2dfc9765ed
sha512=33b68c972aca37985ed73c527076198e7d4961c7e27c89cdabfe4d1cff97cd41ccfb85ae9499eb98ad9a0aefd920bc55555df6393fc441ac2429e4d99cddafa8
doc/lambdapi.export/Export/Hrs/index.html
Module Export.HrsSource
This module provides a function to translate a signature to the HRS format used in the confluence competition.
- Lambdapi terms are translated to the following HRS term algebra with a unique type t:
A : t -> t -> t // for application
L : t -> (t -> t) -> t // for λ
B : t -> t -> (t -> t) -> t // for let
P : t -> (t -> t) -> t // for Π
Function symbols and variables are translated as symbols of type t.
Pattern variables of arity n are translated as variables of type t -> ... -> t with n times ->.
- In the hrs format, variable names must be distinct from function symbol names. So bound variables are translated into positive integers and pattern variables are prefixed by
"$".
- There is no clash between function symbol names and A, B, L, P because function symbol names are fully qualified.
- Function symbol names are fully qualified but
"."is replaced by"_"because"."cannot be used in identifiers ("."is used in lambda abstractions).
- Two occurrences of the same pattern variable name may have two different arities (in two different rules). So pattern variable names are prefixed by the rule number.
TO DO:
- HRS does not accept unicode characters.
- Optim: output only the symbols used in the rules.
syms maps every symbol to a name.
bvars is the set of abstracted variables.
sym_name s translates the symbol name of s.
add_sym declares a Lambdapi symbol.
sym ppf s translates the Lambdapi symbol s.
add_bvar v declares an abstracted Lambdapi variable.
bvar v translates the Lambdapi variable v.
pvar i translates the pattern variable index i.
add_pvar i k declares a pvar of index i and arity k.
term ppf t translates the term t.
rule ppf r translates the pair of terms r as a rule.
sym_rule ppf s r increases the number of rules and translates the sym_rule r.
Translate the rules of symbol s.
Translate the rules of a dependency except if it is a ghost signature.
sign ppf s translates the Lambdapi signature s.