【正文】
their soundness proof ?Code safety proof 謝謝 邏輯推理與計算 ? 萊布尼茲之夢 ? 羅素悖論 ? 希爾伯特計劃 ? 哥德爾定理 ? 圖靈機與 ? 演算 Lambda Cube λω λ2 λ→ λP λω λPω λP2 λPω 。) end. Inductive EqNat : nat nat Prop := | OEq : EqNat O O | SEq : forall m n : nat, EqNat m n EqNat (S m) (S n). 歸納謂詞 ? 問題:證明 forall n, EqNat n n ? ? 交互式證明(演示) Lemma LEqNatn : forall n, EqNat n n. 歸納謂詞 ? 交互式證明產(chǎn)生的證明構(gòu)造? LEqNatn = fun n : nat = nat_ind (fun n0 : nat = EqNat n0 n0) OEq (fun (n0 : nat) (IHn : EqNat n0 n0) = SEq n0 n0 IHn) n : forall n : nat, EqNat n n Print LEqNatn. Lemma LEqNatn : forall n, EqNat n n. 通用歸納原理 nat_rect = fun (P : nat Type) (f : P 0) (f0 : forall n : nat, P n P (S n)) = fix F (n : nat) : P n := match n as n0 return (P n0) with | 0 = f | S n0 = f0 n0 (F n0) end : forall P : nat Type, P 0 (forall n : nat, P n P (S n)) forall n : nat, P n nat_ind = fun P : nat Prop = nat_rect P : forall P : nat Prop, P 0 (forall n : nat, P n P (S n)) forall n : nat, P n Coq amp。 n39。 end. 加法 ?原始遞歸函數(shù)( Primitive Recursion) ?保證函數(shù)的終止性 Fixpoint plus (n : nat) (m : nat) {struct n}: nat := match n with | O = m | S n’ = S (plus n’ m) end. 基本邏輯推理 原子命題定義 Variables A B C : Prop. 定理證明演示 Theorem T1 : A A. 證明構(gòu)造的編程 打印證明 Theorem T1 : A A. Coq Print T1. T1 = fun H : A = H : A A ? CurryHoward 同構(gòu) ?類型形如 A B 的證明是一個函數(shù) ?以命題 A的證明為參數(shù),返回 B的證明 程序即證明 Definition T1’ := fun (H : A) = H. Check T1’. 程序即證明 Definition T1’’:= fun (H : A) = T1 H. Check T1’’. ? 證明的構(gòu)造方式并不