章一覧

この本の使い方と学習の道筋

Tauto Book は、順に理解を積み上げる解説と、必要な規則に戻るためのリファレンスを分けて使う本です。証明だけを先に覚える必要はありません。まず小さなプログラムを動かし、その振る舞いのうち何を型や命題で表現するかを学びます。

0.1 三つの入口

  • 初めて読む:第1章から始めます。以下の到達目標を使い、章末の演習と自分のコードで理解を確認してください。
  • 規則を調べる:意味論・仕様索引から、型・所有権・効果・証明の規則と境界を探します。綴りだけを思い出すなら構文早見表を使います。
  • 手元のコードが通らない:実行・検証の手引きで、型検査・証明・実行・バックエンドのどこで失敗しているかを切り分けます。

本文は読むための教材です。このページ内でのコード編集、再検査、学習進捗の保存は行いません。Playgroundまたは手元の CLI で試してください。

0.2 順に読むコース

範囲前提読後にできること自分で確かめること
1–2章:最初の実行プログラミング経験は不要ファイルを作り、出力を確認する入力や定数を変えると出力がどう変わるか
3–6章:データと関数最初のプログラムを実行できる分岐、レコード、列挙、リスト、汎用関数を組み合わせる空のデータ、分岐の両側、再帰の終端を扱えるか
7–8章:値の使用規則関数とデータ構造所有権の種類と借用を区別して API を読む値の移動と、借用終了後の再使用を説明できるか
9–11章:効果と実行上限借用と所有権効果の要求と処理を分け、継続と予算の制約を読む処理しなかった効果と、予算を使い切る経路は何か
12章:プロジェクト小さな実行プログラムファイルを分け、テストと検査を使い分ける表示しただけの出力を、検証したと誤解していないか
13–17章:証明の基礎関数、型、match命題を型として読み、等式・帰納法・依存型を使う定理の仮定と結論を、自分の言葉で言えるか
18–20章:保証の組み立て証明の基礎アルゴリズムや状態遷移の性質を述べ、保証の境界を区別する証明した関数と、実際に呼ぶ関数は同じか
21章:次のプログラム上記の検査と実行の区別小さな実用プログラムの中心と外部境界を設計する入出力やバックエンドのどこをテストで補うか

全章を同じ速さで読む必要はありません。既にプログラミングに慣れているなら1–6章の例を動かしてから、7章の所有権へ進めます。証明から読み始める場合も、5章の match、6章の型パラメータ、12章の検査コマンドを先に確認してください。

0.3 一章を終える手順

  1. 掲載例のファイル名と import を保って実行します。同じファイル名の後続ブロックは、前のブロックに続けて読む例があります。
  2. 入力を一つ変え、結果を予想してから実行します。
  3. 演習に答え、ヒントと解答と比べます。答えだけでなく、成り立つ理由を説明します。
  4. 用語集・チェックリストを使って、説明できない言葉を前の章へ戻って調べます。
  5. 証明の章では、命題を強くしたり仮定を外したりしたとき、本当に検査が通るかを確認します。穴を残した状態を完成扱いしません。

0.4 検査結果の読み方

例に付いた結果は、サイト生成時に特定の CLI で取得した記録です。読者の環境で今実行した結果でも、すべてのバックエンドでの互換性保証でもありません。意図的に失敗する例や、証明穴を残した例には、その状態を表示します。

skipped は証明カーネルの対象外という分類です。「実行プログラムの検査をすべて省略した」とも、「実行まで成功した」とも読み替えないでください。型検査、命題の証明、テスト、実行結果は別々に確認します。

0.5 本の範囲と仕様の確認

この本は説明と参照の入口です。完全な規範仕様や、将来の構文の約束ではありません。新しい設計案は、実装されて検査された構文と区別します。例が通らないときは、CLI のバージョン、ファイル全体、コマンド、診断を記録し、検証の手引きに従って切り分けてください。