Là phép tính SK2 là một cơ sở hoàn chỉnh, trong đó K2 là tổ hợp K lật?


10

Cụ thể, nếu tôi xác định mới là thay vì liệu -calculus có phải là cơ sở cạnh tranh không?K2

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

Tôi đoán là "không", chỉ vì dường như tôi không thể xây dựng bộ kết hợp K thông thường từ các tổ hợp , và , nhưng tôi không có thuật toán để theo dõi, tôi cũng không có trực giác tốt về việc làm cho mọi thứ ra khỏi các tổ hợp này.SIK2

Có vẻ như bạn có thể định nghĩa với -calculus thông thường, nhưng tôi thực sự không thể làm việc ngược lại từ đó để lấy đạo hàm về và phần còn lại.

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

Tôi cố gắng chứng minh rằng nó không hoàn thành về mặt chức năng về cơ bản đã cố gắng xây dựng triệt để mọi chức năng có thể đạt được từ các tổ hợp này để cho thấy rằng bạn đi đến ngõ cụt (một chức năng bạn đã thấy trước đó) bất kể bạn sử dụng tổ hợp nào. Tôi nhận ra rằng điều này không nhất thiết sẽ đúng với các bộ tổ hợp không hoàn chỉnh về mặt chức năng (ví dụ: tổ hợp K tự nó sẽ không bao giờ kết thúc khi áp dụng cho chính nó), nhưng đây là suy nghĩ tốt nhất của tôi. Tôi luôn có thể sử dụng bộ kết hợp S để lẻn ra khỏi những gì tôi nghĩ cuối cùng là một ngõ cụt, vì vậy tôi không còn chắc chắn về tính khả thi của phương pháp này.

Tôi đã hỏi câu hỏi này trên StackOverflow nhưng được khuyến khích đăng nó ở đây. Tôi đã nhận được một vài bình luận về bài đăng đó, nhưng tôi không chắc là tôi hiểu đúng.

Phần thưởng: nếu nó không phải là một cơ sở hoàn chỉnh, liệu ngôn ngữ kết quả có phải là Turing hoàn chỉnh không?


đây là một câu đố hay Dường như S và K 'chỉ cho phép bạn tạo các thuật ngữ có dạng đầu bình thường có tối đa ba chữ số hàng đầu (nghĩa là các thuật ngữ bình thường hóa thành dạng λx₁.λx₂.λx₃. Xᵢ t₁ ... tₙ), vì vậy có thể là một con đường khác để chứng minh sự không hoàn hảo, mặc dù có vẻ hơi khó để chính thức hóa. Tuy nhiên, bạn chắc chắn không bao giờ đạt đến "ngõ cụt": bắt đầu bằng cách xác định I = x.x = K2 K2, sau đó bằng cách lặp lại phép biến đổi t ↦ S t K2, bạn có thể biểu thị λx.x I ... Tôi cho bất kỳ chuỗi Is nào .
Noam Zeilberger

... Và xin lỗi, bởi "sự không hoàn hảo", ý tôi là sự không hoàn hảo của SK 'như là một cơ sở kết hợp cho phép tính lambda chưa được xử lý. Tôi cũng không có một trực giác tốt cho dù đó có phải là Turing-Complete hay không (điều này sẽ được ngụ ý bởi sự hoàn thiện kết hợp, nhưng không phải theo cách khác).
Noam Zeilberger

Đăng chéo: stackoverflow.com/q/55148283/781723 , cs.stackexchange.com/q/108741/755 . Xin vui lòng không đăng cùng một câu hỏi trên nhiều trang web . Mỗi cộng đồng nên có một cú đánh trung thực để trả lời mà không có ai lãng phí thời gian.
DW

Sai lầm của tôi @DW, tôi có thể làm gì để khắc phục điều này không?
cole

Câu trả lời:


14

Hãy xem xét các thuật ngữ của S,K2,I tính là cây (với các nút nhị phân đại diện cho các ứng dụng và lá S,K2 đại diện cho các tổ hợp.

Ví dụ: thuật ngữ S(SS)K2 sẽ được đại diện bởi cây

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

Để mỗi cây T liên kết lá ngoài cùng bên phải của nó, cây bạn nhận được bằng cách lấy đúng nhánh ở mỗi cây @. Ví dụ, lá ngoài cùng bên phải của cây ở trên là K2 .

Như có thể thấy từ nghệ thuật ASCII dưới đây, tất cả các quy tắc rút gọn trong S,K2,I tính toán giữ lá ngoài cùng bên phải.

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

TTTTTS,K2,ITK2SK2KK2SK2KS,K2,I


Lập luận rất hay!
Noam Zeilberger

Lập luận rất lắt léo và rõ ràng. Cảm ơn bạn. Có lẽ tôi sẽ mở một câu hỏi riêng để hỏi về tính đầy đủ của Turing.
cole

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
Tôi thích cách tiếp cận, nhưng bạn có thể làm rõ những quy tắc nào bạn đang thực hiện khi tính toán tuần tự không?
Noam Zeilberger

Bạn có thể phác họa làm thế nào để chứng minh S trong phép tính tuần tự bị hạn chế này không? Nó dường như không thể với các quy tắc tôi đoán bạn có thể có nghĩa.
Robin Houston

1
@ robin-houston: vui lòng xem bản chỉnh sửa của tôi (Tôi cũng đã thêm một đối số ngữ nghĩa khác với cùng kết luận).
ZAK

2
Tôi đồng ý với Charles Stewart (ở đây: twitter.com/txtpf/status/1123962607306706944 ) rằng không rõ làm thế nào để chuyển từ không có người ở trong phép tính lambda được gõ đơn giản sang không thể sử dụng được bằng cách sử dụng kết hợp. Có thể có một đối số cụ thể cho K, nhưng bước đầu tiên "... sau đó người ta cũng có thể làm điều tương tự trong λ-compus được gõ đơn giản" không nói chung (Charles đã đề cập đến ví dụ của bộ kết hợp Y) . Bạn có thấy làm cho lập luận này nghiêm ngặt?
Noam Zeilberger

1
K
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.