プログラミング言語および形式手法を専門とする独立研究グループ Inferaraの目標は、Web3開発者向けに形式検証をより利用しやすいものにすることです。

私たちは、自動定理証明器1,2がコードのエラーを発見するための最も強力なツールであることを知っています。しかし、大学以外では、ほとんど誰もそれを使用していません。


そこで、私たちは以下を目指します:

私たちは、成果をオープンソースとして公開しているため、皆様のご支援を必要としています💌


Support Inferara


Web3向けに設計された初の開発者に優しい形式仕様言語。

Inferenceを使えば、数学の博士号がなくても、スマートコントラクトの性質を指定し、形式的に証明することができます。

仕組み
        flowchart LR
            Inference --> WAT
            WAT --> WASM
            WASM --> V;
    

Inferenceのコンパイルプロセスは、以下のステップから構成されています:

        graph TD
            A[プログラム]
            PA[証明]
            A -->|帰納的プログラムシミュレーション| PA
            PA --> B
            PA --> C
            
            subgraph OC[動作コンテキスト]
                B[最終マシン状態]
            end

            subgraph LC[論理コンテキスト]
                C[証明すべき定理のリスト]
            end

            C -.-> |状態が到達可能であることを証明:トラップがなく、ガス切れなど| B
            C --> H[Hummer]
            C --> S[Inferara tactics]
            S -.-> H
            H -.-> S
            S --> D([✅ 正しさの証明書])
            H --> D;
    

Inferenceは、Inferaraの非決定的抽象機械実行に関する研究に基づいた形式仕様プログラミング言語です。詳細については、論文をご覧ください。

Inferenceドキュメント(英語版)