We present a device for specifying and reasoning about syntax for datatypes, programming languages, and logic calculi. More precisely, we study a notion of "signature" for specifying syntactic constructions. In the spirit of Initial Semantics, we define the "syntax generated by a signature" to be the initial object -- if it exists -- in a suitable category of models. In our framework, the existence of an associated syntax to a signature is not automatically guaranteed. We identify, via the notion of presentation of a signature, a large class of signatures that do generate a syntax. Our (presentable) signatures subsume classical algebraic signatures (i.e., signatures for languages with variable binding, such as the pure lambda calculus) and extend them to include several other significant examples of syntactic constructions. One key feature of our notions of signature, syntax, and presentation is that they are highly compositional, in the sense that complex examples can be obtained by gluing simpler ones. Moreover, through the Initial Semantics approach, our framework provides, beyond the desired algebra of terms, a well-behaved substitution and the induction and recursion principles associated to the syntax. This paper builds upon ideas from a previous attempt by Hirschowitz-Maggesi, which, in turn, was directly inspired by some earlier work of Ghani-Uustalu-Hamana and Matthes-Uustalu. The main results presented in the paper are computer-checked within the UniMath system.
翻译:我们提出了一个用于指定和推理数据类型、编程语言和逻辑计算符号的语法的装置。 更准确地说, 我们研究一个“ 签名” 概念, 以指定语义构造。 在初始语义学精神中, 我们定义“ 签名产生的语义” 是一个初始对象, 如果存在的话, 在一个合适的模型类别中。 在我们的框架里, 一个签名、 语法和演示的关联语法并不会自动得到保证。 我们通过签名的展示概念, 确定出大量确实产生语义的签名类别。 我们( 现成的) 签名包含经典语义表达的语义符号( 即语言的签名) 。 在初始语义表达的语义符号中, 我们的语义签名定义将“ 签名产生的语义符号” 定义为初始的首选项。 我们的签名、 语法和演示中的一种关键特征是高度的构成性特征, 意思是可以通过插入简单的语义来获取复杂的例子。 此外, 通过初始语义学方法, 我们的框架包含了包含了经典的语义表达( ), 从预想想必变变的变的变的语义理论中, 在先前的文文学中, 变造法中, 通过以前的文义学中,, 在以前的文义学中, 提供了一个预变变的文义中,, 在以前的文义学中, 的文义中, 的文义中, 在以前的文义中, 在以前的文义学中, 的文义中, 的文义学中, 通过以前的文义学中, 和文义学变的文义学中, 的文义学系中,, 的文义学中,, 提供了一种预变的文义中,,,,, 的文义学变的文义学中, 在以前的文义中, 在以前的文义中,, 的文义学中,, 的文义学变的文义学中, 的文义学中, 通过以前的文义中, 和文义中, 和文义中, 的文义中, 的文义中, 的文义中, 提供了某种变的文义中, 提供了某种变的文义中,,,