답변:
Mark의 답변을 보여주기 위해 t
Coq. 증명에서 우리 k
는 유형 의 매개 변수 nat
가 주어진 다고 가정합니다 . 우리는 사용 k
의 값으로 y
경우 x = 0
:
Parameter k : nat.
Theorem t : forall x : nat, { y : nat | x <> 0 -> x = S y}.
Proof.
induction x.
exists k; tauto.
induction x.
exists 0; auto.
destruct IHx as [z G].
exists (S z).
intro H.
elim G; auto.
Defined.
우리 t 0
는 다음과 같다는 것을 증명할 수 있습니다 k
.
Theorem A: projT1 (t 0) = k.
Proof.
auto.
Qed.
이 protT1
때문에이 t 0
단지 자연수, 실제로 자연 번호가 아닙니다 와 그 증거 0 <> 0 -> 0 = S y
와 projT1
멀리 증거를 던졌습니다.
t
명령 Extraction k
으로 얻은에 대한 추출 된 Ocaml 코드는 다음 과 같습니다.
(** val t : nat -> nat **)
let rec t = function
| O -> k
| S n0 -> (match n0 with
| O -> O
| S n1 -> S (t n0))
다시 우리는 볼 수 t 0
IS 같 k
aribtrarily 추정 파라미터이었다.