Repository navigation
Promote illustrated to main (through a8876d35) - #143
Merged
Merged
Conversation
Deletes the local /rely routing leg (the ledger answers it; rely is admitted at tag) and its probe and consumer scan; guards asserts the leg is absent and covers prepush-verdict enforcement behaviourally, including a subprocess row driven by a fail-only seam. Subject derivation moves to gitRobot ledger_subjects; record.py's dry run reports validate verbatim; ship.py asks admission(tag). Claude hooks: git/gh bypasses closed, the truncation hook inverted to an allow-list, the graphql hook removed, install_hooks --check verifies bodies. check_prose consumes each baseline match once; check_checkers requires a positive pass line. /rely round 3 PASS, 45 subjects, BLOCKING:0. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
Each of the 13 windowed steps now approves only its tooling-big build, re-derived with record.module_evidence in the merged checkout; the window keys are replaced by _repinned_2026_10_14b notes. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
settings.json: drop the PreToolUse entry for the deleted enforce_graphql_timeout.ps1 (R2-O8, RLY31-11) and root every remaining hook registration at $env:CLAUDE_PROJECT_DIR so it resolves from any cwd (RLY55-8); test_block_git_gh.ps1 now exits 0. CLAUDE.md: R-EXEMPT prices the exemption on rely staying admitted at tag; R-TRUNC describes block_checker_truncation.ps1 as the allow-list of sinks it is, with the control count from its own test run. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
New theorem valBridge_scale_not_injective (ScaleBridge) backs OrbitDichotomy's "cannot be made to". Anonymous checks: Or's eliminator refuses a Bool motive (ExcludedMiddleBridge), proof irrelevance (ChoicePurityInvariant), and no one-element InfinitudeFloor via member_ne_floor (cited by InfinitudeFloor.md for the Burris quote). PDF sites restated: ZP-E companion v1.27 (AX-1 "taken without derivation"), ZP-H companion v1.21 (ZP-D orthogonality stated as t4_snap_orthogonal, unmeasured "cannot be gradually closed" dropped), ZP-J v2.12 (quine_unique via boffa_fails_unique), ZP-K v1.27 and Tools (MODALW-4/5: ZFSet with no_quine_atom, not CIC). MODALW-6: QuineDichotomy header now cites cantor_via_engine. check_modal --block: 0 new (2 grandfathered). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
…t Tools, in-frame ZP-J countermodel
ZP-K III restores ZP-E's own Path 1 justification, attributed ("which ZP-E held
incompatible with Lean's CIC/MLTT"), per ZPE.lean at 1015f0c. New theorem
t4_state_gap (StateSpace): distinct state vectors are exactly sqrt 2 apart;
the ZP-H companion now gives that as ZP-D's structural reason. Tools: ZFSet
excludes the Quine atom (no_quine_atom) while Lean hosts the OneAtom model
(QuineHost section V); CC-2's set-theoretic self-containment stays prose. New
theorem quine_unique_independent (SetTheoryAFA): on MachinePhase the
always-true selfMem meets bot_self_mem and fails quine_unique; ZP-J points at
it. ChoicePurityInvariant narrowed to propositions about the proof;
QuineDichotomy cites cantor_via_engine with its path and correct consequence;
InfinitudeFloor.md also points at no_infinitudeFloor_of_finite. PDFs rebuilt
at the versions already bumped in this arc; register tokens recomputed.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
…E's view InfinitudeFloor.md now names both class fields the proof of member_ne_floor consumes (cx_member_strictMono via member_cx_lt_top, cx_floor_eq_iSup via infinitude_forces_infinite_complexity). ZP-K III keeps ZP-E's attributed view and answers it: ZFSet excludes a Quine atom (no_quine_atom) while Lean hosts a one-atom model outside ZFSet (QuineHost on OneAtom). ZP-K rebuilt at v1.27, register token resynced. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
…its failure Restate the structural floor class as HasFirstStep (a cover of the bottom) with axb1_fails_everywhere_iff_dense as its failure; keep "limit point" only as the metric chart, true of R and of Q2's 0 alike. ZP-F v1.11 -> v1.12, ZP-F companion v1.14 -> v1.15; PowerSet.lean gains an anonymous example (Finset.empty_covBy_singleton). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
…_mu_nu) Density is stated in its true direction at every site: dense iff no element has a first step, so density rules one out at 0, and one uncovered element does not make an order dense. Every ℚ₂ sentence in ZP-F and its companion now gives both charts: 0 is a metric limit not reached in finite time (floor_reach_separates_mu_nu) and v(0) = +∞, the greatest value (padic_addVal_eq_top_iff); neither is a first step, which is AX-B1. The Dual Limit Remark names the side of each condition. PowerSet.lean header and T-PS6 heading aligned. PDFs rebuilt at ZP-F v1.12 / companion v1.15. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
Carries the round-2 adversary fix (907bb72, replayed byte-for-byte in build_zpf.py because gitRobot merge takes no worktree): the Dual Limit condition (1) is scoped to the ordinal chart, MachinePhase is named as the counterexample to it as a universal requirement, and "limit ordinal necessity established in ZP-L" becomes the Order.IsSuccLimit example. Round 3 (Tim's rulings, 2026-10-15): - ZP-F section I and companion: being a limit point does not separate R from Q2; the topology does (t5_totallyDisconnected, real_no_snap), and for the first step the order does (axb1_fails_everywhere_iff_dense). Connectedness is named as the second fence where density read as the only one; the companion table gains a Topology row. - Q2's order in both charts: no order instance synthesizes; under the norm preorder 0 is least with no first step, under the valuation order 0 is greatest. New anonymous example in BottomCannotBe.lean section ROLE (Preorder.lift on the norm, NormedField.exists_norm_lt). - "does not block the snap" -> removes the topological obstruction; ZP-B credited with t5_totallyDisconnected. - v(0) = +inf is set by definition (Padic.addValuationDef's explicit case), not produced by the completion; only 0 has it (padic_addVal_eq_top_iff). No version bump: ZP-F v1.12 and companion v1.15 are unshipped in this arc. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
…2 not 'required' Restates to the measurements in .claude-local/notes/modalw7_revalidation_2026-10-15.md (R-REVALIDATE at gate round 3). At zero neither R (field order) nor Q2 (norm preorder) has a first step, and the norm-preorder fact holds in any nontrivially normed field; globally R is densely ordered while Q2's norm preorder is not. BottomCannotBe.lean section ROLE gains the anonymous non-density example (2 is covered by 1, via axb1_fails_everywhere_iff_dense) and a genericity clause on the r3 gloss. ZP-F and its companion state both halves, cite addVal_bot for the valuation order, write "connected, so not totally disconnected (real_no_snap)", and replace "Q2 is required" with what ZP-F shows. Rebuilt, retokened; no version bump (unshipped v1.12/v1.15). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
…; 'at 0' in the table Round 5, Tim's three fixes only. AX-B1's first step is named as a cover of bottom on the state carrier in ZP-A's induced order: the cover hypothesis of t_snap_given_cover (ZeroParadox/Order/Snap.lean), met by MachinePhase (the example after it). Neither ordering of Q2 supplies one at its 0. The companion abstract and closing credit ZP-B (t5_totallyDisconnected) with removing the topological obstruction and ZP-F with excluding ordered fields. The table cell is scoped to 0. Register tokens resynced; no version bump (unshipped in this arc). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
Same class as the r5 §VI fix, approved under Tim's item 1. ZP-F §V's "Neither supplies the first step; that is AX-B1" now names the carrier: a cover of bottom on the state carrier, the cover hypothesis of t_snap_given_cover, met by MachinePhase. "Neither" still means ZP-B and ZP-F. Formal token resynced; no version bump (unshipped in this arc). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
…'needs' AX-B1's form is HasFirstStep of the state carrier's bottom; t_snap_given_cover assumes the run's first step is a cover (hcov), which with CC-1 gives HasFirstStep, and the converse fails (SnapCannotBe ℕ run). Restated at ZP-F §V, §VI and the companion's §IV and closing callout; "the first step the snap needs" becomes "the first step AX-B1 commits to"; the companion table bracket points at the state carrier; ZP-F's "(the example after it)" pointers name the MachinePhase example by content. PDFs rebuilt, register retokened; no version bump (unshipped). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
…collide (V11) The selftest's record.py dry-runs took the default INDEX basis, i.e. the live tree. Once a real copy_editor record existed at that tree, the two clean copy_editor rows collided with it under V11 (one record per step, basis and revision), so the selftest went 68/70 and check_checkers blocked every push. Every dry-run base (PANEL_BASE, and so AGREE/UNDEC/FAIL3, plus OTHER) now carries --ref 3148eef, LICENSE's last change: its LICENSE blob equals today's (2ac1b2d), and it predates the copy_editor step, so no real copy_editor record sits at that commit basis (135 copy_editor records checked, 0 there). Selftest 70/70; the three admit rows now also report ledger validate ok. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
Approves the rebuilt check_modal.py (b1bc667) beside the current build so the worktree commit can pass V16c, which reads this file from the main checkout. /rely PASS rely@1e2b0f12 after four failing rounds. Narrowed to the new blob in the commit after the merge. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
check_modal now flags impossibility claims ("cannot be", "cannot hold",
"cannot exist", "is impossible", ...) under its axiom-scope guard. Such
a claim passes only by naming a real corpus theorem in its own sentence
(not as its subject), a dated measurement, or an explicit status marker
(UNCLASSIFIED, not claimed, open, retracted). Engineer's Takes are
exempt; build scripts may name theorems bare. /rely went 5, 5, 3, 1
blocking across four rounds and passed on the fifth (rely@1e2b0f12).
Corpus: 17 flagged sites pointed or restated. Theorem pointers moved
into the claim's sentence; undated measurements given their dates from
the files and history; quoted external claims marked cited, not
claimed; two method sentences reworded per Tim's ruling ("what no proof
can establish"); the nu-side heading restated as a non-claim.
Deferred by Tim's ruling: the vocabulary gap ("cannot occur", "can
never be", ...), MODALW-15. Residual ordinaries: MODALW-16.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
Drops the old check_modal blob now that the cm-land commit has merged, and deletes the rollout-window key. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
Re-freezes the convergence bar at the close of the check_modal arc, per Tim's once-per-arc cadence, and adds frozen_rule_digest per his 2026-10-03 ruling (REGISTRYFREEZE-DESYNC-1). Both values were read off a live can_push after the narrowing commit. With the rule digest present the ledger compares on it (basis: rule_digest) and reports held for the first time since 2026-09-28; pin swaps no longer break the bar. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
Snap.lean: anonymous examples beside t_snap_irreversible. An inflationary map undoes no strict step and fixes the top (axiom-free); t_snap_irreversible is its first half at (. join z); dually a ZP-deflationary map fixes the bottom of L (axiom-free). Reading only for the pair. Model.lean: tropical pointer for the N-infinity model (Mathlib Tropical, Pin 1998 p. 3), scoped to this model; example that scale is ZP-deflationary, not inflationary, join is inflationary, and scale_bot follows from deflationarity. APG.lean: named lemma path_decoration_eq_bot (the bottom of U spreads backward along a decoration path), with #print axioms and an ssot.json row; anonymous examples: absorption needs no join, its DecorationUniverse instance, order-reversal iff v (join x y) <= min, under order-reversal any join identity is the absorber, the converse refuted (M1 on Option N-infinity), and the glue refuted without order-reversal (M2). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
Import Mathlib.Algebra.Tropical.Basic (one extra build job, 4038 -> 4039; its own imports were already in the closure). Anonymous example: trop sends the model's join to tropical +, its bottom to tropical 0 and scale to multiplication by trop 1, so scale_bot is zero_mul. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
APG.lean: drop the private-path pointer from the absorption header; replace the AMM Example 5.4 cite with Example 6.10 p. 26 (A* = A-omega, nodes from which no infinite path starts), quoted from the paper; M2 gloss now says "can be different elements"; Aitken Prop. 86 reading restores its setting (nonzero prime, fractional ideals of a Dedekind domain, values in Z), p. 33. Snap.lean: the deflationary arrow descends toward the bottom of L, never reaches it from a finite value in the N-infinity model, and fixes it. Model.lean: Pin cite marked as the author's preprint page. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
Anonymous example in the N-infinity model: iterating scale from any element other than the bottom never reaches the bottom. The Snap.lean two-arrows Reading now points at it instead of stating it in prose. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
Realize each shell ball_m \ ball_(m+1) as an indicator vector in L²(ℤ_p, haarZp). The ball-m indicator splits as shell-m plus ball-(m+1), the two pieces are orthogonal, so the squared lengths add (Pythagoras) and the two pieces sit the parent's length apart, √p times the child's. The count p^n times the squared length of a level-n ball indicator is 1. At p = 2 the shell and the next ball have equal length. Controls: unsquared count times length is not constant; consecutive ball indicators are not orthogonal; at p = 3 the shell and next ball differ in length. PadicStillPoint gains an anonymous example: at p = 2 the level-0 ball indicator equals the trivial character almost everywhere. Eight ssot.json rows added via SJV. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYrKY8CR8AeESMvjGVQtzA
…, image motion Registry Motion.Hom: the Mathlib absence is now stated for the pair (partial map, step relation), since RelHom already is a map of one-label transition systems without the back clause. Registry Motion: reinstate the papers-library grep leg of the search record. DieCannotBe § XXV: "Proposition* 5.7 and Proposition 5.8" (Rutten p. 34 prints 5.8 unstarred). Die § XXI header and DieCannotBe § XXV: the map's target is "the image motion (what the observer shows)"; the observed motion is the source. Hogancamp Def. 3.3 p. 7 and Obs. 3.5 p. 8 re-confirmed in the filed PDF; no change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NYJd4eT1BYi8RSKhY3zAYq
…ns (Tim 2026-10-29) Die.lean § XXII: IsWeakPullback, PreservesWeakPullbacks (Rutten, Prop A.3 wording) and its elementwise form over Mathlib's Types.PullbackObj; the elementwise form holds for ofTypeFunctor Part, ofTypeFunctor Set and their product, choice-free. Rutten's form gives the elementwise one choice-free; the converse is proved with Classical.choice. NO-GO: S -> (S -> Prop) -> Prop fails the elementwise form. Motion.IsBisim (Rutten p. 11) with isBisim_iff, and Prop 5.1, Thm 5.2, Thm* 5.4, Cor 5.6, Prop* 5.7 (isBisim_ker, isBisim_ker_coalgHom), Prop* 5.9(2), all [propext, Quot.sound]. isBisim_of_compat replaces the anonymous § XXI bridge; the stale "hypothesis not checked" Reading now points at § XXII. Indexed in DieCannotBe § XXVI; registry and ssot.json synced. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NYJd4eT1BYi8RSKhY3zAYq
Motion.IsBisim never mentioned the section XX functor; its "Rutten's bisimulation" gloss was a Reading only. isBisim_iff_coalgHom states it: IsBisim M N R iff some structure map on the R-related pairs, for FunctorToTypes.prod (ofTypeFunctor Part) (ofTypeFunctor Set), makes both projections underlying maps of Endofunctor.Coalgebra.Hom into M.toCoalgebra and N.toCoalgebra (Rutten, TCS 249 (2000), p. 11). Axioms: propext, Quot.sound. The IsBisim gloss and the DieCannotBe section XXVI Reading now point at the theorem. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NYJd4eT1BYi8RSKhY3zAYq
…readings, registry pointers Scope Corollary 5.6 to its greatest-bisimulation and equivalence clauses and Proposition* 5.7 to its bisimulation half (DieCannotBe index, Die readings, ssot reasons via SJV, which also star 5.9*(2)). IsBisim / isBisim_ker readings say "for carriers in one universe"; IsBisim's Rutten sentence moves to Reading. CONTROL example now states no StepBack in its type. NO-GO functor read as the neighbourhood functor with a Gumm-Freese p. 1 pointer. Registry: p. 74 on the canonical pullback plus Gumm-Freese Prop. 3; Convention 4.4 stars; IsBisim pointer to isBisim_iff_coalgHom; dated grep hit list includes BisimO. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NYJd4eT1BYi8RSKhY3zAYq
… § XXIII Lands the 2026-10-29 probe (Tim: "Probe open items, then land") as a second coordinate on the adjoined-points switch. - NInf: Escardo's decreasing-sequence presentation of the one-point compactification of N, with his selection function (Thm 3.5), omniscience (Cor 3.6) and Lemma 8.1. - Untagged limit point: every Bool-valued step on NInf meets the OVER trichotomy at every point (overTrichotomy_ninf_boolStep) and has a total selector (selectedTotal_ninf_boolStep), with no Classical.choice. - Tagged point: on Option N the uniform Bool-step trichotomy is equivalent to LPO (both directions); a uniform total selector there gives LPO. - WLPO at the point at infinity: a Bool test isolating it, a step from it to itself only, or decidable equality on NInf each give WLPO; WLPO iff any two points are equal or not; WLPO as data iff DecidableEq NInf; control decEq_classical. - The chain Option N -> NInf -> Part N: forward maps free and commuting with Part.ofOption; exact backward maps give LPO, WLPO or excluded middle; NInf is equivalent to Mathlib's Computation Unit. - DieCannotBe § XXVII indexes it; § IX's three-presentations Reading points there. LEAN_CUSTOM_REGISTRY entry for NInf with the dated Mathlib search. SJV: 67 declarations added, ssot.json re-exported. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NYJd4eT1BYi8RSKhY3zAYq
…ttributions Round 1 ordinary findings (editorial, adversary, prior_art, copy_editor): A. DieCannotBe § IX: the chain is Option ℕ → NInf → Part ℕ, its middle the delay type at Unit (ninfEquivComp), not at ℕ. B. DieCannotBe § XXVII: ℕ and Option ℕ relabelled from NON-MEMBER to the conditional "membership gives LPO; classically both are members", backed by selectedTotal_of_classical and a new classical trichotomy example. Corpus sweep found no other site of this shape. C. DieCannotBe § XIII: "measured for ℕ only" now also names Option ℕ; over-long line re-wrapped. D. wlpo_of_eqOr_infty cited as the right-to-left half of Escardó's WLPO row. E. Part-to-Option Statement backed by the adversary's O3 example. F. Reading at ∞ re-pointed to overTrichotomy_ninf_boolStep and wlpo_of_selfOnlyAt_infty. G. "a test isolating ∞" glossed as a decidable singleton. H. § XXVII header names Escardó's ℕ∞, the one-point compactification, first. I. exists_ne_infty_eq_false_or and separated moved above the MEMBER header. J. LPO-to-selector absence dated 2026-10-29 with its search. K. overTrichotomy_ninf_boolStep: hmap avoids y at every z ≠ ∞. L. wlpo_of_isolating_infty Reading re-pointed to Escardó's p. 4 WLPO row with Lemma 3.3 and TypeTopology basic-discontinuity-taboo; Theorem 7.1(1) as the weaker-hypothesis form assuming countable choice. M. Attributions: Knapp 2020 § 4.1 for ninfEquivComp; TypeTopology Taboos.WLPO for wlpo_iff_eqOr / decEq_of_wlpoData / wlpoData_of_decEq; Escardó p. 4 rows and Corollary 3.7 for lpo_of_exactTag / wlpo_of_tag; § XXIII pointer to natInfinity and enat_fp_iff. N. Registry: the three proofs that follow Escardó named; antitone grep returns two lemma hits. O. JSL 78(3) and CSL 2017 LIPIcs 82 confirmed at the publisher pages; no text change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NYJd4eT1BYi8RSKhY3zAYq
…ty_iff 1. TypeTopology Taboos.WLPO: its WLPO is type-valued and indexed by points of the extended naturals; the corpus form is its WLPO-traditional, linked there by WLPO-gives-WLPO-traditional / WLPO-traditional-gives-WLPO and here by eqOr_of_wlpo / wlpo_of_eqOr_infty (wlpo_iff_eqOr, decEq_of_wlpoData, wlpoData_of_decEq, DieCannotBe section XXVII). 2. Section XXIII carriers in two sides: limit side Cofix natPF_NatListRegime.Obj and M natPF_RootCutTrichotomy (final coalgebras of 1 + X); tagged side ENat. 3. New NInf.isolating_infty_iff (Escardo Lemma 3.3), purity line, ssot row; section XXVII gloss and cited Reading point to it. 4. Section XXVII selector-converse absence claim records the search as run. 5. Section XXVII cited Reading rewrapped (Escardo-Knapp CSL citation on one line). 6. LEAN_CUSTOM_REGISTRY NInf: eps_spec's last step stated exactly; compare Pradic-Brown 2019, Lemma 3.5 and Theorem 3.6, p. 5. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NYJd4eT1BYi8RSKhY3zAYq
Escardó's density lemma on NInf; ofOption onto iff LPO; LPO data gives NInf ≃ Option ℕ (classical control beside it); the round trip as a motion on Option ℕ ⊕ NInf with Motion.LoopAt. Index entries in DieCannotBe § XXVII. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NYJd4eT1BYi8RSKhY3zAYq
…scope Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NYJd4eT1BYi8RSKhY3zAYq
…C-74) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NYJd4eT1BYi8RSKhY3zAYq
fae8cc7629e3 F2 is the same pole-status site as the carve-out's 3ed73350ae85 F1; fae8cc7629e3 F1 and 4781140c9e59 F3 strengthen a true pre-text. Narrow the CORRECTED slices, name the strengthening case as MEANING, and state 2c's condition as DC-74 does (false, or claimed more than the Lean proves). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NYJd4eT1BYi8RSKhY3zAYq
…CTED-does-not sites) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NYJd4eT1BYi8RSKhY3zAYq
…tems) Carried ordinary findings from the ninf-retraction and die-tagged arcs, each checked against its source before applying. - density (Die, DieCannotBe § XXVII): "the `Y = ℕ∞` instance of" TypeTopology `ℕ∞-density` (GenericConvergentSequence l.472 quantifies over every ¬¬-separated Y). Reword. - right-cancellability against ¬¬-separated codomains: anonymous `example` after the `density` #check (general codomain Y, [propext, Quot.sound] in a probe); the prose now points at it. Example route. - Part ℕ control: "toPart undoes ofOption up to Part.ofOption"; the map back is a two-sided inverse of toPart, backed by an anonymous `example`. Example. - WLPO-traditional: the `Prop` form, bits complemented (Die wlpo_iff_eqOr, DieCannotBe § XXVII). Reword. - Crossed bridge pairing in § XXVII: wlpo_of_eqOr_infty with WLPO-gives-WLPO-traditional; eqOr_of_wlpo with WLPO-traditional-gives-WLPO then WLPO-gives-ℕ∞-discrete. Reword. - Statement line: "a decidable singleton, not a topological claim" restored; "TypeTopology's `basic-discontinuity`". Reword. - § XXVII: "with Lemma 3.3 again"; "Escardó's Theorem 7.1(1)"; de Jong–Escardó Lemma 7.2 map stated as f n̲ = 0, f ∞ = 1. Reword. - wlpo_of_isolating_infty: basic-discontinuity-taboo concludes the ℕ∞-indexed WLPO. Reword. - Registry NInf Reason: the induction reaching eps p = ∞ is ours and Pradic–Brown's (Thm 3.6); Escardó's proof uses Lemma 3.3; "follow his" narrowed to "formalize his results". Reword. - Over-long lines reflowed (Die wlpo_of_isolating_infty; DieCannotBe CSL, rc and Wärn lines). Reflow. - § XXIII limit-side carriers: already `Reading:` with no Lean-equivalence claim; no change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NYJd4eT1BYi8RSKhY3zAYq
- Registry NInf Reason (prior-art O1, adversary O1): both proofs reach
eps p = ∞ by induction rather than by Escardó's Lemma 3.3; Pradic–Brown's
inducts on the values p n̲, ours on the bits of eps p (checked against
eps_spec's `hall` induction on epsSeq p n). Reword.
- Line lengths (ED-NINF-1, adversary O3): DieCannotBe CSL/hmap line, the
markovPrinciple/left-inverse line, the reflowed basic-discontinuity and
GenericConvergentSequence lines; Die wlpo_iff_eqOr docstring. Reflow.
- Module names (ED-NINF-2): `ι𝟙`, `ℕ∞-density`, `ι𝟙-dense`,
`not-finite-is-∞` located in TypeTopology.GenericConvergentSequence (lagda
l.397, 472, 488, 501) and named once per paragraph (Die density docstring,
DieCannotBe § XXVII); `basic-discontinuity` named with
Taboos.BasicDiscontinuity at both DieCannotBe sites. Reword.
- Statement-slot denial (ED-NINF-3): the § XXVII Statement now says the test
decides membership in {∞}; the hedge moves to a positive Reading line
("isolating" is meant logically, as decidable membership in {∞}). Reword.
- "isolates ∞" (ED-NINF-4): the wlpo_of_isolating_infty docstring gets the same
Statement/Reading treatment. Reword.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NYJd4eT1BYi8RSKhY3zAYq
…equivalence Ticket corpus-ninf-wording-carried items 1, 2 and 8. The "meant logically" fence and the "decision is the whole content" Reading are replaced by a pointer to Escardó, arXiv:2609.10447v3, Def. 3.2 (TypeTopology is-isolated) and by two anonymous examples in DieCannotBe § XXVII: a test isolating ∞ is equivalent, as data, to ∀ b, Decidable (b = ∞); and such a test exists iff WLPOData does. Compare-pointers to his Examples 3.3(3)-(5). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NYJd4eT1BYi8RSKhY3zAYq
…ings)
Point Examples 3.3(5) at the Nonempty iff example (wlpo_of_isolating_infty
is its Prop-level forward direction); isolating_infty_of_decEq is the
Prop-level form of his discreteness step; JSL 78(3) (2013) locator form;
"WLPOData is inhabited"; restore "deciding membership in {∞}"; author on
the overTrichotomy pointer; compare the ≃ example with TypeTopology WLPO.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NYJd4eT1BYi8RSKhY3zAYq
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings main up to illustrated (through a8876d3): 378 non-merge commits, 329 files changed, +95,344 / -23,135 lines. main has no commits that illustrated lacks, so this is a fast-forward of content; nothing is reverted.
Licence change. On main the repository is under CC BY-NC-ND 4.0, with the fonts in
scripts/fonts/excepted. After this merge it is under two licences, asNOTICEsets out:LICENSE). The.leanfiles,scripts/*.py,tools/**,.github/**,.claude/**,CLAUDE.md,lakefile.toml,lake-manifest.json,lean-toolchain,ssot.json,.zenodo.jsonand the other configuration files.LICENSE-DOCS). The PDFs at the repository root, every Markdown file exceptCLAUDE.mdand those undertools/and.claude/, and the site layouts in_layouts/.NOTICEand keeps its own licence. This covers the vendored and ported Lean (ZeroParadox/Vendored/,ZeroParadox/Ordinal/NaturalOpsPow.lean), which stays under Apache 2.0 with its original copyright, and the fonts.What it carries, by area:
ZeroParadox/Computability/KleeneChoiceFree.lean: Kleene's second recursion theorem for a transformation given as a code,kleene_cf, with the fixed point an explicit term. It is a fixed point up toeval, not a literal one, and the proof does not useClassical.choice.ZeroParadox/Computability/UniversalChoiceFree.lean: a universal code for Mathlib'sNat.Partrec.Codewhose correctness proof does not useClassical.choice,universal_code_cf(existential, built from a small-step machine), and a code that both prints itself and is universal,selfref_universal_exists_cf, stated with the choice-free predicatesSelfPrintsCFandUniversalCF. Their equivalence with the Mathlib-phrased predicates (selfPrints_iff_cf,universal_iff_cf) usesClassical.choice.ZeroParadox/Meta/AxiomLedger.lean: a ledger of declared axiom profiles. Elaboration fails if a recomputed profile differs from its row, or if a theorem of the two files above has no row. The check uses the vendored auditor inZeroParadox/Vendored/CorpusAudit/(from GuardianEngineAI/corpus) and runs in the new workflow.github/workflows/axiom_ledger.yml. A control file,AxiomLedgerControl.lean, plants one wrong profile, and the workflow fails unless that row and nothing else turns red.ZeroParadox/Information/Disjunctive.lean: disjunctive sequences (tapesℕ → Boolon which every finite word occurs). The all-false tape is not disjunctive, a primitive recursive disjunctive tape exists, the fair-coin tape is disjunctive almost surely, and no periodic tape is disjunctive. On a disjunctive tape every code word occurs; nothing is said about executing one.ZeroParadox/Die.leanandZeroParadox/DieCannotBe.lean: the recordMotion(an idempotent partial self-map and a step relation) and an index of its premises with members and non-members. Every type carries aMotion, so the premises are stated as hypotheses and carry the content.ZeroParadox/Category/DieNucleus.lean: on a meet-semilattice, aMotionwhose map is total, raising and preserves⊓gives a MathlibNucleus.snapNucleusonOrdinalis a member; the notation carrierSynONotehas no snap nucleus (no_snap_nucleus).ZeroParadox/Category/LawvereTwoAdic.lean: onℤ_[2]and onℤ, add-one has no fixed point, so no class of self-maps containing it has a relativized Lawvere witness.ZeroParadox/Category/IgnoranceSeam.lean: filling the unknown digits of a finite partial stream withfalseor withtruesends the empty stream to the least or the greatest element of the pointwise order onℕ → Bool. Complement carries prepend-false to prepend-true.ZeroParadox/Settheory/GraphBisim.leanandZeroParadox/Settheory/HypersetOrder.lean: finite membership graphs up to bisimulation. Taking the well-founded part preserves bisimilarity (wfPart_same) and dropping loops does not (dropLoops_not_same). Under the subset order, pruning is a kernel operator (pruneKernel)..mdfiles, 17 of them beside.leanfiles already on main and one besideDisjunctive.lean.ZP_Philosophical_Question.pdfand its build script are removed. Versions move inregister.md. For example, ZP-E goes from 3.50 to 3.61, ZP-B from 1.18 to 1.30 and ZP-R from 1.6 to 1.20.c3_irreversibleinZeroParadox/Valuation/Padic.leanno longer calls 0 the unique point at the base of a nested clopen-ball stack, which holds for every point ofℚ_[2]. It now says topology does not single 0 out: 0 is the additive identity and the only point of valuation top, and whether that makes it least or greatest depends on the order chosen.quine_atom_uniquetox = {x}.tools/change, along with the command files under.claude/commands/and.claude/settings.json.Known open items: ordinary-severity imprecisions remain in the prose and are tracked. This merge fixes only what the range already contains.
No release is cut by this merge.