t : ∀x.∃y.(¬(x = 0) ⇒ x = S(y))
मार्टिन-लोफ के प्रकार के सिद्धांत में एक शब्द को देखते हुए , इसका मूल्य क्या है, ऑपरेटर w(t(0))
कहां w
है जो अस्तित्व के प्रकार के शब्द का गवाह निकालता है?
t : ∀x.∃y.(¬(x = 0) ⇒ x = S(y))
मार्टिन-लोफ के प्रकार के सिद्धांत में एक शब्द को देखते हुए , इसका मूल्य क्या है, ऑपरेटर w(t(0))
कहां w
है जो अस्तित्व के प्रकार के शब्द का गवाह निकालता है?
जवाबों:
मार्क के उत्तर को प्रदर्शित करने के लिए t
, कोक में लिखे गए अपने कथन के निम्नलिखित प्रमाण पर विचार करें । प्रमाण में हम मानते हैं कि एक 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
कमांड के साथ प्राप्त के लिए निकाले गए Ocaml कोड Extraction k
है
(** val t : nat -> nat **)
let rec t = function
| O -> k
| S n0 -> (match n0 with
| O -> O
| S n1 -> S (t n0))
फिर से हम देख सकते हैं कि t 0
यह बराबर है k
, जो कि एक महत्वपूर्ण मानदंड था।