Đây là một câu hỏi thú vị. Rõ ràng người ta không thể mong đợi có một chương trình quyết định cho mỗi dù có giữ hay không, vì điều này sẽ quyết định vấn đề Dừng. Như đã đề cập, có một số cách giải thích bằng chứng tính toán: phần mở rộng của Curry-Howard, tính khả thi, phương ngữ, v.v. Nhưng tất cả họ sẽ giải thích tính toán định lý mà bạn đã đề cập ít nhiều theo cách sau.∀ k T ( e , k )e∀kT(e,k)
Để đơn giản, hãy xem xét các định lý cổ điển tương đương
(1)∃i∀j(¬T(e,j)→¬T(e,i))
Đây là (về mặt xây dựng) tương đương với cái được đề cập bởi vì quyết định liệu có giữ hay không bằng cách kiểm tra giá trị của . Nếu giữ thì và do đó . Mặt khác, nếu không giữ thì bởi (1) chúng ta có ngụ ý .∀ k T ( e , k ) ¬ T ( e , i ) ¬ T ( e , i ) ∃ i ¬ T ( e , i ) ¬ ∀ i T ( e , i ) ¬ T ( e , i ) ∀ j ( ¬ T ( e , j ) → ⊥ )i∀kT(e,k)¬T(e,i)¬T(e,i)∃i¬T(e,i)¬∀iT(e,i)¬T(e,i)∀j(¬T(e,j)→⊥)∀jT(e,j)
Bây giờ, một lần nữa, chúng ta không thể tính trong (1) cho mỗi cho bởi vì chúng ta sẽ lại giải quyết vấn đề Dừng. Điều mà tất cả các giải thích được đề cập ở trên sẽ làm là xem xét các định lý tương đươngeie
(2)∀f∃i′(¬T(e,f(i′))→¬T(e,i′))
Hàm được gọi là hàm Herbrand. Nó cố gắng tính toán một ví dụ phản cho mỗi nhân chứng tiềm năng đã cho . Rõ ràng là (1) và (2) là tương đương. Từ trái sang phải điều này mang tính xây dựng, chỉ cần đưa vào (2), trong đó là nhân chứng giả định của (1). Từ phải sang trái người ta phải suy luận kinh điển. Giả sử (1) là không đúng. Sau đó,j i i ′ = i ifjii′=ii
(3)∀i∃j¬(¬T(e,j)→¬T(e,i))
Đặt là một hàm chứng kiến điều này, tức làf′
(4)∀i¬(¬T(e,f′(i))→¬T(e,i))
Bây giờ, lấy trong (2) và chúng ta có , đối với một số . Nhưng lấy trong (4), chúng ta có được sự phủ định của điều đó, mâu thuẫn. Do đó (2) ngụ ý (1). ( ¬ T ( e , f ' ( i ' ) ) → ¬ T ( e , i ' ) ) i ' i = i 'f=f′(¬T(e,f′(i′))→¬T(e,i′))i′i=i′
Vì vậy, chúng ta có (1) và (2) tương đương về mặt kinh điển. Nhưng điều thú vị là (2) giờ đây đã có một nhân chứng xây dựng rất đơn giản. Đơn giản chỉ cần lấy nếu không giữ, vì khi đó kết luận của (2) là đúng; hoặc nếu không, nếu giữ, vì sau đó không giữ và tiền đề của (2) là sai, làm cho nó trở lại đúng.T ( e , f ( 0 ) ) i ′ = 0 T ( e , f ( 0 ) ) ¬ T ( e , f ( 0 ) )i′=f(0)T(e,f(0))i′=0T(e,f(0))¬T(e,f(0))
Do đó, cách để giải thích một cách tính toán một định lý cổ điển như (1) là xem xét một công thức tương đương (cổ điển) có thể được chứng minh một cách xây dựng, trong trường hợp của chúng tôi (2).
Các cách hiểu khác nhau được đề cập ở trên chỉ phân kỳ trên cách hàm bật lên. Trong trường hợp có thể thực hiện được và giải thích biện chứng, điều này được đưa ra một cách rõ ràng bằng cách giải thích, khi kết hợp với một số hình thức dịch tiêu cực (như của Goedel-Gentzen). Trong trường hợp tiện ích mở rộng Curry-Howard có toán tử gọi và tiếp tục, hàm phát sinh từ thực tế là chương trình được phép "biết" cách sử dụng một giá trị nhất định (trong trường hợp của chúng ), vì vậy là sự tiếp nối của chương trình xung quanh điểm mà được tính toán.f i f iffifi
Một điểm quan trọng khác là bạn muốn đoạn từ (1) đến (2) là "mô-đun", nghĩa là nếu (1) được sử dụng để chứng minh (1 '), thì nên sử dụng cách giải thích của nó (2) theo cách tương tự để chứng minh sự giải thích của (1 '), hãy nói (2'). Tất cả các giải thích được đề cập ở trên làm điều đó, bao gồm cả bản dịch phủ định Goedel-Gentzen.