What provides the highest level of assurance for correctness of execution within a programming language? One answer, and our solution in particular, to this problem is to provide a formalization for, if it exists, the denotational semantics of a programming language. Achieving such a formalization provides a gold standard for ensuring a programming language is correct-by-construction. In our effort on the DARPA V-SPELLS program, we worked to provide a foundation for the denotational semantics of a meta-language using a mathematical object known as an operad. This object has compositional properties which are vital to building languages from smaller pieces. In this paper, we discuss our formalization of an operad in the proof assistant Coq. Moreover, our definition within Coq is capable of providing proofs that objects specified within Coq are operads. This work within Coq provides a formal mathematical basis for our meta-language development within V-SPELLS. Our work also provides, to our knowledge, the first known formalization of operads within a proof assistant that has significant automation, as well as a model that can be replicated without knowledge of Homotopy Type Theory.
翻译:在编程语言中,执行的正确性得到最高程度的保证?一个答案,特别是我们对这一问题的解决方法是,如果存在的话,为编程语言的省略语义提供正规化。实现这种正规化提供了确保编程语言的正确性能的金质标准。在DARPA V-SPELLS 程序上,我们努力为使用一个被称为歌剧的数学对象的元语言的非注解语义语义打下了基础。这个对象的构成特性对于从小片中建立语言至关重要。在本文中,我们讨论在证据助理 Coq 中将一个剧本的剧本正式化。此外,我们在 Coq 中的定义能够提供证明Coq 中指定的对象是实际操作的。在Coq 中,我们的工作为我们在V-SPELLS 的元语言发展提供了一个正式的数学基础。我们的工作还为我们提供了已知的在有重要自动化能力的证据助理中将歌剧正式化的特性,以及可以复制的模型。</s>