package lambdapi
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=920de48ec6c2c3223b6b93879bb65d07ea24aa27f7f7176b3de16e5e467b9939
sha512=135f132730825adeb084669222e68bc999de97b12378fae6abcd9f91ae13093eab29fa49c854adb28d064d52c9890c0f5c8ff9d47a9916f66fe5e0fba3479759
doc/lambdapi.parsing/Parsing/Scope/index.html
Module Parsing.ScopeSource
Scoping. Convert parsed terms in core terms by finding out which identifiers are bound variables or function symbol declared in open modules.
val scope_term :
?typ:bool ->
?mok:(int -> Core.Term.meta option) ->
bool ->
Core.Sig_state.sig_state ->
Core.Env.env ->
Syntax.p_term ->
Core.Term.termscope ~typ ~mok prv expo ss env p t turns a pterm t into a term in the signature state ss and environment env (for bound variables). If expo is Public, then the term must not contain any private subterms. If ~typ is true, then t must be a type (defaults to false). No new metavariables may appear in t, but metavariables in the image of mok may be used. The function mok defaults to the function constant to None
type pre_rule = {pr_sym : Core.Term.sym;(*Head symbol of the LHS.
*)pr_lhs : Core.Term.term list;(*Arguments of the LHS.
*)pr_vars : Core.Term.term_env Bindlib.mvar;(*Pattern variables that appear in the RHS. The last
*)pr_xvars_nbvariables do not appear in the LHS.pr_rhs : Core.Term.tbox;(*Body of the RHS, should only be unboxed once.
*)pr_names : (int, string) Hashtbl.t;(*Gives the original name (if any) of pattern variable at given index.
*)pr_arities : int array;(*Gives the arity of all the pattern variables in field
*)pr_vars.pr_xvars_nb : int;(*Number of variables that appear in the RHS but not in the LHS.
*)
}Representation of a rewriting rule prior to SR-checking.
rule_of_pre_rule r converts a pre-rewrite rule into a rewrite rule.
scope_rule ur ss r turns a parser-level rewriting rule r, or a unification rule if ur is true, into a pre-rewriting rule.
val scope_rw_patt :
Core.Sig_state.sig_state ->
Core.Env.env ->
Syntax.p_rw_patt ->
(Core.Term.term, Core.Term.tbinder) Syntax.rw_pattscope_rw_patt ss env t turns a parser-level rewrite tactic specification s into an actual rewrite specification (possibly containing variables of env and using ss for aliasing).