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


12

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


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

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

जवाबों:


12

t∃y.(¬(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.