Rất dễ bị nhầm lẫn về ý nghĩa của việc "đại diện" hoặc "thực hiện" một con số thực. Trong thực tế, chúng tôi đang chứng kiến một cuộc thảo luận trong các ý kiến mà đại diện là gây tranh cãi. Vì vậy, hãy để tôi giải quyết điều này đầu tiên.
Làm thế nào để chúng ta biết rằng một thực hiện là chính xác?
Lý thuyết giải thích cách thể hiện mọi thứ trong máy tính là khả thi . Ý tưởng cơ bản là, đưa ra một tập , chúng tôi chọn một datatype τ và cho mọi x ∈ X một tập hợp các giá trị của loại τ mà nhận ra nó. Chúng tôi viết v ⊢ x ∈ X khi v là một giá trị mà nhận ra x . Ví dụ (Tôi sẽ sử dụng Haskell không có lý do chính đáng), việc thực hiện hợp lý của N có thể là kiểu dữ liệu mà v ⊢ k ∈ N khi vXτx∈Xτv⊢x∈XvxNInteger
v⊢k∈Nvước tính cho chữ số (do đó đặc biệt không đại diện cho số tự nhiên và cũng không phải là chương trình phân kỳ). Nhưng một số joker có thể đi bộ bằng và gợi ý rằng chúng tôi sử dụng để đại diện cho các số tự nhiên với T r u e ⊢ 42 ∈ N và F một l s e ⊢ n ∈ N cho n ≠ 42 . Tại sao điều này không chính xác? Chúng tôi cần một tiêu chí .k¯¯¯-42
Bool
True⊢42∈NFalse⊢n∈Nn≠42
Trong trường hợp "số joker", quan sát dễ dàng là việc bổ sung không thể được thực hiện. Giả sử tôi nói với bạn tôi có hai số, cả hai đều được đại diện bởi . Bạn có thể cho một người thực hiện cho số tiền của họ? Chà, điều đó phụ thuộc vào số tiền có phải là 42 hay không, nhưng bạn không thể biết được. Vì phép cộng là một "phần thiết yếu của số tự nhiên", nên điều này là không thể chấp nhận được. Nói cách khác, việc thực hiện không phải là về các tập hợp, mà là về các cấu trúc , tức là chúng ta phải biểu diễn các tập hợp theo cách mà cũng có thể thực hiện cấu trúc có liên quan. Hãy để tôi nhấn mạnh điều này:False
Chúng tôi thực hiện các cấu trúc, không phải bộ trần. Do đó, chúng ta phải có khả năng thực hiện toàn bộ cấu trúc, cùng với các hoạt động và tất cả các tiên đề, để việc thực hiện được chính xác.
Nếu bạn không tuân thủ nguyên tắc này, thì bạn phải đề xuất một tiêu chí toán học thay thế về tính đúng đắn. Tôi không biết một.
Ví dụ: biểu diễn số tự nhiên
Đối với các số tự nhiên, cấu trúc có liên quan được mô tả bởi các tiên đề Peano và tiên đề quan trọng phải được thực hiện là cảm ứng (nhưng cũng là , kế, + và × ). Chúng ta có thể tính toán, sử dụng khả năng thực hiện, những gì việc thực hiện cảm ứng làm. Nó hóa ra là một bản đồ (trong đó kiểu dữ liệu chưa biết đại diện cho số tự nhiên)0+×nat
induction : 'a -> (nat -> 'a -> 'a) -> 'nat -> 'a
thỏa mãn induction x f zero = x
và induction x f (succ n) = f n (induction x f n)
. Tất cả điều này đi ra từ khả năng thực tế. Chúng tôi có một tiêu chí: việc thực hiện các số tự nhiên là chính xác khi nó cho phép thực hiện các tiên đề Peano. Một kết quả tương tự sẽ được thu được nếu chúng tôi sử dụng các đặc tính của con số như đại số ban đầu cho functor .X↦1+X
Thực hiện đúng số thực
Chúng ta hãy chú ý đến những con số thực và câu hỏi trong tầm tay. Câu hỏi đầu tiên được đặt ra là "cấu trúc liên quan của các số thực là gì?" Câu trả lời là: Archimedean Cauchy hoàn thành trường đặt hàng . Đây là ý nghĩa được thiết lập của "số thực". Bạn không thể thay đổi nó, nó đã được sửa bởi những người khác (trong trường hợp của chúng tôi, các thực thể Dedekind thay thế hóa ra là đồng hình với các thực thể Cauchy, mà chúng tôi đang xem xét ở đây.) Bạn không thể lấy đi bất kỳ phần nào của nó, bạn không được phép nói "Tôi không quan tâm đến việc thực hiện bổ sung" hoặc "Tôi không quan tâm đến đơn hàng". Nếu bạn làm điều đó, bạn không được gọi nó là "số thực", nhưng một cái gì đó như "số thực mà chúng ta quên thứ tự tuyến tính".
Tôi sẽ không đi vào tất cả các chi tiết, nhưng hãy để tôi giải thích làm thế nào các phần khác nhau của cấu trúc cung cấp các hoạt động khác nhau trên thực tế:
- các Archimedean tiên đề được về tính hợp lý xấp xỉ của số thực
- cấu trúc trường cung cấp cho các hoạt động số học thông thường
- trật tự tuyến tính cho chúng ta một semidecidable thủ tục để thử nghiệm x<y
lim : (nat -> real) -> real
(xn)n m , n|xn−xm|≤2min(n,m)m,n
Những gì chúng ta không nhận được là một chức năng kiểm tra cho sự bình đẳng. Không có gì trong các tiên đề cho các thực thể yêu cầu có thể quyết định được. (Ngược lại, các tiên đề Peano ngụ ý rằng các số tự nhiên là có thể quyết định và bạn có thể chứng minh rằng bằng cách thực hiện chỉ sử dụng như một bài tập thú vị).=eq : nat -> nat -> Bool
induction
Có một thực tế là đại diện thập phân thông thường của các thực tế mà nhân loại sử dụng là xấu bởi vì với nó, chúng ta thậm chí không thể thực hiện bổ sung. Điểm nổi với mantissa vô hạn cũng thất bại (bài tập: tại sao?). Những gì hoạt động, tuy nhiên là đại diện chữ số đã ký , tức là một trong đó chúng tôi cho phép các chữ số âm cũng như số dương. Hoặc chúng ta có thể sử dụng các chuỗi hợp lý thỏa mãn bài kiểm tra Cauchy nhanh chóng, như đã nêu ở trên.
Đại diện Tsuyoshi cũng thực hiện một cái gì đó, nhưng không phảiR
Chúng ta hãy xem xét biểu diễn sau đây của các số thực: một thực được biểu thị bằng một cặp trong đó là một chuỗi Cauchy nhanh chóng hội tụ đến và là Boolean cho biết có phải là số nguyên hay không. Để điều này trở thành một đại diện của thực tế, chúng ta sẽ phải thực hiện bổ sung, nhưng hóa ra chúng ta không thể tính toán các cờ Boolean. Vì vậy, đây không phải là một đại diện của thực tế. Nhưng nó vẫn đại diện cho một cái gì đó, cụ thể là tập hợp con của reals( q , b ) ( q n ) n x b x Z ∪ ( R ∖ Z ) Z ∪ ( R ∖ Z ) Rx(q,b)(qn)nxbxZ∪(R∖Z). Thật vậy, theo cách giải thích khả thi, một liên minh được thực hiện với một lá cờ cho biết phần nào của liên minh chúng ta đang tham gia. Nhân tiện, là a không bằng , trừ khi bạn tin vào loại trừ giữa, không thể thực hiện được và do đó khá không liên quan cho cuộc thảo luận này. Chúng ta bị ép buộc bởi máy tính để làm mọi thứ theo trực giác.Z∪(R∖Z)R
Chúng tôi không thể kiểm tra xem một số thực có phải là số nguyên không
Cuối cùng, hãy để tôi trả lời câu hỏi đã được hỏi. Bây giờ chúng ta biết rằng một đại diện có thể chấp nhận được của các thực tế là một trong các chuỗi hợp lý nhanh chóng của Cauchy. (Một định lý quan trọng nói rằng bất kỳ hai biểu diễn nào của các thực thể có thể chấp nhận được đều thực sự là đẳng cấu.)
Định lý: Kiểm tra xem một số thực có phải là số nguyên không là quyết định.
Bằng chứng. Giả sử chúng ta có thể kiểm tra xem một số thực có phải là một số nguyên hay không (tất nhiên, số thực được nhận ra bằng một chuỗi Cauchy nhanh chóng). Ý tưởng, cho phép bạn chứng minh một định lý tổng quát hơn nhiều nếu bạn muốn, là xây dựng một chuỗi Cauchy nhanh của các số nguyên không hội tụ thành một số nguyên. Điều này thật dễ dàng, chỉ cần lấy . Tiếp theo, giải quyết vấn đề Dừng như sau. Đưa ra một máy Turing , xác định một chuỗi mới bởi
Nghĩa là, chuỗi mới trông giống như chuỗi miễn làx n = 2 - n T ( y n ) n y n = { x n nếu T chưa dừng lại trong n bước x m nếu T dừng ở bước m và m ≤ n ( x n ) n T x m T m T z = lim n y n z 0(xn)nxn=2−nT(yn)n
yn={xnxmif T has not stopped within n stepsif T stopped in step m and m≤n
(xn)nTchạy, nhưng sau đó nó bị "kẹt" tại nếu dừng lại ở bước . Rất quan trọng, trình tự mới cũng là một chuỗi Cauchy nhanh chóng (và chúng ta có thể chứng minh điều này mà không cần biết liệu dừng lại hay không). Do đó, chúng ta có thể tính giới hạn của nó , vì đại diện của chúng ta là đúng. Kiểm tra xem có phải là số nguyên không. Nếu có thì nó phải là và điều này chỉ xảy ra nếu chạy mãi mãi. Mặt khác, không phải là số nguyên, vì vậy phải dừng lại. QED.
xmTmTz=limnynz0z TTzT
Bài tập: điều chỉnh bằng chứng trên để cho thấy rằng chúng ta không thể kiểm tra các số hữu tỷ. Sau đó điều chỉnh nó để cho thấy chúng ta không thể kiểm tra bất cứ thứ gì không tầm thường (điều này khó hơn một chút).
Đôi khi mọi người bị lẫn lộn về tất cả các doanh nghiệp thử nghiệm này. Họ nghĩ rằng chúng tôi đã chứng minh rằng chúng tôi không bao giờ có thể kiểm tra xem một số thực có phải là số nguyên hay không. Nhưng chắc chắn, 42 là có thật và chúng ta có thể biết liệu nó có phải là số nguyên hay không. Trên thực tế, bất kỳ thực tế cụ thể nào chúng tôi đưa ra, , , , v.v., chúng tôi hoàn toàn có thể biết liệu chúng có phải là số nguyên hay không. Chính xác, chúng ta có thể nói bởi vì chúng ta có thêm thông tin: những thực tế này không được trao cho chúng ta dưới dạng chuỗi, mà là các biểu thức tượng trưng mà từ đó chúng ta có thể tính toán bit Tsuyoshi. Ngay khi thông tin duy nhất chúng ta có về thực tế là một chuỗi các xấp xỉ hợp lý hội tụ với nó (và tôi làmsin1188ln89eπ163√không có nghĩa là một biểu thức tượng trưng mô tả chuỗi, nhưng một hộp đen xuất ra thuật ngữ thứ trên đầu vào ) thì chúng ta sẽ bất lực như máy móc.nn
noi dung chinh cua cau chuyen
Thật vô nghĩa khi nói về việc thực hiện một tập hợp trừ khi chúng ta biết loại hoạt động nào chúng ta muốn thực hiện trên nó.