package lambdapi
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=221dff97ab245c49b7e6480fa2a3a331ab70eb86dd5d521e2c73151029bbb787
sha512=a39961bb7f04f739660a98a52981d4793709619cd21310ca6982ba78af81ef09e01c7517ee3b8b2687b09f7d2614d878c1d69494ca6ab8ef8205d240c216ce8a
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.