अगर हम किसी गवाह को निकालने की कोशिश करते हैं तो क्या होता है लेकिन यह वास्तव में अस्तित्वगत प्रकार के शब्द से नहीं होता है?


12

t : ∀x.∃y.(¬(x = 0) ⇒ x = S(y))मार्टिन-लोफ के प्रकार के सिद्धांत में एक शब्द को देखते हुए , इसका मूल्य क्या है, ऑपरेटर w(t(0))कहां wहै जो अस्तित्व के प्रकार के शब्द का गवाह निकालता है?


मुझे लगता है कि तुम्हारा मतलब ¬(x=0)
मार्क रीटब्लाट

हाँ, मार्क, उस ओर इशारा करने के लिए धन्यवाद, निश्चित।
दिन

जवाबों:


12

ty.(¬(0=0)0=S(y))y¬(0=0)0=S(y)¬(0=0)0=00=S(0)0=S(1)y


10

मार्क के उत्तर को प्रदर्शित करने के लिए t, कोक में लिखे गए अपने कथन के निम्नलिखित प्रमाण पर विचार करें । प्रमाण में हम मानते हैं कि एक kप्रकार natका पैरामीटर दिया गया है। हम मामले kके मूल्य के रूप में उपयोग करते हैं :yx = 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, जो कि एक महत्वपूर्ण मानदंड था।


Coq, Andrej में उदाहरण के लिए धन्यवाद, यह अधिक स्पष्ट करता है।
दिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.