We present a program logic for Pitts and Stark's {\nu}-calculus, an extension of the call-by-value simply-typed {\lambda}-calculus with a mechanism for the generation of fresh names. Names can be compared for (in)-equality, producing programs with subtle observable properties. Hidden names produced by interactions between generation and abstraction are captured logically with a second-order quantifier over type contexts. We illustrate usage of the logic through reasoning about well-known difficult cases from the literature.
翻译:我们为 Pitts 和 Stark 的 ~ nu} 计算 提出了一个程序逻辑, 即调用值简单型的 ~ lambda} 计算 的扩展, 以及生成新名称的机制。 名称可以比较为( ) 平等, 产生具有微妙可见属性的程序 。 代与 抽象 之间相互作用产生的隐藏名称可以逻辑地与类型背景的第二阶量化符一起采集。 我们通过对文献中众所周知的困难案例的推理来说明逻辑的用法 。