Documento para revisão de pares — rigor científico, reprodutibilidade e honestidade técnica.

LHA — FaltaGAP + Relógios de Falta + DSS (vFINAL)

Resumo executivo

Apresentamos um pipeline determinístico cooperativo para identificação de primos que combina Relógios de Falta (Falta-Gate), a métrica FaltaGAP (Δ e fixpoint de janela) e o DSS (crivo segmentado determinístico por intervalo). O objetivo é dupla transparência: (i) geolocalização modular do número com saltos por “gomo” (Δ), e (ii) verificação formal na faixa via DSS. O auditor clássico por divisores ≤√n é usado na prática como evidência cruzada (espera-se FP=FN=0).

Ferramentas embutidas neste arquivo permitem rodar os testes localmente (até 20.000 números por execução), ver gráficos (senoide triangular, histograma de Δ, resíduos mod 30), exportar CSV e reproduzir offline com código mínimo em Python/JS.

Conceitos & Fórmulas

Wheel ≤ 29 (OddSpace/NO-first)

Conjunto de resíduos Res(30) = {1,7,11,13,17,19,23,29}. Filtra ímpares não múltiplos de 3 e 5. Primos 2,3,5 são base. Se n ∉ Res(30) e n é ímpar, então n é composto.

Relógios de Falta (Falta-Gate)

Para p ímpar (p ≠ 5): F_p(n) = (p − (n mod p)) mod p. Evento determinístico: F_p(n) = 0 ⇔ p | n. Atualização incremental: F_p(n+1) ≡ F_p(n) − 1 (mod p). Em bloco B: F_p(n+B) ≡ F_p(n) − B (mod p).

FaltaGAP (Δ e fixpoint)

Para um conjunto de relógios 𝒫 (ex.: ≤29/≤59/≤97, sem 5), defina:

Δ(n) = min_{p∈𝒫} F_p(n), janela 𝒢(n) = [n, n+Δ−1].

Se 𝒫 contém todos os primos ≤ √(n+Δ−1), então toda 𝒢(n) (restrita a Res(30)) é composta apenas por primos (janela-prima). O fixpoint FaltaGAP consiste em ampliar 𝒫 até cobrir √B; Δ é monótono (não cresce) e o processo converge.

DSS — Crivo segmentado determinístico na faixa [A,B]

Marca compostos por menores divisores p com p² ≤ B. Resultado é determinístico e serve como verdade na faixa.

Auditor √n

Checa, para cada n, divisores primos ≤ √n. Em nossos testes, coincide com DSS (FP=FN=0), sendo evidência cruzada para reprodutibilidade.

Provas curtas

Lema 1 — Gate Res(30)

Ímpares fora de Res(30) são múltiplos de 3 ou 5 (exceto 3 e 5). Logo, Res(30) é um pré-gate correto para candidatos.

Lema 2 — Falta-Gate ≡ Não-divisibilidade

∀n, (∀p∈𝒫, p ∤ n) ⇔ (∀p∈𝒫, F_p(n) ≠ 0).

Se algum F_p(n)=0 então p|n; recíproco imediato pela definição.

Teorema — Janela-prima (FaltaGAP + fixpoint)

Se 𝒫 contém todos os primos ≤ √(n+Δ−1), então nenhum m∈𝒢(n) tem divisor ≤ √(n+Δ−1). Restringindo a Res(30), todos os m>1 são primos. ■

Pseudocódigos

# Base de primos até sqrt(B):
BASE(B):
  lim ← ⌊√B⌋
  sieve[0..lim] ← 1; sieve[0]=sieve[1]=0
  para i=2..⌊√lim⌋:
    se sieve[i]=1: para j=i*i..lim passo i: sieve[j]=0
  retornar {p | sieve[p]=1}

# DSS em [A,B]:
DSS(A,B):
  mark[0..(B-A)] ← 1
  se A ≤ 1: zerar 0 e/ou 1
  base ← BASE(B)
  para p em base:
    start ← max(p*p, ceil(A/p)*p)
    para m=start..B passo p: mark[m-A] ← 0
  retornar mark  # 1=primo, 0=composto

# FaltaGAP (Δ e fixpoint):
Δ(n, P) = min_{p∈P} ((p − (n mod p)) mod p)
FIXPOINT(n, P_init):
  P ← P_init
  Δ ← Δ(n,P); B ← n+Δ−1
  enquanto max(P) < ⌊√B⌋:
    ampliar P e recomputar Δ; B ← n+Δ−1
  retornar (Δ, B, P_final)

Comparativo breve

Determinísticos

  • Trial √n: simples e universal; caro para n isolado grande.
  • DSS: ótimo em faixas (amortiza custo), memória baixa.
  • FaltaGAP (fixpoint): salta gomos por Δ; com fixpoint, gera janelas-prima sobre Res(30).
  • ECPP/Pocklington/AKS: para certificado formal (etapa de produto).

Probabilísticos

  • Miller–Rabin: prático e rápido; probabilidade de erro controlada (não zero).
  • Baillie–PSW: muito forte na prática; ainda sem prova de infalibilidade universal.

Síntese: Wheel+Relógios reduzem domínio; FaltaGAP dá saltos determinísticos; DSS fixa a “verdade” na faixa; Auditor √n valida concordância; certificador formaliza quando necessário.

Viabilidade & complexidade

Experimentos reproduzíveis (clique para rodar)

N individual — Relógios + FaltaGAP

pronto

Faixa [A,B] — DSS (verdade) + Auditor √n

pronto
Concordância (DSS × √n)
OK — • FP — • FN —
π([A,B])
NVERWheelFGres30FG remainders
Senoide triangular (primos)
Resíduos mod 30
Histograma de Δ (FaltaGAP em faixa)

Código mínimo (para replicar fora do navegador)

Python

import math
def primes_up_to(n):
    s=bytearray(b"\x01")*(n+1); s[0:2]=b"\x00\x00"
    for i in range(2,int(n**0.5)+1):
        if s[i]: s[i*i:n+1:i]=b"\\x00"*(((n-i*i)//i)+1)
    return [i for i in range(2,n+1) if s[i]]
def dss(A,B):
    L=B-A+1; mark=bytearray(b"\\x01")*L
    if A==0: mark[0]=0
    if A<=1 and 1<=B: mark[1-A]=0
    base=primes_up_to(int(B**0.5)+1)
    for p in base:
        start=max(p*p, ((A+p-1)//p)*p)
        for m in range(start,B+1,p):
            mark[m-A]=0
    return mark
def sqrt_prime(n, base):
    if n<2: return 0
    if n==2: return 1
    if n%2==0: return 0
    for p in base:
        if p*p>n: break
        if n%p==0: return 0
    return 1
def auditor(A,B):
    base = primes_up_to(int(B**0.5)+1)
    return bytearray(sqrt_prime(n,base) for n in range(A,B+1))

JavaScript

function primesUpTo(n){const s=new Uint8Array(n+1);s.fill(1);s[0]=s[1]=0;for(let i=2;i*i<=n;i++)if(s[i])for(let j=i*i;j<=n;j+=i)s[j]=0;const out=[];for(let i=2;i<=n;i++)if(s[i])out.push(i);return out;}
function basePrimesForDSS(B){const lim=Math.floor(Math.sqrt(B))+1,sv=new Uint8Array(lim+1);sv.fill(1);sv[0]=sv[1]=0;for(let i=2;i*i<=lim;i++)if(sv[i])for(let j=i*i;j<=lim;j+=i)sv[j]=0;const base=[];for(let i=2;i<=lim;i++)if(sv[i])base.push(i);return base;}
function DSS(A,B){const len=B-A+1,mark=new Uint8Array(len);mark.fill(1);if(A===0){mark[0]=0;if(len>1)mark[1]=0}if(A===1){mark[0]=0}const base=basePrimesForDSS(B);for(const p of base){let st=Math.max(p*p,Math.ceil(A/p)*p);for(let m=st;m<=B;m+=p)mark[m-A]=0}if(A<=0&&0<=B)mark[0-A]=0;if(A<=1&&1<=B)mark[1-A]=0;return mark;}
function sqrtVerdict(n,base){if(n<2)return 0;if(n===2)return 1;if(n%2===0)return 0;for(const p of base){if(p*p>n)break;if(n%p===0)return 0}return 1}

Checklist de reprodutibilidade