TypeScriptで形式的証明を取り入れたプログラミングを実践します。 形式的証明とは、仕様またはモデルが数理論理学的に正しいものであり実装可能であることの形式手法による証明です。 本稿では形式手法のうち、型システムを利用した軽量形式手法による形式的証明を扱います。 この記事はTypeScript アドベントカレンダー2015 1日目の記事です。 TypeScriptアドベントカレンダー2015!! 去年あれだけいた戦士たちはどこへ行ったのか… さて、形式的証明を実感するために1つのコードモジュールを作ってみましょう。 じゃんけんの結果をグー・チョキ・パーの3つの型を使って型推論だけで計算し、不正な入力を実行前に検出する、形式的妥当性の証明されたコードモジュールです。 まず前提となるグー・チョキ・パーの3つの型を作ります。 class Gu { private identity; } c
![TypeScriptで形式的証明・直和型編 ~ じゃんけんゲーム最強トーナメント - falsandtruのメモ帳](https://cdn-ak-scissors.b.st-hatena.com/image/square/86197648f69fa5f112489b5b925d8a14f9b0a3b3/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Ff%2Ffalsandtru%2F20151130%2F20151130044653.jpg)