We formalized general (i.e., type-0) grammars using the Lean 3 proof assistant. We defined basic notions of rewrite rules and of words derived by a grammar, and used grammars to show closure of the class of type-0 languages under four operations: union, reversal, concatenation, and the Kleene star. The literature mostly focuses on Turing machine arguments, which are possibly more difficult to formalize. For the Kleene star, we could not follow the literature and came up with our own grammar-based construction.
论文ID : 2302.06420标题 : Closure Properties of General Grammars -- Formally Verified作者 : Martin Dvorak (Institute of Science and Technology Austria), Jasmin Blanchette (Ludwig-Maximilians-Universität München)分类 : cs.FL (Formal Languages and Automata Theory)发表会议 : 14th International Conference on Interactive Theorem Proving (ITP 2023)论文链接 : https://arxiv.org/abs/2302.06420 本文使用Lean 3证明助手形式化了通用语法(即type-0语法)。作者定义了重写规则和由语法派生的单词的基本概念,并使用语法证明了type-0语言类在四种操作下的封闭性:并集、逆转、连接和Kleene星运算。文献主要关注图灵机论证,这可能更难形式化。对于Kleene星运算,作者无法遵循文献并提出了自己的基于语法的构造。
形式语言理论的重要性 : 形式语言概念是计算机科学的核心,可以通过多种形式主义来识别,包括图灵机和形式语法type-0语法与图灵机的等价性 : 图灵机和通用语法都刻画了递归可枚举语言或type-0语言的同一类别现有形式化工作的局限 : 已有大量关于图灵机在证明助手中形式化的工作,但通用语法的形式化工作相对缺乏语法的优势 : 通用语法比图灵机更容易定义,某些关于通用语法的证明比图灵机的类似性质证明要简单得多封闭性质的重要性 : type-0语言的封闭性质是形式语言理论的基础结果形式化验证的需求 : 需要机器检查的严格证明来确保这些基础结果的正确性首次形式化通用语法 : 在Lean 3中完整定义了type-0语法的基本概念和操作四个封闭性质的形式化证明 :
并集封闭性 逆转封闭性 连接封闭性 Kleene星运算封闭性 创新的Kleene星构造 : 由于文献缺乏基于语法的构造,作者发明了自己的语法基础构造方法可重用的抽象框架 : 开发了lifted_grammar结构来减少重复代码并提供通用的证明模式约12,500行的开源Lean代码库 : 提供完整的形式化实现供社区使用inductive symbol (T : Type) (N : Type)
| terminal : T → symbol
| nonterminal : N → symbol
structure grule (T : Type) (N : Type) :=
( input_L : list (symbol T N))
( input_N : N)
( input_R : list (symbol T N))
( output_string : list (symbol T N))
structure grammar (T : Type) :=
(nt : Type)
(initial : nt)
(rules : list (grule T nt))
def grammar_transforms (g : grammar T) (w1 w2 : list (symbol T g.nt)) : Prop :=
∃ r : grule T g.nt,
r ∈ g.rules ∧
∃ u v : list (symbol T g.nt),
w1 = u ++ r.input_L ++ [symbol.nonterminal r.input_N] ++ r.input_R ++ v ∧
w2 = u ++ r.output_string ++ v
def grammar_derives (g : grammar T) :
list (symbol T g.nt) → list (symbol T g.nt) → Prop :=
relation.refl_trans_gen (grammar_transforms g)
为了减少重复代码,作者开发了一个抽象结构:
包含较小语法g0和较大语法g 提供lift_nt和sink_nt函数在不同非终结符类型间转换 确保注入性和对应规则的正确性 传统的上下文无关语法连接构造在通用语法中失效。作者的解决方案:
为每个终结符创建代理非终结符 确保g1和g2使用的非终结符完全分离 避免跨连接边界的字符串匹配问题 由于文献缺乏基于语法的构造,作者发明了新方法:
引入分隔符#来构建隔离单词的"隔间" 使用清理器R从头到尾遍历并移除分隔符 新规则集:P* = P ∪ {Z → ZS#, Z → R#, R# → R, R# → ε} ∪ {Rt → tR | t ∈ T} 证明助手 : Lean 3数学库 : mathlib代码规模 : 约12,500行格式良好的Lean代码元编程 : 使用Lean的元编程框架开发小规模自动化结构归纳 : 对派生关系使用结构归纳证明案例分析 : 对不同规则应用情况进行详尽的案例分析不变量维护 : 在复杂证明中维护关键不变量并集封闭性 : theorem T0_of_T0_u_T0 (L1 L2 : language T) : is_T0 L1 ∧ is_T0 L2 → is_T0 (L1 + L2)逆转封闭性 : theorem T0_of_reverse_T0 (L : language T) : is_T0 L → is_T0 (reverse_lang L)连接封闭性 : theorem T0_of_T0_c_T0 (L1 L2 : language T) : is_T0 L1 ∧ is_T0 L2 → is_T0 (L1 * L2)Kleene星封闭性 : theorem T0_of_star_T0 (L : language T) : is_T0 L → is_T0 L.star并集和逆转 : 相对简单,主要使用标准构造连接 : 中等复杂度,需要处理边界匹配问题Kleene星 : 最复杂,仅star_induction引理就超过3000行代码上下文无关语法 : 证明可以重用来建立上下文无关语言的封闭性连接引理 : theorem CF_of_CF_u_CF等可直接应用于上下文无关语言上下文无关语法 : Carlson等(Mizar)、Minamide(Isabelle/HOL)、Barthwal和Norrish(HOL4)、Firsov和Uustalu(Agda)、Ramos(Coq)通用语法 : 本文是首次完整形式化有限自动机 : Thompson和Dillies(Lean)、正则表达式形式化图灵机 : 多个证明助手中的实现,最新的Balbach工作甚至证明了Cook-Levin定理λ演算 : Norrish(HOL4)、Forster等(Coq)部分递归函数 : Norrish(HOL4)、Carneiro(Lean)语法优于图灵机 : 对于封闭性质证明,语法可能比图灵机更方便形式化的可行性 : 复杂的语言理论结果可以在现代证明助手中成功形式化抽象的重要性 : 良好的抽象(如lifted_grammar)对大规模形式化至关重要复杂性类别 : 语法不能定义重要的复杂性类别(如P类),仍需要图灵机等模型构造性 : 作者没有尝试使开发具有构造性交集封闭性 : 未形式化交集封闭性,因为不知道仅基于语法的优雅构造完整Chomsky层次 : 将上下文敏感、上下文无关和正则语法纳入库中等价性证明 : 尝试证明通用语法与图灵机的等价性连接mathlib : 将正则语言的mathlib结果连接到该库开创性工作 : 首次完整形式化通用语法,填补重要空白技术创新 : Kleene星的原创构造展示了深厚的理论功底工程质量 : 12,500行高质量代码,良好的抽象设计理论贡献 : 证明基于语法的方法在某些情况下优于图灵机方法可重用性 : lifted_grammar等抽象为后续工作提供基础表达能力限制 : 无法处理复杂性理论中的重要概念构造性缺失 : 未考虑构造性数学的要求完整性 : 缺少交集等重要操作的处理文档 : 某些技术细节的解释可以更详细理论意义 : 为形式语言理论的机器验证奠定基础方法论价值 : 展示了大规模形式化项目的最佳实践社区贡献 : 开源代码库将促进相关研究教育价值 : 可作为学习形式化方法的优秀案例理论计算机科学 : 语言理论和自动机理论的研究形式化数学 : 需要严格证明的数学研究编译器验证 : 语法分析和语言处理的正确性保证教学 : 形式语言课程的辅助材料论文引用了26篇重要文献,涵盖:
经典教科书:Aho & Ullman的解析理论、Hopcroft等的自动机理论 形式化工作:各种证明助手中的计算模型实现 工具文档:Lean 3和mathlib的相关资料 总结 : 这是一篇高质量的理论计算机科学论文,不仅在技术上有重要贡献,更在形式化方法学上提供了宝贵经验。作者的工作为构建完整的形式化Chomsky层次奠定了坚实基础,对形式语言理论和证明助手社区都具有重要价值。