Tamsayıların, gerekçelerin ve gerçeklerin standart yapıcı tanımları?


10

Doğal sayılar endüktif olarak tanımlanır (örnek olarak Coq sözdizimi kullanılarak)

Inductive nat: Set :=
| O: nat
| S: nat -> nat.

Tam sayıları (ve belki de gerekçeler ve gerçekler gibi diğer kümeler) yapıcı olarak tanımlamanın standart bir yolu var mı?


1
Yapıcı tanım nedir?
Trismegistos

Yanıtlar:


12

Tanım olarak düşündüğünüz özelliklere bağlı olarak, matematiksel bir yapıyı tanımlamanın birden çok yolu vardır. Eşdeğer karakterizasyonlar arasında hangisini tanım, hangisini alternatif karakterizasyon olarak almak önemli değildir.

Yapıcı matematikte, yapıcı akıl yürütmeyi kolaylaştıran bir tanım seçmek tercih edilir. Doğal sayılar için, akıl yürütmenin temel biçimi, geleneksel sıfır veya ardıl tanımını çok uygun kılan tümevarımdır. Diğer sayı kümelerinin böyle bir tercihi yoktur.

Bölümler üzerinde muhakeme yaparken, yapıcı olmayan ortamlarda, “denklik sınıfının bir üyesini seçin” demek yaygındır. Yapıcı bir ortamda, bir üyenin nasıl seçileceğini açıklamak gerekir. Bu, denklik sınıfları oluşturmaktan ziyade, türün her bir üyesi için bir nesne oluşturan tanımlarla gitmeyi kolaylaştırır.

Örneğin, tanımlamak için , bir matematikçi doğal sayı farklılıklarını eşitlemekten memnun olabilir: Bu konuda düzenli bir his olsa da (“şu ya da bu” yok), yapıcı akıl yürütme için, nesnelerin eşitliğinin temsil eşitliğine denk gelmesi daha basittir , bu nedenle, göreceli tamsayıları doğal bir sayı veya doğal bir sayının eksi bir negatif olarak tanımlayabiliriz:Z

Z:=N2/{((x,y),(x,y))x+y=x+y}
Inductive Z1 :=
  | Nonnegative : nat -> Z1   (* ⟦Nonnegative x⟧ = ⟦x⟧ *)
  | Negative : nat -> Z1.     (* ⟦Negative x⟧ = -⟦x⟧-1 *)

Bununla birlikte, bu tanım garip bir şekilde asimetriktir, bu da sıfır için iki farklı temsili kabul etmeyi tercih edebilir:

Inductive Z2 :=
  | Nonnegative : nat -> Z2   (* ⟦Nonnegative x⟧ = ⟦x⟧ *)
  | Nonpositive : nat -> Z2.  (* ⟦Nonpostitive x⟧ = -⟦x⟧ *)

Veya doğalları bir yapı taşı olarak kullanmadan göreceli tamsayıları oluşturabiliriz:

Inductive Pos3 :=
  | I : Pos3                  (* ⟦I⟧ = 1 *)
  | S3 : Pos3 -> Pos3         (* ⟦S3 x⟧ = ⟦x⟧+1 *)
Inductive Z3 :=
  | N3 : Pos3 -> Z3           (* ⟦N3 x⟧ = -⟦x⟧ *)
  | O3 : Z3                   (* ⟦O3⟧ = 0 *)
  | P3 : Pos3 -> Z3           (* ⟦P3 x⟧ = ⟦x⟧ *)

Coq standart kütüphane kullanımları Yine bir başka tanımı: kendi gösterimden pozitif tamsayılar oluşturur Daha sonra inşa basamağı, 0 veya 1 değerindeki bir dizisi tarafından takip edilen basamak 1 gibi, temel 2 Zgibi Z3den Pos3yukarıda. Bu tanım aynı zamanda her tamsayı için benzersiz bir temsile sahiptir. İkili gösterimi kullanma seçimi daha kolay bir akıl yürütme değil, programlar provalardan çıkarıldığında daha verimli kod üretmek içindir.

Akıl yürütme kolaylığı bir tanım seçmede güdülenir, ancak asla aşılamaz bir faktör değildir. Bazı yapılar belirli bir kanıtı kolaylaştırırsa, bu tanımı o kanıtta kullanabilir ve yapının başlangıçta tanım olarak seçilen diğer yapıya eşdeğer olduğunu kanıtlayabiliriz.

Rasyonel sayılar için, tamsayıların bir faktörler ürünü olarak gösterilmesinden (bu toplama ve üzerindeki toplam sıralamanın tanımlanması zor olan bazı temel işlemleri yapmadığı sürece) bölümlerden kaçmak zordur. Coq standart kütüphane tanımlar olarak (pay ve payda) ve bir operatörün tanımlayan iki elemanlarının denkliğini test etmek . Bu tanım oldukça yaygındır çünkü bu kadar basit.NQN×N=?=Q

Gerçek sayılar, inşa edilemedikleri için tamamen farklı bir balık su ısıtıcısıdır. Gerçek sayıları bir endüktif tip olarak tanımlamak imkansızdır (tüm endüktif tipler sayılabilir). Bunun yerine, gerçek sayıların herhangi bir tanımı aksiyomatik, yani yapıcı olmamalıdır. Gerçek sayıların sayısız alt kümesini oluşturmak mümkündür; bunu yapmanın yolu hangi alt kümeyi oluşturmak istediğinize bağlıdır.


1
Hesaplanabilir gerçek sayılar gerçek sayılar birçok kullanımı bazı moda olağan sipariş bağlı olarak, en makul aday gibi görünüyor.
dfeuer

5
"İnşa edilebilir" ne anlama geliyor? Ben sadece "inşa edilebilir kümeler" la la set teorisinin farkındayım, ama şimdi demek istediğin bu. Ayrıca, gerçeklerin tamamen farklı bir balık su ısıtıcısı olduğu halde, "gerçek sayıların herhangi bir tanımının aksiyomatik, yani yapıcı olmayan" olduğu doğru değildir. Ve homotopi türü teoride realitelerin daha yüksek bir endüktif-endüktif tanımı vardır.
Andrej Bauer

15

Gilles, gerçek sayıların gerçekten farklı bir balık su ısıtıcısı olması haricinde, tamamen yanlış olan gerçek sayılar paragrafı dışında iyi bir cevaptır. Bu tür yanlış bilgilendirmeler oldukça yaygın göründüğü için, burada ayrıntılı bir çürütme kaydetmek istiyorum.

Tüm endüktif tiplerin sayısız olduğu doğru değildir. Örneğin, endüktif tip

Inductive cow := 
   | nose : cow
   | horn : (nat -> cow) -> cow.

denumerable değil, herhangi bir sıra verilir için c : nat -> cowbiz oluşturabilir horn csığır iyi temele göre sırayla olmadığı. "Tüm endüktif tipler sayılabilir" biçiminin doğru bir ifadesini istiyorsanız, izin verilen yapıları ciddi şekilde sınırlamanız gerekir.

Gerçek sayılar kolayca bir endüktif tip olarak inşa edilemez, ancak homotopi tip teorisinde daha yüksek bir endüktif-endüktif tip olarak inşa edilebilirler , bkz . HoTT kitabının 11. Bölümü . Bunun hile yaptığı söylenebilir.

Bir dizi olan yapıcı tanım ve Gilles istem aykırı Reals, yapıların. Genel olarak iki sınıfa ayrılabilirler:

  1. Gerçeklerin rasyonel sayıların bir metrik tamamlanması olarak görüldüğü Cauchy tipi yapılar . Bu tür bir yapı genellikle bölümler gerektirir, ancak bir kişi eşgüdümlü bir tanımdan kurtulabilir, ancak eşitliği nasıl ele aldığına bağlıdır. Saf bir yapı tipik olarak sayılabilir bir seçim de gerektirir, ancak Fred Richman seçim yapmadan yapıcı bir şekilde çalışan bir tamamlama prosedürü verdi, Gerçek sayılarını ve diğer tamamlamalarını görün .

  2. Gerçeklerin rasyonel (iki taraflı) kesimler olarak görüldüğü Dedekind tipi yapı . Bunu yapmak mümkün olsa da inşaatın Bu tür genellikle powersets veya benzer cihaz gerektirir sadece bazı temel -calculus ve Sierpinski alanı aksiyomlaştırılması , bkz Özet Taş Dualite Dedekind real .λΣ

Uygulama tarafında, realitelerin çeşitli yapıcı resmileştirmeleri var (ancak Coq standart kütüphanesinde sadece korkunç olan değil), örneğin Robbert Krebbers ve Bas Spitters'ın Bilgisayar sertifikalı etkin kesin gerçekleri Coq .

Gerçek bir uygulanması için kesin gerçek sayılar Ben Norbert Müller'in sizi işaret iRRAM .

Son olarak Gilles, gerçeklerin sayısız alt kümesinin işaretinin dışında olduğunu belirtti. Yaşadığınız yapıcı ortamlarda sayılamayan kümeler oluşturmak veya tanımlamak mükemmel bir şekilde mümkündür. Örneğin, Baire uzay sayıların tüm dizilerin olduğu Alway her fonksiyon Turing-hesaplanabilir olduğunu düşünseniz bile sayılamayan - bakınız benim blog yazısı bir açıklama.NN


Sen muhtemelen ... Coq gerçek kapalı alanların teorisini axiomatise olabilir
takma

Evet yapabilirdiniz ve Cyril Cohen bunu yaptı, bkz. Hal.inria.fr/hal-00671809v1/document . Amacın ne?
Andrej Bauer

1
Bir fikrim yok, bu sadece bir varsayımdı.
Takma isim
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.