Gerçek bir sayıyı "temsil etmenin" veya "uygulamanın" ne anlama geldiği konusunda kafa karıştırmak kolaydır. Aslında, temsilin tartışmalı olduğu yorumlarda bir tartışmaya tanıklık ediyoruz. Önce bunu ele alalım.
Bir uygulamanın doğru olduğunu nasıl bilebiliriz?
Bilgisayarda bir şeylerin nasıl temsil edileceğini açıklayan teori gerçekleştirilebilirliktir . Temel fikir olduğunu, verilen bir dizi olduğu , bir veri türü seçmek t alınmak ve her için x ∈ X tipi bir değerler kümesi t alınmak fark o. Biz yazma v ⊢ x ∈ X zaman v farkında olduğunu bir değerdir x . Örneğin bir mantıklı uygulanması, (Ben sebepsiz Haskell kullanmak zorundadır) N veri türü olabilir nerede v ⊢ k ∈ N zaman vXτx∈Xτv⊢x∈XvxNInteger
v⊢k∈Nv rakamını değerlendirir (bu nedenle özellikle doğal bir sayıyı temsil etmez ve birbirinden ayrılan bir programı da temsil etmez). Ancak bazı şakacı yürümek ve biz kullanmanızı öneririz olabilir doğal sayıları temsil etmek T r u e ⊢ 42 ∈ N ve F bir L ler e ⊢ n ∈ N için n ≠ 42 . Bu neden yanlış? Bir kritere ihtiyacımız var .k¯¯¯-42
Bool
True⊢42∈NFalse⊢n∈Nn≠42
"Joker numaraları" durumunda, kolay gözlem toplama işleminin uygulanamayacağıdır. Her ikisinde de temsil edilen iki sayım olduğunu söylüyorum . Toplamları için bir aydınlatıcı verebilir misiniz? Bu, toplamın 42 olup olmamasına bağlıdır, ancak söyleyemezsiniz. Toplama "doğal sayıların ne olduğunun önemli bir parçası" olduğundan, bu kabul edilemez. Başka bir deyişle, uygulama kümelerle değil, yapılarla ilgilidir , yani kümeleri, ilgili yapının da uygulanabileceği şekilde temsil etmeliyiz. Şunu vurgulayayım:False
Çıplak setler değil, yapılar uyguluyoruz. Bu nedenle, uygulamanın doğru olması için tüm yapıyı operasyonlar ve tüm aksiyomlarla birlikte uygulayabilmeliyiz.
Bu ilkeye uymuyorsanız, alternatif bir matematiksel doğruluk kriteri önermelisiniz. Birini bilmiyorum.
Örnek: doğal sayıların gösterimi
Doğal sayılar için ilgili yapı Peano aksiyomları tarafından tanımlanır ve uygulanması gereken kritik aksiyom indüksiyondur (aynı zamanda , halef, + ve × ). Gerçekleşebilirliği kullanarak, tümevarım uygulamasının ne yaptığını hesaplayabiliriz. Bir harita olduğu ortaya çıkıyor ( doğal sayıları temsil eden henüz bilinmeyen veri türü)0+×nat
induction : 'a -> (nat -> 'a -> 'a) -> 'nat -> 'a
tatmin edici induction x f zero = x
ve induction x f (succ n) = f n (induction x f n)
. Bütün bunlar gerçekleşebilirlikten geliyor. Bir kritere sahibiz: Peano aksiyomlarının uygulanmasına izin verdiğinde doğal sayıların uygulanması doğrudur. Biz funktor için başlangıç cebri olarak numaralarının karakterizasyonu kullanıldığında da benzer bir sonuç elde edilecektir .X↦1+X
Reel sayıların doğru uygulanması
Gerçek sayılara ve eldeki soruya dikkat edelim. Sorulması gereken ilk soru "gerçek sayıların ilgili yapısı nedir?" Cevap: Arşimet Cauchy tam sıralı alanı . "Gerçek sayılar" ın yerleşik anlamı budur. Bunu değiştiremezsiniz, sizin için başkaları tarafından düzeltilmiştir (bizim durumumuzda alternatif Dedekind realitelerinin burada düşündüğümüz Cauchy realitelerine izomorfik olduğu ortaya çıkmaktadır.) "Eklemeyi uygulamakla ilgilenmiyorum" veya "siparişle ilgilenmiyorum" demenize izin verilmez. Bunu yaparsanız, buna "gerçek sayılar" dememelisiniz, "doğrusal sıralamayı unuttuğumuz gerçek sayılar" gibi bir şey söylemelisiniz.
Tüm ayrıntılara girmeyeceğim, ancak yapının çeşitli bölümlerinin gerçekler üzerinde nasıl çeşitli işlemler verdiğini açıklayayım:
- Arşimet aksiyomu yaklaşık işlem olup rasyonel reals yaklaşımları
- alan yapısı olağan aritmetik işlemleri verir
- doğrusal sipariş bize x < y test etmek için yarı değerli bir prosedür verirx<y
- Cauchy eksiksizliği bize fonksiyonu yerine
lim : (nat -> real) -> real
bir (temsilini) alır hızlı Cauchy dizisini ve sınır döndürür. ( Tüm m , n için | x n - x m | ≤ 2 dk. ( N , m ) ise dizisi hızlıdır .)(xn)n|xn−xm|≤2min(n,m)m,n
Elimizde olmayan şey , eşitlik için bir test fonksiyonudur. Aksiyomlarda realite için bunun karar verilebilir olmasını isteyen hiçbir şey yoktur . (Buna karşılık, Peano aksiyomları doğal sayıların karar verilebilir olduğunu ima eder ve bunu sadece eğlenceli bir egzersiz olarak kullanarak kanıtlayabilirsiniz ).=eq : nat -> nat -> Bool
induction
İnsanlığın kullandığı realitlerin olağan ondalık ifadesinin kötü olduğu bir gerçektir, çünkü onunla toplama bile uygulayamayız. Sonsuz mantis ile kayan nokta da başarısız olur (egzersiz: neden?). Bununla birlikte, işe yarayan , imzalı rakam temsilidir, yani, negatif rakamlara ve pozitif rakamlara izin verdiğimiz bir rakamdır. Veya yukarıda belirtildiği gibi hızlı Cauchy testini karşılayan rasyon dizilerini kullanabiliriz.
Tsuyoshi temsili de bir şey uygular, ancak R
Bize reals aşağıdaki temsili düşünelim: Gerçek bir bir çift ile temsil edilir ( q , b ) ( q, n ) n, yakınsayan bir hızlı Cauchy dizisidir x ve b olup bir Boolean belirten x bir tamsayıdır. Bunun gerçeklerin bir temsili olması için, toplama uygulamak zorunda kalırız, ancak ortaya çıktığı gibi Boole bayraklarını hesaplayamayız. Yani bu gerçeklerin bir temsili değildir . Ama yine de bir şeyi temsil ediyor, yani Z ∪ ( R ∖ Z ) realitelerinin alt kümesix(q,b)(qn)nxbxZ∪(R∖Z). Gerçekten de, gerçekleşebilirlik yorumuna göre, sendikanın hangi kısmında olduğumuzu belirten bir bayrakla bir birlik uygulanır. Bu arada, hariç tutulan orta noktaya inanmadığınız sürece , , R ile eşit değildir. uygulanamaz ve bu nedenle bu tartışma için oldukça önemsizdir. Biz edilir bilgisayarlar tarafından zorla intuitionistically şeyler yapmak.Z∪(R∖Z)R
Gerçeğin bir tam sayı olup olmadığını test edemeyiz
Son olarak, sorulan soruya cevap vereyim. Artık gerçeklerin kabul edilebilir bir temsilinin hızlı Cauchy rasyon dizileriyle bir olduğunu biliyoruz. (Önemli bir teorem, kabul edilebilir olan iki gerçek ifadesinin aslında hesaplanabilir şekilde izomorfik olduğunu belirtir.)
Teorem: Gerçeğin bir tam sayı olup olmadığını test etmek karar verilemez.
Kanıt. Bir gerçekin bir tamsayı olup olmadığını test edebileceğimizi varsayalım (elbette, gerçek hızlı bir Cauchy dizisi ile gerçekleşir). İsterseniz çok daha genel bir teorem kanıtlamanızı sağlayacak olan fikir, bir tamsayıya dönüşen tamsayı olmayanların hızlı Cauchy dizisini oluşturmaktır. Bu kolay, sadece x n = 2 - n al . Ardından, Durdurma sorununu aşağıdaki gibi çözün. Turing makinesi verilen T , yeni bir dizisini tanımlayan ( y , n ) , n ile
y , n = { x , n ise T(xn)nxn=2−nT(yn)n
Yani yeni dizisi dizi gibi görünüyor olduğunu(xn)nsüreceTishal, ama sonra at "sıkışmış" alırxmiseTadımm'dedurur. Çok önemli olarak, yeni dizi aynı zamanda hızlı bir Cauchy dizisidir (ve bunuT'nindurup durmadığınıbilmeden kanıtlayabiliriz). Bu nedenle, sınırını hesaplayabilirizz=limnyn
yn={xnxmif T has not stopped within n stepsif T stopped in step m and m≤n
(xn)nTxmTmTz=limnynçünkü gerçekleri temsil etmemiz doğrudur. Deney olup
bir tamsayıdır. Öyleyse,
0 olmalıdır ve bu sadece
T sonsuza dek çalışırsa olur . Aksi takdirde,
z bir tamsayı değildir, bu nedenle
T durmuş olmalıdır. QED.
z0TzT
Alıştırma: yukarıdaki kanıtı rasyonel sayıları test edemeyeceğimizi göstermek için uyarlayın. Sonra, önemsiz olmayan bir şeyi test edemediğimizi göstermek için uyarlayın (bu biraz daha zor).
Bazen insanlar tüm bu test işi hakkında kafaları karışır. Onlar , gerçekliğin bir tam sayı olup olmadığını asla test edemeyeceğimizi kanıtladığını düşünüyorlar . Ama şüphesiz, 42 gerçektir ve bunun bir tamsayı olup olmadığını söyleyebiliriz. Aslında, bulduğumuz herhangi bir gerçek, , 88 ln 89 , e π √sin1188ln89 , vb., Tamsayı olup olmadığını mükemmel bir şekilde söyleyebiliriz. Kesinlikle,bizçünkü söyleyebilirimbizekstra bilgiye sahip: Bu realse dizileri olarak bize verilen değil, biz Tsuyoshi biraz hesaplayabilir hangi sembolik ifadeler olarak verilmez. Yakında gerçek hakkında sahip tek bilgilerin yanı kendisine yakınlaşan rasyonel yaklaşımları dizisidir (ve donotdizisini anlatan sembolik bir ifade, ama çıktılar bir kara kutu anlamınangirişi oyunu bırakanların terimininbiz o zaman) makineler kadar çaresiz olacak.eπ163√nn
Hikayenin ahlakı
Bir set üzerinde ne tür işlemler yapmak istediğimizi bilmedikçe, bir setin uygulanması hakkında konuşmak mantıklı değildir.