A resposta para sua pergunta é retumbante: DEPENDE ! Isso nos leva a uma teoria dos conjuntos, que - embora interessante - talvez esteja um pouco fora dos padrões usuais de CS; Para resolver isso, fiz a primeira parte da minha resposta estritamente sobre a teoria da computabilidade e adicionei uma seção separada sobre o lado da teoria dos conjuntos.
Antes que possamos responder à sua pergunta, verifica-se uma sutileza surpreendente aqui:
Para um ordinal contável arbitrário, nem sempre é claro como definir .α0(α)
Isso é tratado de várias maneiras em mathoverflow e math.stackexchange; o que escrevi abaixo deve ser independente, no entanto.
A questão é a das apresentações (ou, essencialmente identicamente, seqüências fundamentais ). Em geral, suponha que seja um ordinal de limite, definimos para cada e queremos definir como o conjuntoNo entanto, este conjunto não é um conjunto de números naturais. Fixando um mapa , podemos "interpretar" ao longo de de uma maneira natural:Aqui está o problema: o queλ0(α)α<λ0(λ)
Zλ={(i,α):i∈ω,α<λ,i∈0(α)}.
f:λ→ωZλfZfλ={(i,j):i∈ω,j∈ran(f),i∈0(f−1(j))}.
f queremos usar? Escolhas diferentes de produzirão conjuntos diferentes e graus de Turing potencialmente diferentes. Isso não foi um problema para preparar , pois havia apenas uma coisa óbvia a ser feita, mas quando tentamos ir além, o problema vem à tona.
f0(ω)
Como um resumo rápido, há uma abordagem alternativa aqui que parece promissora no início: basta definir para um ordinal de limite como o menor limite superior de ! Combinado com a cláusula , isso parece fornecer uma definição recursiva que funciona para todos os ordinais contáveis. No entanto, verifica-se que todo esse ataque é construído com base em uma suposição falsa: não é o limite superior mínimo de no Turing graus e, de fato, nunca existem limites mínimos triviais (este é o "teorema exato do par" de Spector). Então, nós necessariamente temos que fazer algum trabalho.0(λ)λ{0(α):α<λ}0(β+1)=(0(β))′0(ω){0(n):n<ω}
Nesse ponto, é uma boa idéia voltar e tentar desenvolver uma teoria dos saltos iterados "do zero", por assim dizer. Essa é a teoria hiperaritmética devida a Kleene e é apresentada em detalhes no início do livro de Sacks; Vou apenas dar uma olhada rápida (e a-histórica).
Os conjuntos definidos acima são intuitivamente o que obtemos se iterarmos o salto não ao longo de um mero ordinal, mas ao longo de uma ordenação explícita de um conjunto de números naturais (ou seja, uma cópia do ordinal "rotulado" adequadamente ) Para tornar isso preciso, suponha que seja uma boa ordem de algum conjunto de números naturais (observe que determina ). É fácil mostrar que existe um conjunto exclusivo de pares ordenados de números naturais com as seguintes propriedades:ZfλRDRDJR
(x,y)∈JR somente se .x∈D
Se é o sucessor de , então se , em que .uRv(u,y)∈JRΦJR[v]yJR[v]={z:(v,z)∈JR}
Se é um limite , entãouRJR[u]={(v,y):v<Ru,y∈JR[v]}.
É isso que você obtém, intuitivamente, se você repetir o salto ao longo de começando com o conjunto vazio (o fato de termos começado com o conjunto vazio foi construído secretamente até o último marcador, pois se é o elemento último, então é forçado a ficar vazio; podemos relativizar começando com uma coluna não vazia) .RuRJR[u]
Se é "legal", isso é extremamente bem-comportado:R
Suponha que sejam pedidos dos conjuntos de números naturais, de modo que cada seja computável, suas respectivas operações sucessoras sejam computáveis e seus respectivos conjuntos de elementos limite sejam computáveis. Então, se e têm o mesmo OrderType temos .R0,R1D0,D1RiR0R1JR0≡TJR1
As condições acima são mais fortes do que apenas exigir que as ordenações sejam computáveis, mas, na verdade, toda ordenação computacional é (não computável!) Isomórfica para uma ordenação computacional tão "agradável". Portanto, com base nisso, faz sentido definir para um "ordinal computável" como o único grau de Turing de uma "sequência de salto" ao longo de uma "boa apresentação" de . De maneira mais geral, para qualquer grau de Turing , faz sentido falar sobre o grau para qualquer ordinal com uma apresentação computável.0(α)ααdd(α)αd
Os conjuntos computáveis de para alguns computáveis são os conjuntos hiperaritméticos ; A hiperaritmeticidade tem várias caracterizações equivalentes e é uma das noções fundamentais da teoria moderna da computabilidade e também é muito importante na teoria descritiva dos conjuntos. Mas isso só nos leva a numerosos ordinais; os ordinais mais contáveis não têm apresentações computáveis! O supremo dos ordinais computáveis é denotado " " - é muito maior que outros ordinais populares como , etc. etc., mas ainda é contável e , de fato, bastante pequeno entre os ordinais contáveis de várias perspectivas dentro da lógica0(α)αωCK1ϵ0Γ0. E não é muito difícil preparar dois graus de Turing, nenhum dos quais é hiperaritmético em relação ao outro, já que chegamos apenas a "alta contagem". Podemos fazer melhor?
Para ir mais longe, precisamos entrar na teoria dos conjuntos, então vou colocar uma linha horizontal aqui:
Tudo bem, vamos falar sobre teoria dos conjuntos. Acontece que nós pode continuar a saltar de uma maneira passado naturais . No entanto, isso fica complicado rapidamente. A ideia vem do universo construtivo de Godel , sendo que cada passo adicional na hierarquia é como dar - muitos saltos do que você tem até agora (já que você está vendo tudo de primeira ordem definível no que tem) tão longe). Provocar isso com precisão nos dá a noção de códigos-mestre . Não vou defini-los precisamente aqui, mas Hodes tem um excelente artigo sobre o assunto .ωCK1Lω
Agora, os códigos-mestre têm muitos recursos sutis e irritantes, mas permitem iterar sem problemas (ish) o salto que começa com o conjunto vazio até , o primeiro ordinal que o universo construtível considera incontável. (De uma maneira mais geral, dado um grau , podemos "fazer códigos-mestre" sem problemas até , o primeiro pedido que o menor modelo interno de ZFC contendo acha incontável.)∗ωL1dωL[d]1d
Se o universo construtível é tudo o que existe - ou seja, se V = L -, então somos peachy:
Cada real em é computável de algum - no sentido de mastercodes - para alguns .L0(α)α<ωL1
De um modo mais geral, "alcançável por códigos-mestre" nos dá a noção de construtibilidade relativa : iff iff está em todo modelo interno que contém iff é computável a partir de algum para .x≤Lyx∈L[y]xyxy(α)α<ωL[y]1
No entanto, é bem possível - isto é, consistente em relação ao ZFC - que está muito longe de . Por exemplo, pode ser contável e, de fato, o "real" pode parecer bastante grande da perspectiva de ! De fato, verifica-se que fortes hipóteses da teoria dos conjuntos podem impedir-nos de ir muito longe com essa idéia:VLωL1ω1L
De um modo geral, se existem cardeais grandes , não há sequências crescentes facilmente definidas dos graus de Turing. (Isso é parametrizado: aumente os cardeais grandes e teremos uma indefinibilidade cada vez mais necessária.)ω1
Mesmo assumindo e descartando qualquer coisa (como cardeais grandes) que aumentará a força da consistência, os ainda podem ser bastante selvagens, via forçamento . Em particular, se são mutuamente genéricos de Cohen (digamos) sobre , então e ; podemos obter genéricos Cohen sem alterar , portanto, neste caso, nenhum dos dois é acessível através de muitos saltos, assumindo que compramos a "imagem mastercode" (e, se não o fizermos, precisamos criar outra foto!) .ωL1=ω1 ≤Lc0,c1Lc0∉L[c1]c1∉L[c0]ω1
∗ Eles realmente só fazem sentido no nível de graus , não conjuntos de naturais , portanto, nesse sentido, a "questão da apresentação" não foi evitada; veja o meio da página 207 do artigo de Hodes. Mais desagradável, o Teorema 8 (e veja a parte inferior da página 204 para a definição relevante) mostra que ... OK, não há uma maneira agradável de dizer isso, e eu não posso mais adiar : mastercode-jumps não são totalmente monótono . Podemos ter mas em algum grau . Aaargh.α<βa(β)=0(α)a