図: Scott Wlaschin "Reinventing the Transaction Script" (NDC London 2020) https://www.slideshare.net/ScottWlaschin/reinve the-transaction-script-ndc-london-2020 9/41
を返す」 1930 年代に Church が定義した計算モデル 関数の定義と適用、それだけで全ての計算を表現できる 関数型プログラミングの数学的な基盤 Alonzo Church, "An Unsolvable Problem of Elementary Number Theory" (1936) https://doi.org/10.2307/2371045 16/41
証明とは、決まった規則だけで命題を導いた手順のこと。手順だから、機械的に検査できる λ(x:A). x : A → A 「A を受け取ってそのまま返す関数」は、「A を仮定すると A が成り立つ」という証明と 同じ形 引数を受け取ることが仮定を置くことに、値を返すことが結論を導くことに対応する Philip Wadler, "Propositions as Types" (2015) https://homepages.inf.ed.ac.uk/wadler/papers/propositions-as-types/propositions-as-types.pdf 23/41
これが「偽の証明」。偽の証明が書ける体系では、どんな命題でも証明できてしまう 対応は、証明としての信用を失う B f(A a) { launchMissiles(); return null; } // 副作用 + null B g(A a) { while (true) {} } // 停止しない B h(A a) { throw new Error(); } // 例外 26/41
Williams "Why AI is pushing developers toward typed languages" (GitHub Blog 2026) https://github.blog/ai-and-ml/llms/why-ai-is-pushing-developers-toward-typed-languages/ 34/41