लेवर टेबल प्रोग्राम जो गणित के मानक अक्षीय प्रणाली में समाप्त करने के लिए दिखाया गया है नहीं किया गया है के उदाहरण प्रदान ZFC समाप्त जब एक बहुत बड़ी कार्डिनल सूक्तियों मान लिया गया है, लेकिन जो।
परिचय
शास्त्रीय लेवर टेबल सेट अंतर्निहित के साथ अद्वितीय परिमित अल्जेब्रास हैं और एक ऑपरेशन है कि संतुष्ट पहचान और जहां के लिए और जहां ।An
{1,...,2n}
*
x * (y * z)=(x * y) * (x * z)
x*1=x+1
x<2n
2n*1=1
शास्त्रीय Laver तालिकाओं के बारे में अधिक जानकारी पैट्रिक डेहोरनोय द्वारा ब्रेड्स और स्व-वितरण पुस्तक में पाई जा सकती है।
चुनौती
सबसे छोटा कोड (बाइट्स में) क्या है जो 1*32
शास्त्रीय Laver तालिकाओं में गणना करता है और एक n
साथ मिलने पर ठीक-ठीक समाप्त हो जाता है ? दूसरे शब्दों में, कार्यक्रम समाप्त हो जाता है और केवल अगर यह एक साथ पाता है, लेकिन अन्यथा यह हमेशा के लिए चलता है।1*32<2n
n
1*32<2n
प्रेरणा
एक रैंक-में-रैंक कार्डिनल (यह भी एक I3-कार्डिनल कहा जाता है) एक बहुत ही बड़ी है अनंत के स्तर और अगर एक एक रैंक-में-रैंक कार्डिनल के अस्तित्व को मानता है, तो एक से अगर एक नहीं है और अधिक प्रमेयों साबित करने में सक्षम है रैंक-इन-रैंक कार्डिनल के अस्तित्व का अनुमान। यदि कोई रैंक-इन-रैंक कार्डिनल मौजूद है, तो कुछ शास्त्रीय लेवर टेबल है जहां । हालाँकि, इसका कोई ज्ञात प्रमाण नहीं है कि ZFC में। इसके अलावा, यह ज्ञात है कि कम से कम जहां अधिक से अधिक है (जो एकरमन फ़ंक्शन के बाद से एक बहुत बड़ी संख्या है) एक तेजी से बढ़ते कार्य है। इसलिए, ऐसा कोई भी कार्यक्रम बहुत लंबे समय तक चलेगा।An
1*32<2n
1*32<2n
n
1*32<2n
Ack(9,Ack(8,Ack(8,254)))
Ack
मैं यह देखना चाहता हूं कि किसी कार्यक्रम को कितना छोटा लिखा जा सकता है ताकि हम यह न जान सकें कि क्या कार्यक्रम मानक स्वयंसिद्ध प्रणाली ZFC का उपयोग करके समाप्त हो जाता है, लेकिन जहां हम यह जानते हैं कि कार्यक्रम अंततः एक बहुत मजबूत स्वयंसिद्ध प्रणाली अर्थात Z3 + I3 में समाप्त होता है। यह प्रश्न किससे प्रेरित था स्कॉट आरोनसन की हालिया पोस्ट जिसमें आरोनसन और एडम येडिडिया ने 8000 राज्यों के साथ एक ट्यूरिंग मशीन का निर्माण किया है, ताकि जेडएफसी यह साबित नहीं कर सके कि ट्यूरिंग मशीन समाप्त नहीं होती है, लेकिन बड़ी कार्डिनल परिकल्पनाओं को पूरा करने के लिए नहीं जानी जाती है।
शास्त्रीय लावर टेबल की गणना कैसे की जाती है
जब लावर तालिकाओं की गणना की जाती है तो आमतौर पर इस तथ्य का उपयोग करना सुविधाजनक होता है कि बीजगणित में , हमारे पास सभी के लिए हैAn
2n * x=x
x
है ।An
निम्न कोड शास्त्रीय Laver तालिका की गणना करता है An
# तालिका (n, x, y) A n में x * y देता है तालिका: = समारोह (एन, एक्स, वाई) अगर x = 2 ^ n तो y वापस करें; elif y = 1 फिर x + 1 लौटाएं; और रिटर्न टेबल (एन, टेबल (एन, एक्स, वाई -1), एक्स + 1); फाई; समाप्त;
उदाहरण के लिए, इनपुट table(4,1,2)
वापस आ जाएगा 12
।
इसके लिए कोड table(n,x,y)
अक्षम है और यह उचित समय में केवल Laver तालिका में गणना कर सकता है । सौभाग्य से, ऊपर दिए गए लोगों की तुलना में शास्त्रीय Laver तालिकाओं की गणना के लिए बहुत तेज़ एल्गोरिदम हैं।A4
Ack(9,Ack(8,Ack(8,254)))
पहली तालिका के लिए एक निचली सीमा है जिसमें पहली पंक्ति की अवधि 32 है, यानी कहाँ 1*16 < 2^n
?
table(n,x,y)
, और मुझे लगता है कि यह स्थिरांक और बाहरी लूप स्थापित करने के लिए 25 से 30 राज्यों के बीच ले जाएगा। केवल प्रत्यक्ष टीएम प्रतिनिधित्व जो मुझे esolangs.org पर मिल सकता है वह है esolangs.org/wiki/ScripTur और यह वास्तव में उस गोल्फ में नहीं है।