Skip to content

Import abstract linear control systems and endpoint zero-class theorem - #616

Merged
Vilin97 merged 2 commits into
mainfrom
codex/import-abstract-linear-control-20261008
Oct 8, 2026
Merged

Vilin97 merged 2 commits into
mainfrom
codex/import-abstract-linear-control-20261008

Conversation

@Vilin97

@Vilin97 Vilin97 commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

This imports Frédéric Marbach's completed formalization of abstract linear control systems. The main result proves the endpoint zero-class property for bounded inputs and continuity of input-response trajectories, without an integral-representation or reflexivity assumption. The development also constructs finite-p and scalar non-representable counterexamples, with reusable Phillips-lemma, semigroup, Lp, invariant Hahn–Banach, and periodic-mean infrastructure.

Source, completion, and scope

  • Public upstream: https://github.com/frederic-marbach/alcs/tree/bda56576f8b2730b73a55f273511c80fabbe56f4
  • Pinned commit: bda56576f8b2730b73a55f273511c80fabbe56f4.
  • Material completion: 2026-10-03 12:46:57 UTC, commit 00f440f423984d6631336313ab904a76b89fc4ca, which formalized all version-2 statements. The October 3 paper records the same day's Palomar upload: https://hexagonmath.org/pdf/2610.00022v2.
  • Daily eligibility window: [2026-10-01 09:15:18 UTC, 2026-10-08 09:15:18 UTC). The earlier informal discovery is not used as the eligibility date.
  • License: upstream Apache-2.0, retained in each imported header. Attribution: Frédéric Marbach, GPT-6 Pro, Claude Opus 5.5. Provenance is AI; the paper explicitly attributes all Lean statements and proofs to the two AI systems.
  • Imports all 12 substantive upstream ALCS modules, one shared arbitrary-measure L-infinity bounds module, the project entry, and the generated public wrapper: 15 Lean files / 4,875 physical lines. Excludes the comparator challenge, solution bridge, and diagnostic axiom-check module; no proof dependency is omitted. Adds one project YAML card and leaves the fixed LeanPool.lean unchanged.
  • Pool cards/source, public PRs/issues/history, pinned Mathlib, and public TauCeti source searches found no duplicate of this development. Other candidates are retained as discovery leads; any later cycle must independently verify its eligibility window.

Port and measured optimization

Ported Lean 4.35.0-rc2 / Mathlib 065356127b1dc0016f66b7283ce0ce2c4055aa55 to the pool's exact Lean 4.35.0-rc3 / Mathlib c55e6e786f49471c72fbddbec5415808896aec1e. Public declarations are namespaced under AbstractLinearControl, and imports expose the complete project API.

The first successful port build, before optimization, took 22.51 s wall / 54.27 s user CPU. The first optimization phase took 17.87 s wall / 49.04 s user CPU, before the subsequent Greptile-driven duplication repair.

For the final repaired source, two alternating clean baseline/final replays under the current host load took 34.40 → 31.40 s and 28.26 → 26.14 s wall. The means are 31.33 → 28.77 s, an observed 8.2% reduction; mean user CPU is 59.725 → 57.710 s. Peak RSS remained approximately 1,522,000 KiB. A separate final run overlapping a static audit took 42.93 s and is excluded from the comparable performance claim.

All comparisons use lake build LeanPool.AbstractLinearControl, identical Lean/Mathlib/package pins and default Lake parallelism, warm package dependencies, and fully rebuilt project outputs. The alternating replay directories contain the saved pre-optimization source and exact final source; unrelated pool modules do not enter this target's dependency graph. Shared-host load affects wall time, so paired results are reported instead of applying the earlier 20.6% improvement to the changed final source. Full final per-file profiling is also recorded: all 13 substantive modules succeeded. Final allocation comparisons include mean_interval 29,700.1 → 18,262.0 and shiftT_tendsto 4,116.7 → 1,486.3 heartbeat units; the latter benefits from reuse of the general translation theorem.

Profiled every substantive file sequentially with Elab.async=false and allocation-based command traces. Replaced an unrelated inner-product import with targeted tactic imports, replaced five module-normalization calls with explicit scalar distribution and additive normalization, restricted broad simplification in the invariant-mean positivity proof, and replaced unnecessary nonlinear arithmetic in interval calibration with linear arithmetic. Removed redundant direct imports in the finite-p example. Addressed Greptile's duplicated-Lp finding by proving the right shift equals the generic half-line shift at a negative parameter and reusing the existing translation-continuity proof. Zero-extension and norm helpers delegate to the generic API. Both L-infinity norm bounds now share an implementation generalized to arbitrary measures and normed additive groups; the example-only duplicate continuity machinery was removed. Removed the upstream heartbeat override entirely; repaired style warnings and documented all public API entries. The unused input-space completeness assumption was removed from the endpoint theorem and its continuity consequences, strengthening those statements. No theorem was weakened and no suppression was added.

Validation and review

  • Clean imported-project build: pass, with no warnings.
  • Generated public wrapper build and lake exe mk_all --check: pass.
  • Current slow Mathlib/Batteries declaration linters via scripts/ci/lint-project.lean: pass across 15 modules / 683 declarations.
  • lake exe lint-style LeanPool.AbstractLinearControl.Imports: pass.
  • Whole-repository static quality checks: pass. Current runtime quality axiom audit covers all 325 public source declarations; the option/backdoor environment audit covers every compiled declaration in the 15 owned modules. Both pass with only Classical.choice, propext, and Quot.sound allowed; headline declarations resolve.
  • Header, file/proof size, forbidden mechanism, registry/card, reachability, and content-scope checks: pass locally. No Python, infrastructure, toolchain, gate, or linter configuration changes.
  • Full required CI and configured automatic reviews remain authoritative. Greptile found no blocking defect on the first head; its non-blocking repeated-Lp finding is repaired, replied to, and resolved. Greptile has reviewed 7fa4ecc44a02d44514f906d0632101e758ec14de and confirms the prior finding is fully addressed, with no new actionable issue. Required Lean CI is queued/running on this exact head; GPT automatic review waits for exact-head green Lean CI. The separate thorough source/diff review approves the content and is updated for the repair head.

The PR is open for normal protected validation. PR610 and PR611 are merged, but their current-main Lean Action CI is still pending (run 37750520843). The infrastructure hold remains active: this acquisition does not merge or enable auto-merge, and its author branch will not be repeatedly rebased to chase main.

@Vilin97

Vilin97 commented Oct 8, 2026

Copy link
Copy Markdown
Collaborator Author

Thorough agentic content review — APPROVE at head c799d9d53eae4a6b375624956bb147e785f3f12c.

This is a source/diff review separate from the configured Greptile and GPT reviews. It does not authorize a merge: required CI, automated verdicts, branch protections, and the active infrastructure hold still apply.

Coverage and faithfulness. I inspected all 12 substantive upstream/imported modules in bounded source slices, all six YAML headline declarations, their dependency closure, the actual port/optimization diff, and the build/profile evidence. ALCS contains the usual strongly continuous semigroup, bounded input maps, and concatenation identity; it does not assume continuity or the zero-class conclusion. The a.e. representation convention is substantive: exists_concat, exists_delay, bounded representatives, shift identities, and truncation results establish the input operations used by the proof.

  • ALCS.zero_class quantifies over real/complex normed input spaces and complete state spaces, and concludes operator-norm convergence at zero through the nonnegative-time neighborhood. Removing the unused completeness requirement on inputs strengthens the upstream theorem. Its proof constructs near-extremal pulses, disjoint measurable packing into a bounded operator from actual bounded sequences, invokes the proved Phillips lemma, and derives a zero infimum using the doubling inequality. The hard uniformity step is proved rather than hidden in a field.
  • ALCS.continuousOn_Phi proves continuity for every bounded input on Ici 0, including the endpoint. continuousOn_Phi_of_ne_top retains Fact (1 ≤ p), p ≠ ∞, and state-space completeness; it uses real Lp translation/truncation continuity, not a surrogate input norm.
  • exists_system_norm_Phi_eq_one constructs a real Banach-space shift system for each finite p, verifies its composition identity, and attains norm one using actual indicator inputs. It is a concrete witness to the difference from the endpoint theorem.
  • no_representation constructs the invariant mean and LocalControlData before producing the system; its formula, norm equality, composition, and small-support inputs are all proved. HasIntegralRepresentation is the genuine bounded-operator integral formula specialized to the identity scalar semigroup. The Young-function class is broader than the paper's class, and the card/docstrings disclose this. Its Luxemburg gauge uses an actual modular integral and infimum. The proof supplies indicator inputs in the Orlicz heart, so non-admissibility is not won through a vacuous membership predicate.
  • Phillips.full uses bounded continuous functions on discrete naturals, hence actual bounded sequences, and proves absolute summability, convergence of atomic coefficient norms, and the diagonal conclusion over RCLike scalars. The diagonal/gliding-hump argument and norming-functional extension are closed within the imported closure.

Significance and fit. Pass. This is a completed research-level development with an endpoint control theorem, meaningful separating examples, and supporting functional-analysis infrastructure. It gives reusable half-line Lp operations, strong semigroup bounds, Phillips' lemma, finite averaging/Hahn–Banach extension, and periodic means. It contains ordinary proof source rather than generated certificates, external executable trust, or unfinished scaffolding.

Novelty and sources. Pass. Pool cards/source, public open/merged PRs and issues, and history searches did not find this project. Exact and conceptual searches of pinned Mathlib found neither the ALCS development nor Phillips' bounded-sequence lemma. Public TauCeti ALCS/author searches found no copy; unrelated Lumer–Phillips hits concern semigroup generators. This is search evidence, not a claim of exhaustive semantic equivalence across all repositories. Upstream is public and its actual LICENSE is Apache-2.0. The pinned source, version-2 PDF, October 3 completion commit, and paper's Palomar/proof-provenance statement agree. The paper explicitly credits GPT-6 Pro and Opus 5.5 for all Lean statements and proofs; provenance: AI is accurate. The Sep 29 informal discovery is not used to satisfy the acquisition window.

Engineering, trust, and cost. Pass; competent maintainable code (3/5). The development has coherent subject boundaries, explicit a.e. equivalences, concrete witness constructions, and no unresolved material review finding. I checked the actual arithmetic/normalization changes against upstream: no conclusions were weakened, no assumptions were disguised, and all mathematical proof dependencies are retained. Excluded files are only comparator scaffolding/bridges and diagnostic axiom printing. Every public source declaration passes the current allowlisted-axiom audit; the compiled environment audit includes private, generated, and auxiliary declarations for option and axiom-injection backdoors. All 693 owned declarations pass the current slow linters, with no waivers.

The controlled clean project build improved 22.51 → 17.87 s wall and 54.27 → 49.04 s user CPU. Sequential per-file profiling improved 126.914 → 114.557 s in the same profiling configuration. Allocation-based command trace units, normalized by 1000, changed as follows: extend_from_separation 27,028.7 → 24,491.9; positive_of_norm_le_one 31,957.2 → 31,851.8 (negligible); mean_interval 29,700.1 → 18,262.0. The useful changes are narrowed dependencies and explicit linear arithmetic/normalization. Remaining hotspots are ordinary bounded proofs; the measurements did not reveal another material safe improvement that justifies sacrificing clarity or generality. The upstream heartbeat override is gone and the whole project builds under the pool's defaults.

Validation checkpoint. Local clean project and wrapper builds, warning freedom, generated-index check, owned-module style and slow declaration linters, whole-repository static quality, all 332 public-source axiom closures, owned compiled-environment backdoor audit, card declaration resolution, and content-only diff checks pass. Python and infrastructure files are untouched. GitHub separation, workflow hygiene, advisory port audit, and applicable scope checks are already green; Lean CI, documentation, profiling, and Greptile were running at review time. The configured GPT worker waits for exact-head green Lean CI, so its verdict is not yet available. Main run 37750520843 remains pending; no merge or auto-merge action was taken.

@greptile-apps

greptile-apps Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Advisory cross-file review against Lean Pool's supervisory rubric. This is not by itself a significance, source-verification, or merge verdict.

Retrigger

[Medium risk]

No blocking code issue remains, but external source checks are still needed before an unconditional merge recommendation.

Summary

Imports abstract linear control systems, the bounded-input zero-class theorem, trajectory continuity, and counterexamples.

  • The latest changes share the L-infinity norm proofs and reuse half-line translation continuity.
  • Previous finding Evaluate using comparator for proof checking #1 is fully addressed. No new actionable issue was found.
  • All six card results were compared with their Lean statements. Public imports cover the added modules.
  • The reported build timings were not independently measured. External paper fidelity, upstream license evidence, and upstream completeness remain unverified. Local catalog searches found no matching project; external novelty was not verified.

Reviews (2) · Last reviewed commit: "Share Lp norm bounds and reuse half-line..." · Reviewed by Greptile

Comment thread LeanPool/AbstractLinearControl/Examples/FinitePNotZeroClass.lean Outdated
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Proof profile (new / modified Lean files)

lake build wall time (changed modules): 32.89 s (= 0.55 min) — user 90.32 s, sys 8.93 s.

This build covers the changed modules and their dependency cones on top of the restored cache. The serial per-file sums below are useful for ranking slow files, not as a build budget.

Total heartbeats: 1,053,059 maxHeartbeats units across 14 valid files (4,901 added LOC).

Sum of lean --profile: 66980.8 ms (= 66.98 s) across 14 valid files. Import-excluded time: 50900.8 ms (= 50.90 s).

Count-heartbeats wall-clock total: 178.37 s. Repeated import cost inside lean --profile: 16080.0 ms (= 16.08 s).

Heartbeat values sum disjoint root command traces with trace.profiler.useHeartbeats and synchronous elaboration, converted from raw allocations to maxHeartbeats units by dividing by 1000. They include command elaboration and kernel checking, exclude imports, and include profiler overhead; they are not comparable to the deprecated linter's totals. Per-file wall clocks are measured under parallel load and are noisier than heartbeats.

LOC counts added lines in the profiled Lean files from this PR diff.

File LOC Heartbeats (maxHB) Count wall (s) lean --profile (s) Without import (s) Import (s) Commands Errors
LeanPool/AbstractLinearControl/ZeroClass.lean 724 255,968 23.27 10.59 9.44 1.15 156 0
LeanPool/AbstractLinearControl/Examples/ExoticMean.lean 455 143,765 23.53 7.28 6.12 1.16 84 0
LeanPool/AbstractLinearControl/Examples/FinitePNotZeroClass.lean 550 108,893 11.99 6.35 5.17 1.18 210 0
LeanPool/AbstractLinearControl/Examples/Periodization.lean 425 101,273 15.96 6.04 4.87 1.17 79 0
LeanPool/AbstractLinearControl/Examples/NoRepresentation.lean 511 95,483 13.47 6.32 5.15 1.17 86 0
LeanPool/AbstractLinearControl/Background/InvariantHahnBanach.lean 376 94,351 15.00 5.13 4.00 1.13 42 0
LeanPool/AbstractLinearControl/Background/Phillips.lean 767 91,584 21.41 6.95 5.85 1.10 56 0
LeanPool/AbstractLinearControl/Background/Lp.lean 400 43,759 8.84 3.70 2.53 1.17 89 0
LeanPool/AbstractLinearControl/ContinuityFiniteP.lean 173 37,108 10.84 3.33 2.18 1.15 18 0
LeanPool/AbstractLinearControl/Definitions.lean 128 28,648 10.03 3.01 1.87 1.14 22 0
LeanPool/AbstractLinearControl/ContinuityLinfty.lean 130 26,290 9.09 2.62 1.48 1.14 17 0
LeanPool/AbstractLinearControl/Background/Semigroup.lean 205 25,936 9.16 2.80 1.79 1.01 20 0
LeanPool/AbstractLinearControl.lean 36 0 3.09 1.48 0.23 1.25 2 0
LeanPool/AbstractLinearControl/Imports.lean 21 0 2.69 1.37 0.21 1.16 1 0
Total 4,901 1,053,059 178.37 66.98 50.90 16.08 882 0

Aggregate phase totals

Phase Time
typeclass inference 18459.0 ms (= 18.46 s)
import 16080.0 ms (= 16.08 s)
interpretation 9021.0 ms (= 9.02 s)
tactic execution 6695.3 ms (= 6.70 s)
type checking 3930.2 ms (= 3.93 s)
simp 3099.2 ms (= 3.10 s)
elaboration 2665.2 ms (= 2.67 s)
blocked (unaccounted) 2322.5 ms (= 2.32 s)
tacticAnalysis 1089.7 ms (= 1.09 s)
linting 606.7 ms (= 0.61 s)
ring 466.0 ms (= 0.47 s)
initialization 441.4 ms (= 0.44 s)

Slowest changed modules (from lake build)

Changed module Lake time
LeanPool.AbstractLinearControl.ZeroClass 10.00 s
LeanPool.AbstractLinearControl.Examples.ExoticMean 9.30 s
LeanPool.AbstractLinearControl.Background.InvariantHahnBanach 8.60 s
LeanPool.AbstractLinearControl.Examples.FinitePNotZeroClass 8.00 s
LeanPool.AbstractLinearControl.Background.Phillips 7.90 s
LeanPool.AbstractLinearControl.ContinuityFiniteP 6.60 s
LeanPool.AbstractLinearControl.Background.Semigroup 5.20 s
LeanPool.AbstractLinearControl.Background.Lp 4.90 s
LeanPool.AbstractLinearControl.Examples.Periodization 4.40 s
LeanPool.AbstractLinearControl.Examples.NoRepresentation 3.90 s
LeanPool.AbstractLinearControl.Definitions 3.50 s
LeanPool.AbstractLinearControl.ContinuityLinfty 3.20 s
Per-file `lean --profile` output

LeanPool/AbstractLinearControl.lean

import took 1.25s
cumulative profiling times:
	elaboration 0.168ms
	import 1.25s
	initialization 36.2ms
	interpretation 192ms
	linting 0.672ms
	module linting 0.00176ms
	overlappingInstancesLinter 0.287ms
	parsing 0.0292ms
	tacticAnalysis 0.907ms
real 2.16
user 1.23
sys 0.96

LeanPool/AbstractLinearControl/Background/InvariantHahnBanach.lean

import took 1.13s
cumulative profiling times:
	attribute application 0.177ms
	blocked (unaccounted) 14.3ms
	compilation (IR) 0.201ms
	compilation (LCNF base) 3.54ms
	compilation (LCNF impure) 0.838ms
	compilation (LCNF mono) 1.47ms
	congr simp thm 10.6ms
	elaboration 200ms
	fix level params 3.4ms
	import 1.13s
	initialization 30.4ms
	instantiate metavars 3.2ms
	interpretation 623ms
	let-to-have transformation 0.491ms
	linting 41.5ms
	module linting 0.00154ms
	norm_num 36.8ms
	overlappingInstancesLinter 10.8ms
	parsing 26.1ms
	process pre-definitions 19.1ms
	ring 28.1ms
	share common exprs 10.9ms
	simp 208ms
	tactic execution 493ms
	tacticAnalysis 76.4ms
	type checking 327ms
	typeclass inference 1.83s
real 4.26
user 4.91
sys 0.91

LeanPool/AbstractLinearControl/Background/Lp.lean

import took 1.17s
cumulative profiling times:
	attribute application 0.441ms
	congr simp thm 3.62ms
	dsimp 35.9ms
	elaboration 226ms
	fix level params 5.82ms
	import 1.17s
	initialization 30ms
	instantiate metavars 5.02ms
	interpretation 600ms
	let-to-have transformation 1.11ms
	linting 49.5ms
	module linting 0.00178ms
	norm_num 0.736ms
	overlappingInstancesLinter 18.3ms
	parsing 30.7ms
	process pre-definitions 29ms
	ring 19.6ms
	share common exprs 17.6ms
	simp 82ms
	tactic execution 317ms
	tacticAnalysis 93.5ms
	type checking 159ms
	typeclass inference 806ms
real 2.67
user 3.33
sys 0.97

LeanPool/AbstractLinearControl/Background/Phillips.lean

import took 1.1s
cumulative profiling times:
	attribute application 1.92ms
	congr simp thm 10.3ms
	dsimp 54.1ms
	elaboration 195ms
	fix level params 9.93ms
	import 1.1s
	initialization 30.6ms
	instantiate metavars 14ms
	interpretation 887ms
	let-to-have transformation 1.17ms
	linting 86.9ms
	module linting 0.00156ms
	norm_num 38.9ms
	overlappingInstancesLinter 24.7ms
	parsing 52ms
	process pre-definitions 36.7ms
	ring 25.4ms
	share common exprs 32.5ms
	simp 431ms
	tactic execution 1.15s
	tacticAnalysis 131ms
	type checking 388ms
	typeclass inference 2.25s
real 3.58
user 6.64
sys 0.94

LeanPool/AbstractLinearControl/Background/Semigroup.lean

import took 1.01s
cumulative profiling times:
	attribute application 0.061ms
	blocked (unaccounted) 4.36ms
	congr simp thm 5.4ms
	elaboration 62.1ms
	fix level params 1.88ms
	import 1.01s
	initialization 41.9ms
	instantiate metavars 3.15ms
	interpretation 496ms
	let-to-have transformation 0.137ms
	linting 16.7ms
	module linting 0.00165ms
	norm_num 12.8ms
	overlappingInstancesLinter 10.4ms
	parsing 13.3ms
	process pre-definitions 9.74ms
	ring 43ms
	share common exprs 9.88ms
	simp 8.08ms
	tactic execution 305ms
	tacticAnalysis 39.3ms
	type checking 98ms
	typeclass inference 613ms
real 2.49
user 2.59
sys 0.86

LeanPool/AbstractLinearControl/ContinuityFiniteP.lean

import took 1.15s
cumulative profiling times:
	attribute application 0.0476ms
	blocked (unaccounted) 0.0622ms
	congr simp thm 1.89ms
	dsimp 14.8ms
	elaboration 46.4ms
	fix level params 3.33ms
	import 1.15s
	initialization 29.7ms
	instantiate metavars 5.74ms
	interpretation 423ms
	let-to-have transformation 0.228ms
	linting 21.3ms
	module linting 0.00163ms
	norm_num 4.05ms
	overlappingInstancesLinter 11.4ms
	parsing 9.96ms
	process pre-definitions 11.9ms
	ring 26.5ms
	share common exprs 13.5ms
	simp 102ms
	tactic execution 461ms
	tacticAnalysis 38.1ms
	type checking 83.8ms
	typeclass inference 871ms
real 3.02
user 3.07
sys 0.91

LeanPool/AbstractLinearControl/ContinuityLinfty.lean

import took 1.14s
cumulative profiling times:
	attribute application 0.0235ms
	congr simp thm 1.73ms
	elaboration 26.5ms
	fix level params 2.3ms
	import 1.14s
	initialization 29.7ms
	instantiate metavars 3.83ms
	interpretation 465ms
	let-to-have transformation 0.0968ms
	linting 10.2ms
	module linting 0.00137ms
	norm_num 52.5ms
	overlappingInstancesLinter 5.77ms
	parsing 7.94ms
	process pre-definitions 9.66ms
	ring 28.3ms
	share common exprs 9.98ms
	simp 58.7ms
	tactic execution 269ms
	tacticAnalysis 20.7ms
	type checking 55.4ms
	typeclass inference 420ms
real 2.79
user 2.36
sys 0.92

LeanPool/AbstractLinearControl/Definitions.lean

import took 1.14s
cumulative profiling times:
	attribute application 0.0726ms
	blocked (unaccounted) 29.6ms
	congr simp thm 13.2ms
	elaboration 109ms
	fix level params 1.62ms
	import 1.14s
	initialization 30.6ms
	instantiate metavars 0.995ms
	interpretation 304ms
	let-to-have transformation 0.4ms
	linting 15.4ms
	module linting 0.00171ms
	overlappingInstancesLinter 9.73ms
	parsing 6.65ms
	process pre-definitions 5.19ms
	share common exprs 4.31ms
	simp 93.4ms
	tactic execution 74.3ms
	tacticAnalysis 26.2ms
	type checking 187ms
	typeclass inference 959ms
real 2.66
user 2.71
sys 0.93

LeanPool/AbstractLinearControl/Examples/ExoticMean.lean

import took 1.16s
cumulative profiling times:
	attribute application 0.617ms
	blocked (unaccounted) 1.12s
	compilation (IR) 0.117ms
	compilation (LCNF base) 5.47ms
	compilation (LCNF impure) 0.525ms
	compilation (LCNF mono) 1.68ms
	congr simp thm 6.26ms
	dsimp 63.3ms
	elaboration 217ms
	fix level params 2.34ms
	import 1.16s
	initialization 29.9ms
	instantiate metavars 2.84ms
	interpretation 652ms
	let-to-have transformation 1.32ms
	linting 48.4ms
	module linting 0.00217ms
	norm_num 14.1ms
	overlappingInstancesLinter 12.8ms
	parsing 30.4ms
	process pre-definitions 32.1ms
	ring 20.2ms
	share common exprs 17.4ms
	simp 391ms
	tactic execution 757ms
	tacticAnalysis 81.1ms
	type checking 446ms
	typeclass inference 2.17s
real 4.66
user 5.89
sys 0.97

LeanPool/AbstractLinearControl/Examples/FinitePNotZeroClass.lean

import took 1.18s
cumulative profiling times:
	attribute application 1.64ms
	blocked (unaccounted) 2.11ms
	compilation (IR) 0.0925ms
	compilation (LCNF base) 2.17ms
	compilation (LCNF impure) 0.485ms
	compilation (LCNF mono) 1.12ms
	congr simp thm 3.35ms
	dsimp 60.2ms
	elaboration 550ms
	fix level params 3.61ms
	import 1.18s
	initialization 30.3ms
	instantiate metavars 6.11ms
	interpretation 979ms
	let-to-have transformation 18.6ms
	linting 97.2ms
	module linting 0.00159ms
	norm_num 3.92ms
	overlappingInstancesLinter 23.9ms
	parsing 45.3ms
	process pre-definitions 53.3ms
	ring 55.5ms
	share common exprs 30.7ms
	simp 169ms
	tactic execution 578ms
	tacticAnalysis 177ms
	type checking 450ms
	typeclass inference 1.83s
real 3.71
user 5.97
sys 0.98

LeanPool/AbstractLinearControl/Examples/NoRepresentation.lean

import took 1.17s
cumulative profiling times:
	attribute application 1.01ms
	blocked (unaccounted) 491ms
	congr simp thm 12.8ms
	dsimp 39.6ms
	elaboration 289ms
	fix level params 2.11ms
	import 1.17s
	initialization 30.5ms
	instantiate metavars 3.54ms
	interpretation 950ms
	let-to-have transformation 1.19ms
	linting 55.5ms
	module linting 0.00144ms
	norm_num 11.5ms
	overlappingInstancesLinter 12.3ms
	parsing 33.7ms
	process pre-definitions 38.3ms
	ring 40.9ms
	share common exprs 19.8ms
	simp 406ms
	tactic execution 616ms
	tacticAnalysis 100ms
	type checking 512ms
	typeclass inference 1.48s
real 4.06
user 5.58
sys 0.94

LeanPool/AbstractLinearControl/Examples/Periodization.lean

import took 1.17s
cumulative profiling times:
	attribute application 0.313ms
	blocked (unaccounted) 11.1ms
	compilation (IR) 0.055ms
	compilation (LCNF base) 0.684ms
	compilation (LCNF impure) 0.236ms
	compilation (LCNF mono) 0.482ms
	congr simp thm 17.1ms
	dsimp 82.3ms
	elaboration 141ms
	fix level params 2.17ms
	import 1.17s
	initialization 30ms
	instantiate metavars 4.8ms
	interpretation 989ms
	let-to-have transformation 0.85ms
	linting 61.1ms
	module linting 0.00169ms
	norm_num 19.4ms
	overlappingInstancesLinter 9.17ms
	parsing 29.2ms
	process pre-definitions 27.4ms
	ring 82.4ms
	share common exprs 22.3ms
	simp 533ms
	tactic execution 690ms
	tacticAnalysis 107ms
	type checking 312ms
	typeclass inference 1.7s
real 3.63
user 5.66
sys 0.96

LeanPool/AbstractLinearControl/Imports.lean

import took 1.16s
cumulative profiling times:
	elaboration 0.0793ms
	import 1.16s
	initialization 30.4ms
	interpretation 181ms
	linting 0.296ms
	module linting 0.00128ms
	overlappingInstancesLinter 0.127ms
	parsing 0.00136ms
	tacticAnalysis 0.48ms
real 2.03
user 1.15
sys 0.90

LeanPool/AbstractLinearControl/ZeroClass.lean

import took 1.15s
cumulative profiling times:
	attribute application 3.04ms
	blocked (unaccounted) 650ms
	congr simp thm 27.6ms
	dsimp 32.6ms
	elaboration 603ms
	fix level params 16ms
	import 1.15s
	initialization 31.2ms
	instantiate metavars 10.3ms
	interpretation 1.28s
	let-to-have transformation 1.63ms
	linting 102ms
	module linting 0.00163ms
	norm_num 108ms
	overlappingInstancesLinter 68.4ms
	parsing 50.5ms
	process pre-definitions 65.8ms
	ring 96.1ms
	share common exprs 50.5ms
	simp 617ms
	tactic execution 985ms
	tacticAnalysis 198ms
	type checking 912ms
	typeclass inference 3.53s
real 5.26
user 9.69
sys 0.97

Advisory only — never blocks merge. Full log uploaded as the proof-profile artifact.

@Vilin97

Vilin97 commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator Author

Thorough agentic content review — APPROVE at head 7fa4ecc44a02d44514f906d0632101e758ec14de.

This is a source/diff review separate from the configured Greptile and GPT reviews. It does not authorize a merge: required CI, automated verdicts, branch protections, and the active infrastructure hold still apply.

Coverage and faithfulness. I inspected all 12 substantive upstream modules and the shared norm-bound extraction in bounded source slices, all six YAML headline declarations, their dependency closure, the actual port/optimization diff, and the build/profile evidence. ALCS contains the usual strongly continuous semigroup, bounded input maps, and concatenation identity; it does not assume continuity or the zero-class conclusion. The a.e. representation convention is substantive: exists_concat, exists_delay, bounded representatives, shift identities, and truncation results establish the input operations used by the proof.

  • ALCS.zero_class quantifies over real/complex normed input spaces and complete state spaces, and concludes operator-norm convergence at zero through the nonnegative-time neighborhood. Removing the unused completeness requirement on inputs strengthens the upstream theorem. Its proof constructs near-extremal pulses, disjoint measurable packing into a bounded operator from actual bounded sequences, invokes the proved Phillips lemma, and derives a zero infimum using the doubling inequality. The hard uniformity step is proved rather than hidden in a field.
  • ALCS.continuousOn_Phi proves continuity for every bounded input on Ici 0, including the endpoint. continuousOn_Phi_of_ne_top retains Fact (1 ≤ p), p ≠ ∞, and state-space completeness; it uses real Lp translation/truncation continuity, not a surrogate input norm.
  • exists_system_norm_Phi_eq_one constructs a real Banach-space shift system for each finite p, verifies its composition identity, and attains norm one using actual indicator inputs. It is a concrete witness to the difference from the endpoint theorem.
  • no_representation constructs the invariant mean and LocalControlData before producing the system; its formula, norm equality, composition, and small-support inputs are all proved. HasIntegralRepresentation is the genuine bounded-operator integral formula specialized to the identity scalar semigroup. The Young-function class is broader than the paper's class, and the card/docstrings disclose this. Its Luxemburg gauge uses an actual modular integral and infimum. The proof supplies indicator inputs in the Orlicz heart, so non-admissibility is not won through a vacuous membership predicate.
  • Phillips.full uses bounded continuous functions on discrete naturals, hence actual bounded sequences, and proves absolute summability, convergence of atomic coefficient norms, and the diagonal conclusion over RCLike scalars. The diagonal/gliding-hump argument and norming-functional extension are closed within the imported closure.

Significance and fit. Pass. This is a completed research-level development with an endpoint control theorem, meaningful separating examples, and supporting functional-analysis infrastructure. It gives reusable half-line Lp operations, strong semigroup bounds, Phillips' lemma, finite averaging/Hahn–Banach extension, and periodic means. It contains ordinary proof source rather than generated certificates, external executable trust, or unfinished scaffolding.

Novelty and sources. Pass. Pool cards/source, public open/merged PRs and issues, and history searches did not find this project. Exact and conceptual searches of pinned Mathlib found neither the ALCS development nor Phillips' bounded-sequence lemma. Public TauCeti ALCS/author searches found no copy; unrelated Lumer–Phillips hits concern semigroup generators. This is search evidence, not a claim of exhaustive semantic equivalence across all repositories. Upstream is public and its actual LICENSE is Apache-2.0. The pinned source, version-2 PDF, October 3 completion commit, and paper's Palomar/proof-provenance statement agree. The paper explicitly credits GPT-6 Pro and Opus 5.5 for all Lean statements and proofs; provenance: AI is accurate. The Sep 29 informal discovery is not used to satisfy the acquisition window.

Repair of the automatic review finding. Greptile reported a non-blocking maintenance concern on the first head: duplicated Lp translation and L-infinity norm proofs. I inspected and repaired both instances on this head. The right shift is proved equal to the generic left shift with a negative parameter; its continuity proof directly consumes the existing generic theorem. The example-only duplicate translation implementation was removed. Zero-extension/norm helpers delegate to the shared API. A small Background/Linfty module retains one implementation of both norm bounds, strengthened from the half-line to arbitrary measures and normed additive groups, and both original consumers reuse it. All six card endpoints, counterexample construction, and mathematical generality are retained. The review thread has a concrete repair reply and is resolved.

Engineering, trust, and cost. Pass; competent maintainable code (3/5). The development has coherent subject boundaries, explicit a.e. equivalences, concrete witness constructions, and no unresolved material review finding. I checked the actual arithmetic/normalization changes against upstream: no conclusions were weakened, no assumptions were disguised, and all mathematical proof dependencies are retained. Excluded files are only comparator scaffolding/bridges and diagnostic axiom printing. Every public source declaration passes the current allowlisted-axiom audit; the compiled environment audit includes private, generated, and auxiliary declarations for option and axiom-injection backdoors. All 683 owned declarations pass the current slow linters, with no waivers.

Before the duplication repair, the controlled clean project build improved 22.51 → 17.87 s wall and 54.27 → 49.04 s user CPU. Sequential per-file profiling improved 126.914 → 114.557 s in the same profiling configuration. Allocation-based command trace units, normalized by 1000, changed as follows: extend_from_separation 27,028.7 → 24,491.9; positive_of_norm_le_one 31,957.2 → 31,851.8 (negligible); mean_interval 29,700.1 → 18,262.0. These measurements describe the first optimization phase. Final-source alternating clean replay pairs measured 34.40 → 31.40 s and 28.26 → 26.14 s wall, means 31.33 → 28.77 s (8.2% reduction), with mean user CPU 59.725 → 57.710 s. All project outputs were rebuilt with identical pins and warm dependencies. A 42.93 s run overlapping a static audit is excluded from the comparable claim; shared-host load is explicitly accounted for. All 13 substantive final modules have completed the same profiling command successfully. The repaired shiftT_tendsto allocation count is 4,116.719 → 1,486.250 heartbeat units (63.9% reduction). Final profile wall sum is 148.502 s, which is not a controlled comparison to the earlier 12-file sum because module count and shared-host load changed. Source/per-file profile logs are retained. The useful changes are narrowed dependencies and explicit linear arithmetic/normalization. Remaining hotspots are ordinary bounded proofs; the measurements did not reveal another material safe improvement that justifies sacrificing clarity or generality. The upstream heartbeat override is gone and the whole project builds under the pool's defaults.

Validation checkpoint. Local clean project and wrapper builds, warning freedom, generated-index check, owned-module style and slow declaration linters, whole-repository static quality, all 325 public-source axiom closures, owned compiled-environment backdoor audit, card declaration resolution, and content-only diff checks pass. Python and infrastructure files are untouched. GitHub separation, workflow hygiene, advisory port audit, documentation preflight, applicable scopes, and profiling passed on the first head. On this repair head, GitHub content separation, documentation preflight, build plan, metadata/port advisories, applicable scopes and workflow hygiene pass. Required Lean shards remain queued/running. Greptile confirms the prior finding is fully addressed and no new actionable issue remains; its external-source limitations are covered by the independent source inspection above. No earlier-head success is substituted for final required CI. The configured GPT worker waits for exact-head green Lean CI, so its verdict is not yet available. Main run 37750520843 remains pending; no merge or auto-merge action was taken.

@Vilin97 Vilin97 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent reviewer source confirmation at 7fa4ecc44a02d44514f906d0632101e758ec14de

The permanent reviewer and an independent proof reviewer have now covered all 15 Lean modules and the YAML card at this exact head. All 16 file blobs and regular Git modes were independently checked. My mathematical and source verdict is favorable; required CI and the rollout hold remain pending.

Faithfulness and significance. ALCS.zero_class derives the short-time operator-norm limit from a strongly continuous semigroup and the bounded-input concatenation law. Its pulse witnesses and disjoint packing are constructed, and the Phillips/doubling argument supplies the uniformity step. The input space need not be complete; state completeness is retained. The finite-p norm-one system and scalar non-representation/Orlicz example construct actual systems and inputs. The latter builds its invariant mean through finite averaging and Hahn–Banach, rather than taking the desired counterexample as a premise. This is a substantive functional-analysis contribution. Shared L-infinity bounds and the reused translation theorem address the resolved maintenance finding.

External sources. I independently read the version-2 paper, the pinned upstream Apache-2.0 license, and its result-to-module map. The endpoint and separating examples agree with those stated results, and the paper's explicit AI proof provenance agrees with the card. Finite current-pool, pinned-Mathlib and primary TauCeti checks found no duplicate endpoint; the inspected Lumer–Phillips hit is a different semigroup-generation theorem. These searches do not establish universal absence of equivalent results.

Build, linter, axiom-audit and performance claims remain separate validation evidence. Exact-head Lean CI must pass, and competing merges/auto-merge remain held until green current-main CI is verified after PR610/611. This comment records source acceptance without enabling a merge or changing protections.

@Vilin97
Vilin97 added this pull request to the merge queue Oct 8, 2026
Merged via the queue into main with commit d5e1a96 Oct 8, 2026
35 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant