Core Concepts
Metatheory.jlは、Juliaの優れた機能を活用して、柔軟で使いやすく、高性能なEグラフとEquality Saturationの実装を提供する。これにより、高水準言語と低水準言語の間の「二言語問題」を解決する。
Abstract
Metatheory.jlは、Juliaのメタプログラミング機能を活用して、一般目的の代数的メタプログラミングとシンボリック計算のためのライブラリを提供する。主な特徴は以下の通り:
- Juliaの動的型システムと整合性のとれたリライトルールのeDSLとパターンマッチャーを提供する。既存のシンボリック計算パッケージ(Symbolics.jl)と容易に統合できる。
- クラシカルなリライティングと関数的なコンビネータ、パターンマッチングを提供する。
- Symbolics.jlやSciMLエコシステムとの深い統合を実現する。
- GraphVizによるEグラフの視覚化を自動的にサポートする。
パフォーマンス評価の結果、Metatheory.jlのEquality Saturationの実装は、Rustで実装されたeggライブラリと比較して遜色ない性能を示した。Metatheory.jlは、動的型付けと高水準言語の利便性を損なうことなく、高性能なEquality Saturationを実現している。
Stats
Metatheory.jlのバージョン3.0は、バージョン2.0と比べて、単純な命題論理の定理証明タスクで最大119倍の高速化を実現した。
全体的に、Equality Saturationの実行時間を半分に短縮することができた。
Quotes
"Metatheory.jlは、Juliaの優れた機能を活用して、柔軟で使いやすく、高性能なEグラフとEquality Saturationの実装を提供する。"
"Metatheory.jlは、動的型付けと高水準言語の利便性を損なうことなく、高性能なEquality Saturationを実現している。"