क्या SK2 कैलकुलस एक पूर्ण आधार है, जहां K2 फ़्लिप K कॉम्बीनेटर है?


10

विशेष रूप से, यदि मैंने एक नया K2 को

K2=λx.(λy.y)
रूप में परिभाषित किया है ( Λ y Y ) के बजाय
K=λx.(λy.x)
हैं {S,K2,I} -calculus एक प्रतिस्पर्धा आधार हो सकता है?

मेरा अनुमान है "नहीं," सिर्फ इसलिए कि मैं S , I , और K2 कॉम्बिनेटरों से नियमित के कॉम्बिनेटर का निर्माण करने में सक्षम नहीं हो सकता , लेकिन मेरे पास पालन करने के लिए एक एल्गोरिथ्म नहीं है, और न ही मेरे पास अच्छा है इन संयोजनकर्ताओं से चीजों को बनाने के बारे में अंतर्ज्ञान।

ऐसा लगता है कि आप को परिभाषित कर सकते लगता है

K2=KI
नियमित रूप से साथ {S,K,(I)} -calculus, लेकिन मुझे लगता है कि वास्तव में से काम पीछे की ओर की व्युत्पत्ति पाने के लिए नहीं कर सकता है K के मामले में K2 और बाकी ।

एक प्रमाण पर मेरा प्रयास यह है कि यह कार्यात्मक रूप से अनिवार्य रूप से पूरा नहीं किया गया था ताकि इन दहनकारों से प्राप्त होने वाले प्रत्येक कार्य को पूरी तरह से करने का प्रयास किया जा सके ताकि आप एक मृत अंत तक पहुंच सकें (एक ऐसा कार्य जिसे आपने पहले देखा है) कोई फर्क नहीं पड़ता कि आप किस संयोजन का उपयोग करते हैं। मुझे लगता है कि यह जरूरी combinators के कार्यात्मक अधूरा सेट का सच होने जा रहा नहीं है (उदाहरण के लिए K का अपना इच्छा कभी नहीं मृत अंत पर Combinator जब खुद के लिए आवेदन किया), लेकिन यह मेरे सबसे अच्छे सोचा था। मैं हमेशा S कॉम्बीनेटर का उपयोग करने में सक्षम था जो मुझे लगा कि आखिरकार एक मृत अंत था, इसलिए मैं अब इस दृष्टिकोण की व्यवहार्यता के बारे में सुनिश्चित नहीं हूं।

मैंने स्टैकऑवरफ्लो पर यह सवाल पूछा, लेकिन इसे यहां पोस्ट करने के लिए प्रोत्साहित किया गया। मुझे उस पोस्ट पर कुछ टिप्पणियां मिलीं, लेकिन मुझे यकीन नहीं है कि मैंने उन्हें सही समझा।

बोनस: यदि यह पूर्ण आधार नहीं है, तो परिणामी भाषा गैर-ट्यूरिंग-पूर्ण है?


यह एक अच्छी पहेली है। ऐसा लगता है कि S और K 'आपको केवल उन शब्दों को उत्पन्न करने की अनुमति देते हैं जिनके सिर के सामान्य रूपों में तीन प्रमुख λ (यानी, ऐसे शब्द हैं जो λx₁.λx₂.λx₃। Xᵢ t₁ ... tₙ) के रूप में सामान्य करते हैं, ताकि यह हो सके। अधूरापन साबित करने का एक और मार्ग, हालाँकि यह औपचारिकता के लिए थोड़ा मुश्किल है। आप निश्चित रूप से कभी भी "डेड एंड" तक नहीं पहुँचते, हालांकि: I = λx.x = K2 K2 को परिभाषित करके शुरू करें, फिर परिवर्तन t ↦ S t K2 को दोहराकर आप λx.x I को व्यक्त कर सकते हैं ... मैं किसी भी स्ट्रिंग के लिए है ।
नोआम ज़िलबर्गर

... और क्षमा करें, "अपूर्णता" से मेरा तात्पर्य है अनपेक्षित लैंबडा कैलकुलस के लिए एक संयोजन आधार के रूप में एसके की अपूर्णता से। मुझे ट्यूरिंग-कम्पलीट (जो जुझारू पूर्णता से निहित होगा, लेकिन दूसरे तरीके से नहीं) के लिए एक अच्छा अंतर्ज्ञान नहीं है।
नोआम ज़िलबर्गर

क्रॉस-पोस्ट किया गया: stackoverflow.com/q/55148283/781723 , cs.stackexchange.com/q/108741/755 । कृपया एकाधिक साइटों पर एक ही प्रश्न पोस्ट न करें । प्रत्येक समुदाय के पास किसी के समय को बर्बाद किए बिना जवाब देने के लिए एक ईमानदार शॉट होना चाहिए।
DW

मेरी गलती @DW, क्या ऐसा कोई उपाय है जिससे मैं यह उपाय कर सकूं?
कोल

जवाबों:


14

S,K2,I की शर्तों पर विचार करें , मैं पेड़ों के रूप में कैलकुलस करता हूं (बाइनरी नोड्स के साथ अनुप्रयोगों का प्रतिनिधित्व करता है, और S,K2 पत्ते कॉम्बिनेटरों का प्रतिनिधित्व करता है।

उदाहरण के लिए, S(SS)K2 शब्द को पेड़ द्वारा दर्शाया जाएगा

        @
       / \
      /   \
     @    K2
    / \
   /   \
  S     @
       / \
      /   \
     S     S

T@K2

S,K2,I

         @                           @
        / \                         / \
       /   \                       /   \
      @     g    [reduces to]     @     @
     / \                         / \   / \
    /   \                       e   g f   g
   @     f                 
  / \
 /   \
S     e
      @
     / \
    /   \
   @     f    [reduces to]   f
  / \
 /   \
K2    e

TTTTTS,K2,ITK2SK2KK2SK2KS,K2,I


बहुत अच्छा तर्क!
नोआम ज़िलबर्गर

बहुत ही चालाक और स्पष्ट तर्क। धन्यवाद। ट्यूरिंग पूर्णता के बारे में पूछने के लिए शायद मैं एक अलग प्रश्न खोलूंगा।
कोल

5

S,K2,I


A,B,C

  • K:ABA
  • K2:ABB
  • S:(ABC)(AB)(AC)
  • I:AA

KI,S,K2ABB,(ABC)(AB)(AC),AAAABBABA

t,f,uABB(ABC)(AB)(AC)AAt

A B | A -> B
t t | t
t f | f
f t | t
f f | t
t u | f
f u | t
u t | t
u f | f
u u | t

K2,S,IttABAfuAtBS,K2,I


1
मुझे दृष्टिकोण पसंद है, लेकिन क्या आप स्पष्ट कर सकते हैं कि आप अपने अनुक्रमिक पथरी के रूप में क्या नियम ले रहे हैं?
नोआम ज़िलबर्गर

क्या आप स्केच कर सकते हैं कि इस प्रतिबंधित सीक्वेंस कैलकुलस में S को कैसे साबित किया जाए? यह उन नियमों के साथ संभव नहीं लगता जिनके बारे में मैंने अनुमान लगाया था कि आप इसका मतलब निकाल सकते हैं।
रॉबिन ह्यूस्टन

1
@ रॉबिन-हॉस्टन: कृपया मेरा संपादन देखें (मैंने एक ही निष्कर्ष के साथ एक अलग, शब्दार्थ तर्क भी जोड़ा है)।
ZAK

2
मैं चार्ल्स स्टीवर्ट (यहाँ पर: twitter.com/txtpf/status/1123962607306706944 ) के साथ सहमत हूँ कि यह स्पष्ट नहीं है कि कैसे-टाइप किए गए लैम्ब्डा कैलकुलस में निर्जनता से कंघी बनाने वालों का उपयोग करके अक्षमता से गुजरना है। K के लिए एक तर्क विशिष्ट हो सकता है, लेकिन प्रारंभिक चरण "... तो एक ही कार्य को केवल टाइप किए गए λ-पथरी में भी कर सकता है" सामान्य रूप से पकड़ में नहीं आता (चार्ल्स ने वाई कॉम्बीनेटर के प्रतिरूप का उल्लेख किया) । क्या आप इस तर्क को कठोर बनाते हुए देखते हैं?
नोआम ज़िलबर्गर

1
K
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.