We introduce Nominal Matching Logic (NML) as an extension of Matching Logic with names and binding following the Gabbay-Pitts nominal approach. Matching logic is the foundation of the $\mathbb{K}$ framework, used to specify programming languages and automatically derive associated tools (compilers, debuggers, model checkers, program verifiers). Matching logic does not include a primitive notion of name binding, though binding operators can be represented via an encoding that internalises the graph of a function from bound names to expressions containing bound names. This approach is sufficient to represent computations involving binding operators, but has not been reconciled with support for inductive reasoning over syntax with binding (e.g., reasoning over $\lambda$-terms). Nominal logic is a formal system for reasoning about names and binding, which provides well-behaved and powerful principles for inductive reasoning over syntax with binding, and NML inherits these principles. We discuss design alternatives for the syntax and the semantics of NML, prove meta-theoretical properties and give examples to illustrate its expressive power. In particular, we show how induction principles for $\lambda$-terms ($\alpha$-structural induction) can be defined and used to prove standard properties of the $\lambda$-calculus.
翻译:我们引入名匹配逻辑( NML ), 以之作为根据 Gabay- Pitts 名义方法将匹配逻辑与名称和约束性匹配逻辑( NML ) 的延伸。 匹配逻辑是用于指定程序语言和自动生成相关工具( complilers、 debuggers、 模型校对器、 程序校验器) 的 $mathbb{K} 框架的基础。 匹配逻辑并不包含原始名称约束性概念, 尽管约束操作员可以通过编码将约束名称的函数图内化为含有约束名称的表达式。 这种方法足以代表约束操作员的计算, 但没有与对约束性操作员的输入推理的支持相调( 例如, 对 $lumbda$- terms 的推理) 。 匹配逻辑是一个正式的命名和约束性推理系统, 它为约束性词调推理提供了良好和强有力的原则, NML 继承了这些原则。 我们讨论NML 的合成和语义表达的替代方法, 证明元- centalalalalalalal exalalal- pain- pain- pain- pain- prescurrevublementaltitutionaltitutionaltitutional- procal- proclemental- sal- exual- sal- presualtitionaltitional- ex) ex