SK2 แคลคูลัสเป็นพื้นฐานที่สมบูรณ์หรือไม่ซึ่ง K2 เป็นตัวรวม K ที่พลิกกลับหรือไม่


10

โดยเฉพาะถ้าฉันกำหนดใหม่เป็น แทน จะแคลคูลัสเป็นพื้นฐานการแข่งขันหรือไม่?K2

K2=λx.(λy.y)
K=λx.(λy.x)
{S,K2,I}

ฉันเดาว่า "ไม่" เพียงเพราะฉันไม่สามารถสร้าง combinator K ปกติจาก , , และ combinators แต่ฉันไม่มีอัลกอริทึมที่จะติดตามหรือฉันมีสัญชาตญาณที่ดี เกี่ยวกับการทำสิ่งต่าง ๆ จากผู้รวมกลุ่มSIK2

ดูเหมือนว่าคุณสามารถกำหนด ด้วย -calculus แต่ฉันไม่สามารถทำงานย้อนกลับจากที่ได้รับในแง่ของและที่เหลือ

K2=KI
{S,K,(I)}KK2

ความพยายามของฉันในการพิสูจน์ว่ามันยังไม่เสร็จสมบูรณ์ตามหลักความพยายามในการสร้างฟังก์ชั่นทุกอย่างที่สามารถทำได้จาก combinators เหล่านี้เพื่อแสดงให้เห็นว่าคุณถึงจุดตาย (ฟังก์ชั่นที่คุณเคยเห็นมาก่อน) ไม่ว่า ฉันรู้ว่าสิ่งนี้ไม่จำเป็นต้องเป็นเรื่องจริงของชุด combinators ที่ไม่สมบูรณ์ตามหน้าที่ (เช่น combinator ด้วยตัวเองจะไม่มีวันตายเมื่อใช้กับตัวเอง) แต่นี่เป็นความคิดที่ดีที่สุดของฉัน ฉันสามารถใช้combinatorเพื่อแอบออกจากสิ่งที่ฉันคิดว่าในที่สุดก็ถึงจุดจบดังนั้นฉันจึงไม่มั่นใจในความเป็นไปได้ของวิธีการนี้อีกต่อไปKS

ฉันถามคำถามนี้ในStackOverflowแต่ได้รับการสนับสนุนให้โพสต์ไว้ที่นี่ ฉันได้รับความคิดเห็นเล็กน้อยจากโพสต์นั้น แต่ฉันไม่แน่ใจว่าฉันเข้าใจถูกต้องหรือไม่

โบนัส: ถ้าไม่ใช่พื้นฐานที่สมบูรณ์ภาษาทัวริงยังสมบูรณ์อยู่หรือไม่?


นี่เป็นปริศนาที่ดี ดูเหมือนว่า S และ K 'อนุญาตให้คุณสร้างคำที่มีรูปแบบปกติของหัวมีค่า leadings หลักสามอัน (เช่นคำที่ทำให้เป็นมาตรฐานในรูปแบบλx₁.λx₂.λx₃. xᵢt₁ ... tₙ) ดังนั้นอาจเป็น อีกเส้นทางหนึ่งในการพิสูจน์ความไม่สมบูรณ์แม้ว่ามันจะดูยุ่งยาก คุณไม่เคยไปถึง "ทางตัน" อย่างแน่นอน: เริ่มต้นด้วยการกำหนด I = λx.x = K2 K2 จากนั้นโดยการแปลงซ้ำ t ↦ S t K2 คุณสามารถแสดงλx.x I ... ฉันสำหรับสตริงใด ๆ ของ Is .
Noam Zeilberger

... และขออภัยด้วย "ความไม่สมบูรณ์" ฉันหมายถึงความไม่สมบูรณ์ของ SK 'เป็นพื้นฐานการรวมตัวกันของแคลคูลัสแลมบ์ดาที่ไม่ได้พิมพ์ออกมา ฉันยังไม่มีสัญชาตญาณที่ดีไม่ว่าทัวริงจะเสร็จสมบูรณ์หรือไม่ (ซึ่งอาจบอกเป็นนัยโดยการรวมความสมบูรณ์แบบเข้าด้วยกัน แต่ไม่ใช่วิธีอื่น)
Noam Zeilberger

ครอสโพสต์: stackoverflow.com/q/55148283/781723 , cs.stackexchange.com/q/108741/755 กรุณาอย่าโพสต์คำถามเดียวกันบนเว็บไซต์ต่างๆ แต่ละชุมชนควรมีความซื่อสัตย์ในการตอบคำถามโดยไม่ต้องเสียเวลาของใครเลย
DW

ความผิดพลาดของฉัน @DW มีอะไรที่ฉันสามารถทำได้เพื่อแก้ไขปัญหานี้หรือไม่?
โคล

คำตอบ:


14

พิจารณาเงื่อนไขของแคลคูลัสเป็นต้นไม้ (ที่มีโหนดโหนดที่เป็นตัวแทนของการใช้งานและใบเป็นตัวแทนของ combinatorsS,K2,IS,K2

ตัวอย่างเช่นคำว่าจะแสดงเป็นต้นไม้S(SS)K2

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

เพื่อให้ต้นไม้แต่ละต้นเชื่อมโยงใบขวาสุดของหนึ่งที่คุณได้รับโดยการสาขาที่เหมาะสมในแต่ละ ยกตัวอย่างเช่นใบขวาสุดของต้นไม้ข้างต้นเป็นK_2T@K2

ดังที่เห็นได้จากศิลปะ ASCII ด้านล่างกฎการลดทั้งหมดในแคลคูลัสรักษาใบไม้ที่ถูกต้องที่สุดS,K2,I

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

จากนั้นไปมันเป็นเรื่องง่ายที่จะเห็นว่าถ้าบางคำลดลงเป็นดังนั้นและจะมีใบไม้ทางขวาสุดเหมือนกัน ดังนั้นจึงไม่มีเงื่อนไขในแคลคูลัสดังกล่าวว่าลดK_2อย่างไรก็ตามลดลงเหลือดังนั้นจึงไม่สามารถแสดงในแคลคูลัสTTTTTS,K2,ITK2SK2KK2SK2KS,K2,I


ข้อโต้แย้งที่ดีมาก!
Noam Zeilberger

อาร์กิวเมนต์ที่ลื่นและชัดเจนมาก ขอบคุณ. บางทีฉันจะเปิดคำถามแยกต่างหากเพื่อถามเกี่ยวกับทัวริงครบถ้วน
โคล

5

แก้ไข: ตามความเห็นชี้ให้เห็นว่านี่เป็นเพียงคำตอบบางส่วนเนื่องจากมันใช้กับเพียงพิมพ์แคลคูลัสเท่านั้น (หรือมากกว่านั้นก็แสดงให้เห็นว่าไม่มีคำจำกัดความที่เป็นไปได้ของ K ที่ไม่ได้ป่วย แบบฟอร์มย่อย) หากไม่มีการคัดค้านฉันจะไม่ลบเนื่องจากจะแสดงเทคนิคการพิสูจน์ที่มีประสิทธิผลมากสำหรับการตั้งค่าที่พิมพ์S,K2,I


จำได้ว่า combinators ของเรามีประเภทดังต่อไปนี้ (Curry-style ดังนั้นเป็นตัวแปร):A,B,C

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

โดยแกงกะหรี่ - โฮเวิร์ดจดหมายถ้าเราสามารถแสดงในแง่ของแล้วสไตล์แคลคูลัสพิสูจน์สไตล์ของฮิลแบร์ตกับตรรกะเหตุผลสามและกฎการอนุมานหนึ่ง (จากและสรุป ) พิสูจน์สูตรKI,S,K2ABB,(ABC)(AB)(AC),AAAABBABA

แต่เราสามารถให้ความหมายสามค่า (ค่าt,f,u) กับความเกี่ยวพันเช่นว่าสูตร ,และรับค่าสำหรับการตีความใด ๆABB(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,IA B A A B S , K 2 , IttABAfuAtBS,K2,I


1
ฉันชอบแนวทาง แต่คุณสามารถอธิบายได้ว่ากฎใดที่คุณทำในฐานะแคลคูลัสตามลำดับ?
Noam Zeilberger

คุณสามารถร่างวิธีการพิสูจน์ S ในแคลคูลัสตามลำดับที่ จำกัด นี้ได้หรือไม่? ดูเหมือนจะเป็นไปไม่ได้กับกฎที่ฉันเดาว่าคุณอาจหมายถึง
Robin Houston

1
@ robin-houston: โปรดดูการแก้ไขของฉัน (ฉันได้เพิ่มอาร์กิวเมนต์ที่แตกต่างและความหมายด้วยข้อสรุปเดียวกัน)
ZAK

2
ฉันเห็นด้วยกับ Charles Stewart (ตรงนี้: twitter.com/txtpf/status/1123962607306706944 ) ว่ามันไม่ชัดเจนว่าจะผ่านจากการไม่มีใครอยู่ในแคลคูลัสแลมบ์ดาที่พิมพ์ง่าย ๆ อาจมีข้อโต้แย้งที่เฉพาะเจาะจงสำหรับ K แต่ขั้นตอนเริ่มต้น "... จากนั้นเราสามารถทำสิ่งเดียวกันใน calcul-แคลคูลัสที่พิมพ์ได้ง่าย ๆ " ไม่ถือโดยทั่วไป (ชาร์ลส์กล่าวถึงตัวอย่างของ combinator Y) . คุณเห็นของการทำข้อโต้แย้งนี้อย่างเข้มงวด?
Noam Zeilberger

1
@NoamZeilberger ฉันก็เห็นด้วย น่าเสียดายที่การโต้แย้งนี้ดูไม่เพียงพอ: ในแคลคูลัสที่ไม่มีการพิมพ์คุณอาจได้รับโดยใช้โครงสร้างที่เกี่ยวข้องกับ (ย่อย) คำที่ไม่มีประเภท เราควรพิสูจน์ว่าถ้าคุณสามารถทำสิ่งนั้นได้คุณสามารถทำเช่นเดียวกันโดยใช้คำศัพท์ที่พิมพ์เท่านั้น แต่มันก็ยากที่จะพิสูจน์ให้ฉันเห็น K
Chi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.