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 (オーストリア科学技術研究所)、Jasmin Blanchette (ルートヴィヒ・マクシミリアン大学ミュンヘン)分類 : cs.FL (形式言語とオートマタ理論)発表会議 : 第14回インタラクティブ定理証明国際会議 (ITP 2023)論文リンク : https://arxiv.org/abs/2302.06420 本論文はLean 3証明支援系を用いて一般文法(すなわちtype-0文法)を形式化した。著者は書き換え規則と文法から導出される単語の基本概念を定義し、文法を用いてtype-0言語のクラスが4つの操作下での閉包性を証明した:和集合、逆転、連接、およびKleene閉包。文献は主にチューリング機械の議論に焦点を当てており、これはより形式化が困難である可能性がある。Kleene閉包については、著者は文献に従うことができず、文法ベースの独自の構成を提案した。
形式言語理論の重要性 : 形式言語の概念はコンピュータ科学の中核であり、チューリング機械と形式文法を含む複数の形式主義を通じて認識可能であるtype-0文法とチューリング機械の等価性 : チューリング機械と一般文法は、再帰的可枚挙言語またはtype-0言語の同一クラスを特徴付ける既存の形式化研究の限界 : 証明支援系におけるチューリング機械の形式化に関する豊富な研究がある一方で、一般文法の形式化研究は相対的に不足している文法の利点 : 一般文法はチューリング機械よりも定義が容易であり、一般文法に関する特定の証明はチューリング機械の類似性質の証明よりもはるかに単純である閉包性質の重要性 : type-0言語の閉包性質は形式言語理論の基礎的結果である形式的検証の必要性 : これらの基礎的結果の正確性を確保するため、機械検査可能な厳密な証明が必要である一般文法の初の完全形式化 : Lean 3におけるtype-0文法の基本概念と操作の完全な定義4つの閉包性質の形式化証明 :
和集合に関する閉包性 逆転に関する閉包性 連接に関する閉包性 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 and Norrish(HOL4)、Firsov and Uustalu(Agda)、Ramos(Coq)一般文法 : 本論文が初の完全形式化有限オートマタ : Thompson and 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階層の構築に堅固な基礎を築き、形式言語理論と証明支援系コミュニティの両方に重要な価値を持つ。