Por Que Lean 4, Por Que Agora
O Teorema 2.1 em sua forma simétrica é um resultado de EDO. O cálculo diz que é verdade. Então por que formalizar?
- Transparência. A cadeia de Gronwall em S2 tinha meia dúzia de pequenas suposições ("assuma \(z(0) \geq \log 2\)", "use a hipótese de indução"). Em Lean 4 cada uma é uma obrigação separada e verificada por tipos.
- Reúso. A cadeia de operadores \(G = U\circ F\circ K\circ C\) é uma afirmação estrutural sobre cada capítulo do GTCT. Uma formalização Lean 4 de \(G\) em uma situação (aqui: a EDO dm³) se torna um template para os outros capítulos.
- Descoberta. Escrever a prova em Lean 4 foi o que expôs o AXLE Issue #12: a estimativa de Lipschitz que nosso artigo passa por cima. Lean não aceitou a passagem. Foi assim que a lacuna se tornou uma issue nomeada.
A formalização não é sobre certeza. É sobre localizar incerteza. A lacuna entre \(\varepsilon_0 = 1/3\) (Gronwall) e \(r_\star = 0{,}80\) (numérico) é uma lacuna matemática. O Issue #12 é uma lacuna formal — um lugar onde a prova Lean atualmente diz sorry. Ambas merecem atenção.
AXLE/Chain.lean — A Cadeia de Operadores
A cadeia de quatro operadores \(G = U\circ F\circ K\circ C\) do GTCT (contração, curvatura, filtro, desdobramento) é representada como uma structure dependente. Cada operador é um mapa entre espaços de estado com sua própria hipótese de regularidade.
Lendo a estrutura
Note as hipóteses de regularidade: \(C\) e \(F\) são não-expansivas (LipschitzWith 1), \(U\) só precisa ser contínua (ela expande informação, não precisa preservar métrica), e \(K\) — o operador de curvatura, geometricamente o fluxo radial dm³ — carrega uma constante de Lipschitz existencial.
A constante de Lipschitz do fluxo radial dm³ em um dado instante depende da altura inicial \(z(0)\) e de \(\varepsilon\). Ela é limitada, mas o limite não é uniforme nos dados iniciais. Codificamos isso honestamente: \(K\) é Lipschitz, com alguma constante \(L\), e o resto da cadeia deve funcionar para qualquer tal \(L\). Isso é exatamente o que a API Lipschitz do Mathlib suporta.
SpiralReturn — Formalizando o Teorema 2.1
A EDO em si é uma aplicação de Picard–Lindelöf. O ODE.Gronwall e o ODE.PicardLindelof do Mathlib nos dão existência, unicidade e o lema de Gronwall. O esqueleto abaixo mostra o enunciado em sua forma atual.
O que está provado, o que é sorry
Os Passos 1 e 3 do esboço de prova são chamadas de biblioteca. O ODE.PicardLindelof e o ODE.Gronwall do Mathlib são completos, mantidos e bem documentados. O Passo 2 — produzir a desigualdade escalar a partir da equação radial — precisa de uma cota no termo de acoplamento. Essa cota é o conteúdo do Issue #12.
Dados \(|u(0)| < 1/3\) e \(z(0) \geq \log 2\), existe \(\eta > 0\) tal que ao longo das soluções de dm³, \(\tfrac12 \frac{d}{dt} u^2 \leq -\eta\, u^2\) para todo \(t \geq 0\).
Isso é o que o Passo 2 deve entregar. Dado isso, o Passo 3 é uma aplicação de uma linha de Mathlib.Analysis.ODE.Gronwall. O \(\eta\) explícito é \(2 - 3\varepsilon_0 - 1 > 0\) quando \(\varepsilon_0 < 1/3\). O insumo ausente é uma cota de Lipschitz no acoplamento que é uniforme para todo \(t\) em que \(|u| < \varepsilon_0\). Isso é o Issue #12.
AXLE Issue #12 — A Estimativa de Lipschitz
Objetivo: Provar kappa_lipschitz em AXLE/Coupling.lean:
Dificuldade: Baixa — em forma de papel é uma estimativa de uma linha: \(\kappa\) é linear em \(r\) com inclinação \(\varepsilon e^{-z} \leq \varepsilon e^{-z_{\text{lo}}}\), então \(L = \varepsilon e^{-z_{\text{lo}}}\) funciona.
Por que está no Lean: Transformar essa estimativa de uma linha em Lean requer o Lipschitz.mk' correto, alguma plumagem NNReal para a constante, e cuidado com a monotonicidade de Real.exp. Um contribuidor Lean iniciante pode fazer em uma tarde.
Caminho de contribuição
git clone https://github.com/TOTOGT/AXLE- Abra
AXLE/Coupling.leanno VS Code com a extensão Lean 4. - Substitua o
sorrypor um termo de prova real. lake buildpara verificar tipos; abra um PR.
Relacionado: duas issues já fechadas
dm3Radial para a forma de ODE.Gronwall.comparison
fechado · merged #11
Reescrever a desigualdade escalar na forma que o lema de comparação de Gronwall do Mathlib espera (\(\dot u \leq f(u)\) com \(f\) localmente Lipschitz). Feito — levou duas rodadas de revisão.
Formalizar o exercício de quadro de S1: \(\{r(t) > 1\}\) é positivamente invariante. Feito via Mathlib.Analysis.ODE.Invariant.
Além do #12. A bacia precisa \(r_\star \approx 0{,}80\) é um projeto de pesquisa separado, não uma lacuna de formalização. Nenhuma quantidade de Lean vai afiar \(1/3\) para \(0{,}80\) — isso requer um argumento matemático novo, provavelmente uma função de Lyapunov com estrutura sensível ao sinal. Se quiser trabalhar nisso, o laboratório numérico (labs/dm3_numeric.py) é o lugar para começar.
▶ Fluxo dm³ — Referência
Mantenha este aberto enquanto lê o Lean. As órbitas que você vê são exatamente o que spiralReturn promete — módulo Issue #12.
spiralReturn promete, visualizado
O Que o Curso Fez
Em três horas caminhamos de variedades de contato em dimensão 3 (S1) por Teorema 2.1 com sua bacia de Gronwall (S2) até uma formalização Lean 4 com uma obrigação em aberto (S3). A formalização está viva, pública e recebe contribuições. A bacia precisa \(r_\star\) é pesquisa aberta. O simulador dm³ roda em qualquer navegador.
Se você contribuir uma prova de kappa_lipschitz, você fecha o último sorry na prova simétrica do Teorema 2.1. A cadeia de operadores \(G = U\circ F\circ K\circ C\) então terá uma instância completamente verificada. Isso é um marco: um teorema GTCT com prova verificada por máquina.
Conclusão Final · O mapa do território
- A geometria (S1) força uma hélice. A forma de contato não é decoração; é o suporte de \(\Gamma\).
- A análise (S2) prova contração exponencial à taxa \(-2\), numa bola de Gronwall \(|r - 1| < 1/3\).
- A numeração (S2) corrige a fronteira interior para \(r_\star \approx 0{,}80\) — mais restritiva que Gronwall, não mais fraca.
- A formalização (S3) reduz o teorema simétrico inteiro a um lema estilo Mathlib:
kappa_lipschitz.
Quatro camadas, quatro contribuições, uma hélice. Obrigado, Natal.
- Curto prazo (tarde). Feche o Issue #12. Baixa dificuldade, alta clareza, atribuição nomeada no log de commits do AXLE.
- Médio prazo (semana). Formalize o Corolário 2.3 (a bacia explícita) como consumidor de
spiralReturn. Depende do #12 estar fechado. - Longo prazo (pesquisa). Encontre a função de Lyapunov sensível ao sinal que produz \(r_\star\). Isso é um artigo, não uma issue.