最初の証明

十分 · 三つの手順 · 信頼を前提にするものは何もありません

これは初心者向けの道です。プログラマーである必要はなく、アカウントも 不要で、あなたが存在することを私たちに知らせる必要もありません。この 道の終わりには、あなた自身のコンピュータが——私たちのものではなく、 私たちの言葉によってでもなく——ライブラリにある実際のルールの背後に ある数学を確認し終えているはずです。

すでにプルーバーの扱いに慣れている方には、 完全な手順がさらに先まで進みます: フロントのビルドと、真理値表の全行の確認です。このページは証明の ところで止まります。そこが最も重要な部分であり、また、何もインストール する必要のない部分だからです。

これから確認すること

このルールはbrief-fill policyと呼ばれています。 アシスタントが、所有者に尋ねる代わりに、所有者に代わって答えてよいのは いつかを決めるものです。これについて四つの主張がなされており、その 四つすべてが、これからあなたのマシンでテストされます:

これらはブログ記事の中の約束ではありません。定理であり、これから プルーバーがそれを破ろうと試みます。

手順1 — プルーバーを入手する

github.com/alire-project/GNAT-FSF-builds/releases

あなたのマシンに合ったgnatproveファイルを取得してください — -x86_64-linux、Macなら-darwin、あるいは -windows64です。どこに展開してもかまいません。 インストーラーはなく、システムには何も入り込まず、バックグラウンドで 動くものもありません。終わったらフォルダを削除すれば、何もなかったのと 同じ状態に戻ります。

これは無料であり、私たちのものでもありません — 私たちからでは なく、Adaコミュニティから来ています。それが重要な点です。私たちの 仕事を確認するものが、私たちがあなたに手渡したものであってはならない のです。

手順2 — ルールを入手する

brief-fill-policy.tar.gz (6,918 bytes)

sha256: 14bb06671459784d2d571e7b5e2afc3037894c241517612b026dbe053fb6b180

展開してください。中には、ソースコード、証明、そしてそのルールが 何をするかの平易な説明が入っています。

最初の実行では、チェックサムは無視してかまいません — 手順3の 証明はそれに依存しません。これは、受け取ったファイルが私たちの公開 したファイルと同一であることを確認したいときのためにあり、 the catalogueが示しているのと同じものです。

手順3 — あなたのコンピュータに確認させる

展開したフォルダでターミナルを開き、次の二行を実行してください:

cd brief-fill-policy/core/src
gnatprove -P proof.gpr -f -U --level=2

待ちます。終わったら、次の二語を探してください:

0 unproved

それだけです。それが演習のすべてです。 他に何も インストールする必要はなく、この手順は他に何も入っていない素の マシンでも動きます — ダウンロードしたプルーバーが、証明に必要な ものすべてを持っているからです。

たった今起きたこと

あなたのコンピュータは、上記の四つの主張を受け取り、そのいずれかが 成り立たないケースを探そうとして、見つけられませんでした — そんな ケースが存在しないからです。「テストしてみたら、うまくいったようだ」 ではありません。「メンテナーがそう言っている」でもありません。言い くるめることのできない機械が、反例を探しに行き、何も持たずに戻って きたのです。

あなたは、それを私たちが言うことを信頼したわけではありません。 あなたは、自分が所有するハードウェアの上で、それが起こるのを見た のです。

任意 — わざと壊してみる

あと五分あるなら、やってみる価値のある部分です。「はい」としか 言わない確認には、大した価値がないからです。

任意のテキストエディタでbrief_fill_policy_pkg.adsを開き、 ストアが存在しない場合でも答えが通ってしまうよう、ルールを変更して ください。同じコマンドをもう一度実行します。プルーバーは拒否します — そして、あなたがたった今破った、まさにその定理の名前を挙げます。

その拒否こそが、セキュリティモデルのすべてです。Ghillieは、これに 通らないものを一切インストールしません。つまり、あなたがたった今 手作業で行ったことを、彼はあなたに代わって毎回行っているのです。

これが証明しないこと

後になってあなたが気づくよりは、私たちから先にお伝えしておきたいと 思います。証明が対象とするのは判断ルールです — 誰が何を 見てよいか、何が外に出てよいか、届いたものが何を満たさなければならない か。それ以外のソフトウェアが魔法になるわけではありませんし、私たちは そうだと主張してもいません。その正直さが約束であり、それが約束の すべてです。

次に行く場所

うまくいかなかった場合、それも一つの知見です。ぜひお聞かせ ください。説明のつかない拒否のほうが、成功よりも私たちにとって 興味深いものです。